您的位置:首页 > 其它

Sofia-SIP辅助文档十二 - Sofia SIP用户代理库 - "iptsec" - 认证模块

2016-06-25 09:07 417 查看
http://sofia-sip.sourceforge.net/refdocs/iptsec/index.html翻译自官网的这张网页。



模块元信息

iptsec模块提供HTTP Basic和Digest认证方式的接口,会在HTTP和SIP协议中使用。这些接口中既包括服务端使用的接口和也包括客户端使用的接口。
[b]联系人:[/b]Pekka Pessi <Pekka.Pessi@nokia-email.address.hidden>[b]状态:[/b]Sofia SIP Core library[b]许可:[/b]LGPL


服务端授权认证

<sofia-sip/auth_module.h>头文件中定义了服务端响应来自客户端的授权认证接口。服务端创建好认证模块后,通常的认证操作足够简单:
服务器利用来自请求的信息初始化auth_status_t结构体
服务器调用auth_mod_method()函数
服务器检查auth_status_t结构体的状态,如果认证失败返回错误响应
服务器处理认证请求。
如果操作是异步的,当调用auth_mod_method()函数返回时一个预备的结果已经保存在auth_status_t结构体内了。异步方式下,可以将一个回调函数赋给结构体。当认证完成后回调函数会被调用。可以使用auth_mod_cancel()函数取消还未结束的认证操作。


服务端侧认证参数

服务器使用auth_mod_create()函数创建认证模块时,可指定不同的参数来影响认证协议和算法。这些参数tags在<sofia-sip/auth_module.h>头文件中定义。最重要的参数有这么一些:
AUTHTAG_METHOD()
AUTHTAG_ALGORITHM()
AUTHTAG_QOP(),和
AUTHTAG_REMOTE()


客户端认证用户

<sofia-sip/auth_client.h>头文件中定义了客户端使用的与服务端一道认证用户的接口。因为可能存在多个服务器和代理需要认证,所以客户端侧认证信息用auth_client_t对象列表表示。客户端侧的操作是这样的:
发送请求
获取401或407响应和挑战
使用auc_challenge()函数将挑战放入一个列表内
与客户交互获取凭证(用户名和密码),使用auc_credentials()auc_all_credentials()函数将凭证放入列表
auc_authorization()函数认证一个请求(将凭证header放入请求中),然后重新发送请求
如果有多个认证realm需要凭证,应用程序在使用auc_all_credentials()函数时必须提供相应的realm。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  voip sip