繁体   English   中英

Asterisk SIP自定义身份验证

[英]Asterisk SIP custom authentication

我正在使用ASTERISK桥接我公司内部的SIP呼叫。

只允许经过身份验证/授权的用户拨打电话。

我们已经有一个处理身份验证的服务,那么有没有办法将asterisk(sip.conf)的身份验证集成到我们的服务中?

因此,不是在sip.conf中键入所有用户和密码,而是星号可以简单地调用一些与我们的身份验证服务通信的API。

基本上我需要一种从SIP设备获取用户名/密码并进行身份验证的方法。 由于每个用户都有不同的密码,当我们已经拥有数据库中的所有用户/密码时,在sip.conf中输入所有密码是不切实际的。

谢谢

有很多方法可以在星号中进行验证

  • 使用asterisk 实时架构 ,auth是通过数据库(mysql / odbc)。 这是强烈推荐的方法 对于实时sip集成,请参阅此内容
  • 使用exec include方法(在重载执行外部脚本,提供配置)。 将仅在重新加载时更改配置。 检查此链接
  • 在星号之前使用openser(kamailio / opensips),使用curl的avpairs从你的API获得答案。 您的API必须非常快,您需要成为opensips / kamailio的专家。

由于所有这些都是星号的常见问题,可能您需要一个星号专家来验证/安全审计/性能审计您的系统,或者您需要员工的某些人阅读一些书籍,如O'Reilly的Asterisk电话的未来只是为了理解一些可能的问题。

arheops已经击中了大选。 他很酷。 或者,如果您的手机支持手机上的XML浏览/ Java应用程序,您也可以使用自定义SIP标头提供第二个身份验证因素。 因此,手机具有非旋转RSA密钥,用于第一个身份验证因素,然后动态执行对您的身份验证服务器的CHAP样式调用,以检索寿命较短的“go key”,该密钥包含在自定义SIP头中。 没有时间有效的标头,没有呼叫权限。 如果您可以推导出双因素身份验证方案,其中一个因素是RSA / DSA密钥,那么您可能已经足够安全了。

您可以使用AGI直接(或间接通过Web服务)连接到您的数据库。 AGI可以用PHP,Java,Python ......或Asterisk提供的其他语言编写。 当分机尝试拨打电话时,您的Agi连接到数据库,完整的用户名/密码,然后验证....希望这个帮助,

我在Asterisk工作超过2年。 我以前用AGI连接windows环境。 我写了很多Asterisk代码来减少IVR ...等等。 我用PHP写AGI。 因此,AGI连接到Microsoft SQL,获取数据并将数据返回到Asterisk Dial计划。 这项任务并不简单,但并不太难。 问题是你必须学习如何在Asterisk中编写代码,并学习如何使用AGI。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM