北京信城通数码科技有限公司
c_oldToken:旧的用户令牌指针 参数 propNum:用户属性个数 c_pNameLst:用户属性名列表,支持的属性名值见1.8 c_pValueLst:用户属性值列表 3.3.10 用户令牌比较
方面 原型 说明 const char * CAS_C_whichTokenNew(const char * c_token1, const char * c_token2); 成功(>=0):成功,返回两者中最新的令牌指针。 失败(=0):两个令牌都非法 c_ token1:用户令牌指针1 c_ token2:用户令牌指针2 返回值 参数 3.4 调用说明
1, 程序使用接口时,应先调用CAS_C_proxyNew函数进行初始化代理。
2, 如果需要校验用户身份(用户名/口令),可以调用CAS_C_userPwdLogin函数,该函
数返回一个令牌做为一个会话过程中的用户标识。
3, 程序可以使用CAS_C_userPwdLogin函数返回的令牌进行用户身份(令牌)的多次认
证,这需要调用CAS_C_tokenCheck函数,本函数会返回新的用户令牌,作为下一次用户身份(令牌)校验的标识。
4, 当完成一个会话后,可调用CAS_C_userPwdLogout函数登出用户会话。 5, 当程序不再使用认证服务后,应调用CAS_C_proxyDestroy函数注销代理。 注意:
1, 对于多进程程序,应在父进程调用代理的初始化和注销函数,即CAS_C_proxyNew和
CAS_C_proxyDestroy函数。
2, 对于单进程多线程程序,请在主线程调用一次代理的初始化和注销函数即可。 3, 对于多进程多线程程序,应在父进程的主线程中调用代理的初始化和注销函数。 4, 当用户身份校验(用户名/口令,令牌)返回-30001(应用登录失败)时,说明应用本
身的会话ID校验失败,可再次调用用户身份校验函数,接口会自动重新创建新的应用会
CAS6.0认证服务器-接口使用手册-V2.0 第 26 页 共 35 页
北京信城通数码科技有限公司
话。
3.5 返回值代码
>=0:成功
-20001:初始化出错; -20002:没有初始化环境; -20007:登录异常; -20011:未知异常; -20012:退出异常; -20018:缓存长度太小; -20023:连接不到服务器错误;
-30001:应用登录失败; -30002:应用登出失败; -30003:用户登录失败; -30004:用户登出失败; -30005:令牌校验失败; -30006:取用户属性错误; -30007:令牌解码失败;
4 CAS for CIQ接口(C接口和PowerBuilder接口) 4.1 接口介绍
本接口手册介绍了集中认证服务器提供的针对CIQ应用程序的接口。CIQ应用程序通过本接口登录集中认证服务器,并取得需要的属性值。
4.2 接口安装
4.2.1 解压缩
用WinRAR把aspicas.rar解压缩到一个路径中,本处假设为D:\\aspicas。展开后的内容如下:
CAS6.0认证服务器-接口使用手册-V2.0 第 27 页 共 35 页
北京信城通数码科技有限公司
图 2.1-1
其中:
aspicas.dll bzip2.dll casadui.dll ice30.dll iceutil30.dll msvcp71.dll msvcr71.dll sspirtl.dll casserver.exe 依赖的运行库,如果系统上已经包含了msvcp71.dll和 msvcr71.dll,则可以不安装本运行库。 封装了调用接口 测试服务器,是一个独立运行的程序,它需要配置文件config,config说明见2.2部分。 客户端测试程序,可以检测服务器安装是否正确,调用方式为: casadtest.exe [localhost] [10000] [300] 缺省下,连接localhost上的10000端口,超时时间300秒,可以通过参数修改,如: casadtest.exe 10.98.157.30 900 30 表示连接10.98.157.30上900端口号,超时时间30秒 casserver.exe的配置文件,必须与casserver.exe放在同一目录。其内容见“2.2 config说明” 表 2.1-1 casadtest.exe config 4.2.2 config说明
它的内容如下:
# 指定服务器监听的ip地址和端口号, # 格式为: tcp -h 地址 -p 端口号
#CasServer.Endpoints=tcp -h localhost -p 10000 CasServer.Endpoints=tcp -p 10000 #
CAS6.0认证服务器-接口使用手册-V2.0 第 28 页 共 35 页
北京信城通数码科技有限公司
# 指定服务器线程池的大小,不需要改变此值 Ice.ThreadPool.Server.Size=20
############################################### # 信任根证书 通用名(commonName)列表
############################################### issuer.1=ROOTCA issuer.2=CAS Root CA e issuer.3= issuer.4=
############################################### # 要使用的应用属性名和值,为测试用
############################################### app.username=a-db-name app.password=xx bbbbb 它们的含义如下: 1. CasServer.Endpoints
指定casserver.exe监听的地址和端口号,格式为“tcp -h 地址 -p 端口号”,如果省略“-h 地址”,则在本地所有的地址上监听。 2. issuer.X
指定允许的信任CA根证书的通用名,测试程序最多支持四个信任根CA。
其目的是通过这些名称去过滤用户证书,其为在证书选择列表框中的颁发者的值。如,配置文件中的ROOTCA和CAS Root CA显示在颁发者栏中。
CAS6.0认证服务器-接口使用手册-V2.0 第 29 页 共 35 页
北京信城通数码科技有限公司
图 2.2-1
3. 属性值
其它的配置项为属性值,可以通过CAS_getAppAttribute接口获得。如,在文件中配置了属性:应用用户名(app.username)和对应的属性值(a-db-name),及口令(app.password)和值(xx bbbbb); app.username=a-db-name app.password=xx bbbbb 值得注意的是:
配置的属性值的前面和后面的空格都被忽略掉,中间的空格保留。
为了验证CIQ的使用,在此处需要配置数据库的用户名和口令。
4.2.3 配置环境
假定我们展开的包目录为D:\\aspicas,为了使PowerBuilder能够找到aspicas.dll动态库,需要把目录D:\\aspicas添加到PATH环境变量中。
(也可以把所有的动态库拷贝到PowerBuilder的运行环境目录中,以便程序运行时,PowerBuilder能够找到。具体帮助信息可以参考 PowerBuilder如何调用动态库函数部分的说明。)
4.2.4 安装成功测试
在解压缩后,为了测试动态库的依赖性是否满足,我们可以测试一下: 1. 在资源管理器中双击casserver.exe,应出现以下界面,
CAS6.0认证服务器-接口使用手册-V2.0 第 30 页 共 35 页