Authentication 星号SIP自定义身份验证

Authentication 星号SIP自定义身份验证,authentication,sip,asterisk,Authentication,Sip,Asterisk,我用星号在公司内部转接sip电话 只有经过身份验证/授权的用户才允许拨打电话 我们已经有了一个处理身份验证的服务,那么有没有办法将asterisk(sip.conf)的身份验证集成到我们的服务中 因此,与在sip.conf asterisk中键入所有用户和密码不同,asterisk可以简单地调用一些与我们的身份验证服务通信的API 基本上,我需要一种从SIP设备获取用户名/密码并进行身份验证的方法。 由于每个用户都有不同的密码,当我们的数据库中已经有了所有用户/密码时,在sip.conf中键入所

我用星号在公司内部转接sip电话

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

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

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

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


谢谢

用星号进行身份验证有很多方法

  • 使用星号,身份验证是通过数据库(mysql/odbc)进行的。这是强烈推荐的方法。有关实时sip集成,请参阅
  • 使用execinclude方法(在重新加载时执行提供配置的外部脚本)。将仅在重新加载时更改配置
  • 在星号之前使用openser(kamailio/opensips),使用带有curl的avpairs从API中获得答案。您的API必须非常快,并且您需要成为opensips/kamailio方面的专家

因为所有这些对于asterisk来说都是很常见的事情,所以您可能需要一位asterisk专家来验证您的系统/安全审计/性能审计,或者您需要员工中的某个人阅读一些书籍,比如了解一些可能的问题。

在asterisk中进行身份验证有很多方法

  • 使用星号,身份验证是通过数据库(mysql/odbc)进行的。这是强烈推荐的方法。有关实时sip集成,请参阅
  • 使用execinclude方法(在重新加载时执行提供配置的外部脚本)。将仅在重新加载时更改配置
  • 在星号之前使用openser(kamailio/opensips),使用带有curl的avpairs从API中获得答案。您的API必须非常快,并且您需要成为opensips/kamailio方面的专家

因为所有这些对于asterisk来说都是很常见的事情,所以您可能需要一位asterisk专家来验证您的系统/安全审计/性能审计,或者您需要员工中的某个人来阅读一些书籍,比如只是为了了解一些可能的问题。

arheops已经将重要的选项打得死去活来。他很酷。或者,如果您的手机像某些人一样支持手机上的XML浏览/java应用程序,您还可以使用自定义SIP头来提供第二个身份验证因素。因此,对于第一个身份验证因素,手机有一个非旋转RSA密钥,然后动态执行对身份验证服务器的CHAP式呼叫,以检索作为自定义SIP头包含的寿命更短的“go密钥”。没有时间有效标头,没有呼叫权限。
如果您可以派生出一个双因素身份验证方案,其中一个因素是RSA/DSA密钥,那么您可能已经足够安全了。

arheops已经完全掌握了主要选项。他很酷。或者,如果您的手机像某些人一样支持手机上的XML浏览/java应用程序,您还可以使用自定义SIP头来提供第二个身份验证因素。因此,对于第一个身份验证因素,手机有一个非旋转RSA密钥,然后动态执行对身份验证服务器的CHAP式呼叫,以检索作为自定义SIP头包含的寿命更短的“go密钥”。没有时间有效标头,没有呼叫权限。
如果您可以派生一个双因素身份验证方案,其中一个因素是RSA/DSA密钥,那么您可能已经足够安全了。

您可以使用AGI直接(或通过web服务间接)连接到数据库。AGI可以用PHP、Java、Python编写。。。或Asterisk提供的其他语言。 当分机尝试呼叫时,您的Agi将连接到数据库,填写用户名/密码,然后进行身份验证。。。。
希望有此帮助,

您可以使用AGI直接(或通过web服务间接)连接到数据库。AGI可以用PHP、Java、Python编写。。。或Asterisk提供的其他语言。 当分机尝试呼叫时,您的Agi将连接到数据库,填写用户名/密码,然后进行身份验证。。。。
希望能有所帮助,

我在Asterisk工作了两年多。我曾经使用AGI连接windows环境。我写了很多星号代码来剪切IVR…等等。我使用PHP编写AGI。因此,AGI连接到Microsoft SQL,获取数据并将数据返回给星号拨号计划。完成这项任务并不简单,但也不太困难。问题是你必须学习如何用星号写代码,还要学习如何使用AGI

我在星号上工作了两年多。我曾经使用AGI连接windows环境。我写了很多星号代码来剪切IVR…等等。我使用PHP编写AGI。因此,AGI连接到Microsoft SQL,获取数据并将数据返回给星号拨号计划。完成这项任务并不简单,但也不太困难。问题是你必须学习如何用星号写代码,还要学习如何使用AGI

这就是我要找的那种东西。我能用C写吗?如果是这样,我的AGI脚本如何将信息返回到拨号计划,以便星号继续桥接或不桥接?有什么例子吗?感谢另一个问题是:如何从脚本内部从SIP设备获取凭据?用户名和“机密”信息?您不能将agi用于sip身份验证。回答的人不是专家。这就是我要找的东西。我能用C写吗?如果是这样,我的AGI脚本如何将信息返回到拨号计划,以便星号继续桥接或不桥接?有什么例子吗?感谢另一个问题是:如何从脚本内部从SIP设备获取凭据?用户名和“机密”信息?您不能将agi用于sip身份验证。回答的人不是专家。谢谢。ODBC路径看起来很复杂,因为它带来了严重的约束