CAS6.0认证服务器-接口使用手册-V3.0
更新时间:2024-01-14 14:36:01 阅读量: 教育文库 文档下载
- cas60-12-8推荐度:
- 相关推荐
北京信城通数码科技有限公司
密级:普通秘密机密绝密 CAS6.0认证服务器接口使用手册
(C)2006-2007北京信城通数码科技有限公司版权所有
北京信城通:北京市南四环西路188号总部基地七区15号楼 邮编100070 电话 010-63702288 传真 010-63702800 上海信城通:上海市福州路666号金陵海欣大厦7楼d座 邮编200001 电话 021-63917337 传真 021-63917159 广州信城通:广州市天河北路586号帝景商业中心601室 邮编510630 电话 020-38497007 传真 020-38497001 深圳信城通:深圳市福田区天安数码时代大厦主楼1210室 邮编518048 电话 0755-33360518 传真 0755-83476748
北京信城通数码科技有限公司
版本历史
版本号 V1.0 V2.0 V3.0 生效日期 2007-5-17 2007-5-30 2007-9-23 建立 修改 修改整合 版本说明/变更理由/变更内容 作者 霍云 霍云 霍云 备注 变更说明:C:Create,初始创建;A:Add,增加内容;M:Mod,修改;D:Del,删除 北京信城通:北京市南四环西路188号总部基地七区15号楼 邮编100070 电话 010-63702288 传真 010-63702800 上海信城通:上海市福州路666号金陵海欣大厦7楼d座 邮编200001 电话 021-63917337 传真 021-63917159 广州信城通:广州市天河北路586号帝景商业中心601室 邮编510630 电话 020-38497007 传真 020-38497001 深圳信城通:深圳市福田区天安数码时代大厦主楼1210室 邮编518048 电话 0755-33360518 传真 0755-83476748
北京信城通数码科技有限公司
目录
1 前言 ................................................................................................................................................. 5 1.1 公司简介 ..................................................................................................................................................... 5 2 J2EE接口 ....................................................................................................................................... 5 2.1 接口介绍 ..................................................................................................................................................... 5 2.2 接口安装 ..................................................................................................................................................... 6 2.2.1 Casproxy.jar ........................................................................................................................................... 6 2.2.2 加载服务器组件到应用系统中 ............................................................................................................. 6 2.2.2.1 Web.xml ................................................................................................................................. 6 2.2.2.2 拷贝配置文件 .......................................................................................................................... 7 2.2.2.3 拷贝运行文件 .......................................................................................................................... 8 2.2.2.4 cas.properties ....................................................................................................................... 8 2.2.2.5 caslog.xml ............................................................................................................................. 9 2.3 接口说明 ................................................................................................................................................... 11 2.3.1 函数说明 ............................................................................................................................................... 11 2.3.1.1 类 AuthBroker .................................................................................................................... 11 2.3.1.2 接口 AuthBrokerIF ............................................................................................................. 12 2.3.2 使用示例 ............................................................................................................................................... 15 3 C接口 ............................................................................................................................................ 19 3.1 接口介绍 ................................................................................................................................................... 19 3.2 安装说明 ................................................................................................................................................... 19 3.2.1 解压缩 ................................................................................................................................................... 19 3.2.2 config说明 ............................................................................................................................................ 21 3.2.2.1 casserver.config ................................................................................................................. 21 3.2.2.2 casclient.config .................................................................................................................. 22 3.2.3 配置环境 ............................................................................................................................................... 22 3.3 C接口说明 ............................................................................................................................................... 23 3.3.1 创建代理 ............................................................................................................................................... 23 3.3.2 注销代理 ............................................................................................................................................... 23 3.3.3 证书用户登录 ....................................................................................................................................... 23 3.3.4 证书用户登出 ....................................................................................................................................... 24 3.3.5 口令用户登录 ....................................................................................................................................... 24 3.3.6 口令用户登出 ....................................................................................................................................... 24 3.3.7 用户令牌校验 ....................................................................................................................................... 24 3.3.8 用户令牌校验并取用户属性(接口1) ............................................................................................ 25 3.3.9 用户令牌校验并取用户属性(接口2) ............................................................................................ 25 3.3.10 用户令牌比较 ....................................................................................................................................... 26 3.4 调用说明 ................................................................................................................................................... 26 3.5 返回值代码 ............................................................................................................................................... 27 4 CAS for CIQ接口(C接口和PowerBuilder接口) ................................................................... 27 4.1 接口介绍 ................................................................................................................................................... 27 4.2 接口安装 ................................................................................................................................................... 27 4.2.1 解压缩 ................................................................................................................................................... 27 4.2.2 config说明 ............................................................................................................................................ 28 4.2.3 配置环境 ............................................................................................................................................... 30 4.2.4 安装成功测试 ....................................................................................................................................... 30 4.3 接口说明 ................................................................................................................................................... 33 4.3.1 函数说明 ............................................................................................................................................... 33 4.3.1.1 C接口说明 ........................................................................................................................... 33 4.3.1.2 PowerBuilder调用说明 ....................................................................................................... 33 4.3.2 返回码定义 ........................................................................................................................................... 34
CAS6.0认证服务器-接口使用手册-V2.0 第 3 页 共 35 页
北京信城通数码科技有限公司
5 技术支持及售后服务...................................................................................................................... 35
CAS6.0认证服务器-接口使用手册-V2.0 第 4 页 共 35 页
北京信城通数码科技有限公司
1 前言
1.1 公司简介
北京信城通数码科技有限公司(以下简称信城通)是2001年8月在北京中关村科技园区丰台园注册成立的高新技术企业,是经信息产业部批准的跨地区增值电信业务服务商。
信城通的业务主要涉及电子数据交换服务、在线数据处理服务、在线交易处理服务、网络信息技术服务、信息安全服务、产品及应用软件研发等领域。公司80%以上的员工拥有本科及以上学历,同时拥有多位业内顶级技术专家与资深业务骨干。凭借良好的人才优势、强大的技术实力与专业的服务队伍,为各级检验检疫机构及广大进出口企业用户提供优质的产品和服务,并成为联接二者的优秀桥梁。
经信息产业部电信管理部门审核批准,公司获得了《中华人民共和国电信与信息服务经营许可证》(京ICP 证010524)。2001年9月20日取得《中关村科技园丰台园高新技术企业证书》(证书号:0121618F)。2005年8月18日,信城通通过ISO9001:2000标准质量管理体系认证,并已经正式启动CMMI的认证进程。
北京信城通数码科技现有员工150多人,全部为大专以上学历,其中硕士占7%,本科占70%,大专占23%。高级管理人员14%,技术人员62%,一般管理人员24%。
2005年11月28日,信城通正式入住位于中关村科技园区丰台园总部基地的新办公楼,它是信城通自成立以来快速发展的标志,也是信城通今后长期稳定发展的坚实基础。 信城通将始终秉承以用户为中心、以市场为导向、以服务为基础、以技术为后盾、以创新求发展、以诚信立长久的企业宗旨,脚踏实地,开拓进取,持续不断地为广大用户提供优质的产品和服务。
2 J2EE接口
2.1 接口介绍
本手册介绍了CAS6.0认证服务器的门户接口函数。这部分接口函数实现了两类功能:用户的标识校验和取证书的相关信息。本接口主要用于应用程序和CAS的整合,通过调用本接口,应用程序使用CAS提供的认证服务。本接口适用于Java形式的应用程序。
CAS6.0认证服务器-接口使用手册-V2.0 第 5 页 共 35 页
北京信城通数码科技有限公司
2.2 接口安装
2.2.1 Casproxy.jar
本接口目前封装在casproxy.jar中。应用程序使用时,取得casproxy.jar文件,放入相应目录中,并在应用程序的工程中加入相应的路径。
2.2.2 加载服务器组件到应用系统中 2.2.2.1 Web.xml
确定有效的web.xml,本文件位置在应用的WEB-INF目录下。
(1)如果Servlet的版本为2.3,则需要增加:
和
CAS6.0认证服务器-接口使用手册-V2.0 第 6 页 共 35 页
北京信城通数码科技有限公司
到合适的位置,
(2)如果Servlet的版本为2.2,则需要增加:
到合适的位置, 说明:
因Servlet规范2.2不支持listener,所以不需要配置
2.2.2.2 拷贝配置文件
在WEB-INF目录下建立新目录casconf,把配置文件(cas.properties和caslog.xml)拷贝到casconf下,完成后的结构如下:
图2.2-1 casconf
CAS6.0认证服务器-接口使用手册-V2.0 第 7 页 共 35 页
北京信城通数码科技有限公司
2.2.2.3 拷贝运行文件
把相应的jar文件:(commons-codec-1.3.jar、commons-collections.jar、commons-pool-1.2.jar、log4j-1.2.13.jar、ice.jar)拷贝到WEB-INF/lib目录下,这些Java库文件文件可以从产品光盘上取得或从网上下载,完成后的目录内容如下:
图2.2-2 lib
2.2.2.4 cas.properties
它包含以下内容,以#开头表示是注释,
名称 Ice.Warn.Connections 0 值 说明 显示连接警告信息,缺省为0 客户端活动Socket连接空闲存活时间,Ice.ACM.Client 0 超过此时间,连接将被关闭。缺省为0,表示禁止此功能。 0-不跟踪 1-跟踪连接建立和关闭 Ice.Trace.Network 2-类似1,但更详细一些 3-类似2,但跟踪数据 每个连接关联的线程数,在TCP连接条件下,一个socket连接可以有多个线程,Ice.ThreadPerConnection 1 但在SSL环境下只能设置为1(JSSE的限制), 在使用SSL连接条件下,必须包含此插Ice.Plugin.IceSSL IceSSL.PluginFactory 0-不跟踪,缺省值 IceSSL.Trace.Security 1-跟踪少量信息 2-比较详细 IceSSL.Client.Ciphers IceSSL.Client.Keystore NONE (RSA) !(EXPORT) !(NULL) F:/reports/certs/client.jks SSL协商时,支持的密码算法。 证书和私钥库,java的KeyStore格式。 SSL连接的跟踪信息。 件。 网络跟踪选项 CAS6.0认证服务器-接口使用手册-V2.0 第 8 页 共 35 页
北京信城通数码科技有限公司
IceSSL.Client.KeystorePassword IceSSL.Client.Certs IceSSL.Client.CertsPassword Cas.ConnectionPool.max.active Cas.ConnectionPool.wait.time Cas.Application.Login.Identity Cas.Application.Login.Password changeit F:/reports/certs/cacerts.jks password 密钥库的密码, 可信任的证书库 证书库的密码 连接到CAS的最大Socket连接数,缺省10 是20个。 从Socket连接池中获得一个连接的等待5 最长时间,超过这个时间,将返回错误。 应用系统在CAS服务器中注册的应用系sso-portal 统标识。 应用系统在CAS服务器中注册的应用系sso-password 统标识对应的口令。 CAS服务器的地址和端口号,仅支持Cas.CasServer.Endpoints tcp -h 10.98.157.34 -p 10000 IPV4,tcp表示是TCP协议,ssl表示是SSL协议,-h指定CAS服务器的地址,-p指定CAS服务器的端口号。 表2.1-1 cas.properties 2.2.2.5 caslog.xml
日志支持5个级别,级别越高,记录的信息越详细。
级别 1 2 3 4 5 fatal error warn info debug 值 严重级别, 错误 警告(生产环境下设置级别) 信息(调试状态) 调试(调试状态) 表2.1-2 caslog.xml 说明 配置文件为xml格式,缺省条件下,日志输出到系统标准输出中,要修改的只是日志级别,见红色部分。
2.2.2.5.1 缺省配置
CAS6.0认证服务器-接口使用手册-V2.0 第 9 页 共 35 页 北京信城通数码科技有限公司
2.2.2.5.2 输出到文件配置
1. 在
色部分即可。
2. 在 3. 注意, CAS6.0认证服务器-接口使用手册-V2.0 第 10 页 共 35 页 北京信城通数码科技有限公司 2.3 接口说明 2.3.1 函数说明 2.3.1.1 类 AuthBroker java.lang.Object cn.itownet.sdk.cas.AuthBroker 所有已实现的接口: AuthBrokerIF 方法摘要 static AuthBrokerIF loginCheck(HttpServletRequest request, HttpServletResponse response) 验证用户登录令牌,如果没有发现令牌,则重定向到门户进行登录, 登录成功后,再重新返回到本接口。 static AuthBrokerIF tokenCheck(HttpServletRequest request, HttpServletResponse response) 验证目前已经登录用户的令牌是否继续有效,当用户重新登录后,前次登录令牌将失效。 表3.1-1 2.3.1.1.1 loginCheck public static final AuthBrokerIF loginCheck(HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception 验证用户登录令牌,如果没有发现令牌,则重定向到门户进行登录, 登录成功后,再重新返回到本接口。 参数: request - http请求对象 response - http响应对象 返回: -如果验证成功,返回AuthBrokerIF实例,可以取相应的属性。 -如果为null,表示需要进行重定向,调用者只需返回即可。 -Exception,表示验证错误,不需要继续处理。 抛出: CAS6.0认证服务器-接口使用手册-V2.0 第 11 页 共 35 页 北京信城通数码科技有限公司 java.lang.Exception 2.3.1.1.2 tokenCheck public static final AuthBrokerIF tokenCheck(HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception 验证目前已经登录用户的令牌是否继续有效,当用户重新登录后,前次登录令牌将失效。 参数: request - http请求对象 response - http响应对象 返回: -如果验证成功,返回AuthBrokerIF实例,可以取相应的属性。 -Exception,表示验证错误,说明本令牌已经失效,或没有找到令牌,可以进行错误处理。 抛出: java.lang.Exception 2.3.1.2 接口 AuthBrokerIF 所有已知实现类: AuthBroker public interface AuthBrokerIF 方法摘要 getC() java.lang.String get subject's country getCN() java.lang.String get subject's commonName getDN() java.lang.String get subject's DN getEntityID() java.lang.String get subject's entityID getL() java.lang.String get subject's locality getO() java.lang.String get subject's orgnization getOs() CAS6.0认证服务器-接口使用手册-V2.0 第 12 页 共 35 页 北京信城通数码科技有限公司 java.util.Vector get subject's orgnizations getOU() java.lang.String get subject's orgnizationUnit getOUs() java.util.Vector get subject's orgnizationUnits getSN() java.lang.String get certificate's serialNumber getSN0() java.lang.String 已过时。 getST() java.lang.String get subject's stateOrProvince 表3.1-2 2.3.1.2.1 getC java.lang.String getC() get subject's country 返回: country code 2.3.1.2.2 getST java.lang.String getST() get subject's stateOrProvince 返回: stateOrProvince 2.3.1.2.3 getL java.lang.String getL() get subject's locality 返回: city 2.3.1.2.4 getO java.lang.String getO() get subject's orgnization 返回: CAS6.0认证服务器-接口使用手册-V2.0 第 13 页 共 35 页 北京信城通数码科技有限公司 orgnization 2.3.1.2.5 getOs java.util.Vector getOs() get subject's orgnizations 返回: all orgnizations 2.3.1.2.6 getOU java.lang.String getOU() get subject's orgnizationUnit 返回: orgnizationUnit 2.3.1.2.7 getOUs java.util.Vector getOUs() get subject's orgnizationUnits 返回: all orgnizationUnits 2.3.1.2.8 getCN java.lang.String getCN() get subject's commonName 返回: common name 2.3.1.2.9 getDN java.lang.String getDN() get subject's DN 返回: distinguish name 2.3.1.2.10 getSN0 java.lang.String getSN0() 已过时。 CAS6.0认证服务器-接口使用手册-V2.0 第 14 页 共 35 页 北京信城通数码科技有限公司 Warning, deprecated, please use getEntiryID 返回: entity id 2.3.1.2.11 getSN java.lang.String getSN() get certificate's serialNumber 返回: cert serial number 2.3.1.2.12 getEntityID java.lang.String getEntityID() get subject's entityID 返回: entity id 2.3.2 使用示例 import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class for Servlet: RedirectTestServlet * * @web.servlet name=\ display-name=\ * * @web.servlet-mapping url-pattern=\ * */ public class RedirectTestServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { /* CAS6.0认证服务器-接口使用手册-V2.0 第 15 页 共 35 页 北京信城通数码科技有限公司 * (non-Java-doc) * * @see javax.servlet.http.HttpServlet#HttpServlet() */ public RedirectTestServlet() { } /* * (non-Java-doc) * * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest * HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, super(); request, IOException { try { AuthBrokerIF abi = AuthBroker.loginCheck(request, if (abi == null) return; response.setContentType(\); PrintWriter out = null; try { } // verify info out.append(\); out = response.getWriter(); out.println(\ + \); response); } catch (Exception e) { e.printStackTrace(); return; CAS6.0认证服务器-接口使用手册-V2.0 第 16 页 共 35 页 北京信城通数码科技有限公司 out.append(\用户实体标识1-EID\ + + \); abi.getEntityID() out.append(\用户实体标识2-SN0\ + abi.getSN0() + \); out.append(\用户序列号SN\ + abi.getSN() + out.append(\ + abi.getDN() + \); \); out.append(\国家信息C值\ + abi.getC() + \); out.append(\通用名称CN值\ + abi.getCN() + \); out.append(\用户地区L值\ + abi.getL() + \); out.append(\用户组织O值\ + abi.getO() + \); out.append(\用户组织OU值\ + abi.getOU() + \); /* * (non-Java-doc) * * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest } } out.append(\用户ST值\ + abi.getST() + out.append(\); out.println(\); out.close(); e.printStackTrace(); \); } catch (Exception e) { request, CAS6.0认证服务器-接口使用手册-V2.0 第 17 页 共 35 页 北京信城通数码科技有限公司 * HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { AuthBrokerIF abi = AuthBroker.tokenCheck(request, response.setContentType(\); PrintWriter out = null; try { } // verify info out.append(\); out.append(\用户实体标识1-EID\ + + \); out = response.getWriter(); out.println(\ + \); response); } catch (Exception e) { e.printStackTrace(); return; abi.getEntityID() out.append(\用户实体标识2-SN0\ + abi.getSN0() + \); out.append(\用户序列号SN\ + abi.getSN() + out.append(\ + abi.getDN() + \); \); out.append(\国家信息C值\ + abi.getC() + \); out.append(\通用名称CN值\ + abi.getCN() + \); out.append(\用户地区L值\ + abi.getL() + CAS6.0认证服务器-接口使用手册-V2.0 第 18 页 共 35 页 北京信城通数码科技有限公司 \); out.append(\用户组织O值\ + abi.getO() + \); out.append(\用户组织OU值\ + abi.getOU() + \); } } } out.append(\用户ST值\ + abi.getST() + out.append(\); out.println(\); out.close(); e.printStackTrace(); \); } catch (Exception e) { 3 C接口 3.1 接口介绍 本手册介绍了CAS6.0认证服务器的门户接口函数。这部分接口函数实现了两类功能:用户的标识校验和取证书的相关信息。本接口主要用于应用程序和CAS的整合,通过调用本接口,应用程序使用CAS提供的认证服务。本接口适用于C语言的应用程序。 3.2 安装说明 3.2.1 解压缩 Linux下安装时,先取得接口Linux版压缩包aspicas.tar.gz,然后用tar命令把aspicas.tar.gz解压缩到一个路径中。压缩包展开后的内容如下: CAS6.0认证服务器-接口使用手册-V2.0 第 19 页 共 35 页 北京信城通数码科技有限公司 其中: 目录 说明 本目录中包含一个简单的cas测试服务器,casservertest。 其中casserver.config为测试服务器的配置文件,各项解释见2.2节 casservertest 如当前路径在casservertest目录,服务器运行使用命令: ./casservertest –Ice.Config=casserver.config config include 客户端的配置文件,casclient.config,各项解释见2.2节 CAS aspi C接口的头文件,aspicas6.h CAS aspi C接口本身的库文件为libaspicas_c.so.6.1.0 lib 其它的都是接口依赖的库文件 对于Windows版的接口安装,请先取得Windows版接口压缩包aspicas.zip,然后把压缩包解压得如Linux版类似的目录结构和内容: CAS6.0认证服务器-接口使用手册-V2.0 第 20 页 共 35 页 北京信城通数码科技有限公司 其中lib目录下的aspicas6c.dll是接口的动态库,其它是接口依赖的库文件 3.2.2 config说明 3.2.2.1 casserver.config 它的内容如下: ――――――――――――――――――――――――――――――――――― CasServer.Host = tcp -h 0.0.0.0 -p 10001 CasServer.AppProperty.1 = test@test.com CasServer.AppProperty.2 = 12345678 CasServer.Region = 10 App.id = smtp App.pwd = 1234 User.name = user1 User.pwd = 5678 ――――――――――――――――――――――――――――――――――― 它们的含义如下: ? CasServer.Host,指定casserver.exe监听的地址和端口号,格式为“tcp -h 地址 -p 端口号”,如果省略“-h 地址”,则在本地所有的地址上监听。 ? CasServer.AppProperty.1,CasServer.AppProperty.2,指定CAS服务器返回的 应用属性,目前接口中未返回应用属性 ? CasServer.Region,CAS服务器地区号,范围为1~255,用户的地区号必须和CAS 的地区号一致。 ? App.id,应用的id ? App.pwd,应用的口令 CAS6.0认证服务器-接口使用手册-V2.0 第 21 页 共 35 页 北京信城通数码科技有限公司 ? User.name,用户的id ? User.pwd, 用户的口令 3.2.2.2 casclient.config 它的内容如下: ――――――――――――――――――――――――――――――――――― Ice.RetryIntervals = 0 100 Ice.ACM.Client =30 Ice.Override.ConnectTimeout =30 CasClient.Appid = smtp CasClient.Pwd = 1234 CasClient.HostPort = 10.98.157.205:10001 CasClient.UserRegion = 10 #CasClient.GetProperty.1 = mailbox #CAsClient.GetProperty.2 = mailboxpwd ――――――――――――――――――――――――――――――――――― 它们的含义如下: ? Ice.RetryIntervals,代理无法连接服务时的重试间隔,0 100表示失败时立即重试, 再次失败时过100(毫秒)再次重试 ? Ice.ACM.Client,用户连接停止活动一段时间(秒)后断开 ? Ice.Override.ConnectTimeout,客户端连接超时时间(秒) ? CasClient.Appid,应用id ? CasClient.Pwd, 应用口令 ? CasClinet.HostPort,CAS服务器地址和端口,用冒号分隔地址和端口,可设置多 个CAS服务器,用逗号分隔每个服务器地址,如: 10.98.157.205:10000,10.98.157.206:10001 ? CasClient.UserRegion,用户地区号,应与所连接的CAS服务器地区号相同 ? CasClient.GetProperty.1,CasClient.GetProperty.2,客户端希望获取的属性名 3.2.3 配置环境 把lib目录下的库文件拷贝到ld.so.conf的搜索路径下。 CAS6.0认证服务器-接口使用手册-V2.0 第 22 页 共 35 页 北京信城通数码科技有限公司 把include目录加入头文件搜索路径或把头文件拷贝到已加入搜索路径的头文件目录中。 3.3 C接口说明 3.3.1 创建代理 方面 原型 返回值 参数 说明 int CAS_C_proxyNew(const char * c_filename); 成功(>=0):本次会话的代理,保留使用 失败(<0):错误码 c_filename:客户端配置文件名,可为相对和绝对路径 3.3.2 注销代理 方面 原型 返回值 参数 说明 int CAS_C_proxyDestroy(); 成功(=0): 失败(<0):错误码 无 3.3.3 证书用户登录 方面 原型 说明 int CAS_C_userCertLogin(const CAS_C_CertData c_cd, char * c_token, int tokenLen); 成功(>=0):成功,返回令牌字符串。 失败(<0):错误码 c_cd:用户证书数据结构,见头文件中CAS_C_CertData结构定义 参数 c_token:令牌缓冲区指针 tokenLen:令牌缓冲区的大小,目前令牌大小不超过2K字节 说明: 1. c_token为调用者分配的内存空间,由tokenLen指定空间大小,包含字符串的结束符’\\0’。 2. 当tokenLen小于要返回的令牌长度时,返回错误码 返回值 CAS6.0认证服务器-接口使用手册-V2.0 第 23 页 共 35 页 北京信城通数码科技有限公司 3.3.4 证书用户登出 方面 原型 返回值 参数 说明 int CAS_C_userCertLogout(const char * c_token); 成功(>=0):成功 失败(<0):错误码 c_token:令牌缓冲区指针 3.3.5 口令用户登录 方面 原型 说明 int CAS_C_userPwdLogin(const char * c_uname, const char * c_pwd, char * c_token, int tokenLen); 成功(>=0):成功,返回令牌字符串。 失败(<0):错误码 c_uname:用户名 参数 c_pwd:用户口令 c_token:令牌缓冲区 tokenLen:令牌缓冲区的大小,目前令牌大小不超过2K字节 说明:c_token和tokenLen说明同1.3节 返回值 3.3.6 口令用户登出 方面 原型 返回值 参数 说明 int CAS_C_userPwdLogout(const char * c_token); 成功(>=0):成功 失败(<0):错误码 c_token:令牌缓冲区 3.3.7 用户令牌校验 方面 原型 说明 int CAS_C_tokenCheck(const char * c_oldToken, char * c_newToken, int newTokenLen); 成功(>=0):成功,返回新的令牌字符串。 失败(<0):错误码 返回值 CAS6.0认证服务器-接口使用手册-V2.0 第 24 页 共 35 页 北京信城通数码科技有限公司 c_oldToken:旧的用户令牌指针 参数 c_newToken:新的令牌缓冲区 newTokenLen:新的令牌缓冲区的大小,目前令牌大小不超过2K字节 说明:c_newToken和newTokenLen说明同1.3节 3.3.8 用户令牌校验并取用户属性(接口1) 方面 说明 int CAS_C_tokenCheckGetProperty(const char * c_oldToken, 原型 const int propNum, const char * c_pNameLst[], char * c_pValueLst[]); 返回值 成功(>=0):成功,返回用户的属性,其中 失败(<0):错误码 c_oldToken:旧的用户令牌指针 propNum:用户属性个数 c_pNameLst:用户属性名列表,无先后顺序,返回的属性值顺序与之 相对应。其中cas.token为必备属性。 目前支持的属性名为: 参数 cas.token token.id token.region cas.cert-sn cas.cert-dn cas.cert-eid c_pValueLst:用户属性值列表 3.3.9 用户令牌校验并取用户属性(接口2) 方面 说明 int CAS_C_tokenCheckGetPropertyP(const char * c_oldToken, 原型 const int propNum, const char ** c_pNameLst, char ** c_pValueLst); 返回值 成功(>=0):成功,返回新的令牌字符串。 失败(<0):错误码 CAS6.0认证服务器-接口使用手册-V2.0 第 25 页 共 35 页 北京信城通数码科技有限公司 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 页 北京信城通数码科技有限公司 图 2.4-1 表示服务器已经准备好接收请求,服务器的配置信息见3.2的配置说明。 2. 在命令行下输入:casadtest.exe,应出现以下界面: 图 2.4-2 弹出选择证书的窗口,选择一个证书,然后点击“确定”按钮,会出现以下类似信息: CAS6.0认证服务器-接口使用手册-V2.0 第 31 页 共 35 页 北京信城通数码科技有限公司 图 2.4-3 列出了获取的属性名(app.username和app.password)的属性值。 同时,服务器端的输出信息为: 图 2.4-4 3. 如果上面两步都成功,表示安装完成。 4. 可以用“3.3使用示例”代码验证PowerBuilder环境下运行是否正确。 CAS6.0认证服务器-接口使用手册-V2.0 第 32 页 共 35 页 北京信城通数码科技有限公司 4.3 接口说明 4.3.1 函数说明 4.3.1.1 C接口说明 4.3.1.1.1 登录CAS系统 方面 原型 说明 int WINAPI CAS_userLogin(const char*host, int port, int timeout) 返回值 成功(>=0):本次会话的ID,保留使用 失败(<0):错误码,请参见3.2节 参数 host:CAS地址 port:CAS端口号 timeout:超时时间,单位为秒 表3.1-1 4.3.1.1.2 登出CAS系统 方面 说明 原型 int WINAPI CAS_userLogout(int logcode) 返回值 成功(=0): 失败(<0):错误码,请参见3.2节 参数 logcode:正确登录时的返回值 表3.1-2 4.3.1.1.3 获取属性值 方面 原型 返回值 参数 说明 int WINAPI CAS_getAppAttribute (const char* appid, const char* attrib, char* buffer, int bufflen); 成功(>=0):成功,返回字符串的长度或需要的空间。 失败(<0):错误码,请参见3.2节 appid:应用标识,(本处指数据库) attrib:属性名字,(本处指用户名、口令) buffer:缓冲区,如果为空,则本函数返回需要的空间大小; bufflen:缓冲区的大小 表3.1-3 说明: 1. buffer为调用者分配的内存空间,由bufflen指定空间大小,包含字符串的结束符’\\0’。 2. 当buffer为NULL时,返回的空间要求可能比实际的要大一些。 4.3.1.2 PowerBuilder调用说明 在使用C接口的PowerBuilder脚本中需要声明为全局外部函数,其名称可以任意声明,例如(alias),格式如下: 4.3.1.2.1 登录CAS系统 FUNCTION int CAS_userLogin(string host, int port, int timeout) LIBRARY \ 4.3.1.2.2 登出CAS系统 FUNCTION int CAS_userLogout(int logcode) LIBRARY \ CAS6.0认证服务器-接口使用手册-V2.0 第 33 页 共 35 页 北京信城通数码科技有限公司 4.3.1.2.3 获取属性值 FUNCTION int CAS_getAppAttribute (string appid, string attrib, &REF string buffer, int bufflen) LIBRARY \ 4.3.1.2.4 使用示例 在例子中都没有判断返回值,在实际使用中需要判断。 1) CAS_userLogin(\ 2) string stringBuffer 3) // read user name 4) stringBuffer = Space(100) 5) CAS_getAppAttribute(\\stringBuffer, 100) 6) MessageBox(\ 7) // read user password 8) stringBuffer = Space(100) 9) CAS_getAppAttribute(\\stringBuffer, 100) 10) MessageBox(\ 11) CAS_userLogout(100) 对以上操作的描述: 第一步,登录集中认证服务器,我们假定成功。 第四步,为缓存分配空间 第五步,获取用户名属性,我们假定成功。(此处的应用ID是一个测试值,不代表真正应 用的ID) 第六步,显示获得的用户名; 第九步,获取口令属性,我们假定成功。 第十步,显示获得的口令; 第十一步,退出登录。 4.3.2 返回码定义 >=0:成功 -10000:用户点击了证书选择对话框的“取消”按钮; -20000:没有找到颁发者; -20001:初始化出错; -20002:没有初始化环境; -20003:证书登录错误; CAS6.0认证服务器-接口使用手册-V2.0 第 34 页 共 35 页 北京信城通数码科技有限公司 -20004:导入会话密钥错误; -20005:签名数据错误; -20006:验证签名错误; -20007:登录异常; -20008:摘要计算错误; -20009:加密数据错误; -20010:退出验证错误; -20011:未知异常; -20012:退出异常; -20013:获取应用属性错误; -20014:解密数据错误; -20015:获取应用属性异常; -20016:初始化加密模块错误; -20017:过多颁发者; -20018:缓存长度太小; -20019:有效期时间格式错误; -20020:提示过期天数格式错误; -20021:服务器证书错误; -20022:产生随机会话密钥错误; -20023:连接不到服务器错误; 5 技术支持及售后服务 用户对产品使用有任何疑问,可以参阅产品联机帮助手册;或直接下载最新手册http://www.itownet.cn/secit/manual/,用户也可以直接联系客户服务部,联系方式为: 热线电话:010-82863004-800 热线传真:010-63702800 联系邮箱:surport@itownet.cn 网络联系工具:surport@hotmail.cn CAS6.0认证服务器-接口使用手册-V2.0 第 35 页 共 35 页
正在阅读:
美丽的四季作文700字07-14
学生会工作手册 - 图文05-18
五谷道场的营销案例分析04-10
民族理论总结09-24
2017-2023年中国合成材料阻燃剂行业市场调查及“十三五”投资战03-23
小学生一年级快乐的六一节作文06-14
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 接口
- 认证
- 手册
- 服务器
- 使用
- CAS
- 6.0
- 3.0
- 相关习题:(好 光的反射与折射)
- 时间序列分析试卷及答案
- 卓越绩效评价准则实施指南
- 本科论文示例:浅析京东农村电商发展策略
- 高一三角函数同步练习1(角的概念的推广)
- 物业管理政策法规知识竞赛试题汇总
- 沈从文
- 电气题库
- 浅谈怎样创设问题情境
- 定语从句单选及答案16年
- 11日中医专业基础测试答案
- 四川省遂宁市拦江中学2018-2019学年高三上学期期中考试理综生物试题 Word版含答案
- 考古学与博物馆学 论述题
- 热能与动力工程基础考试试题大全
- 2018年深圳乐而思中心高考人教版物理综合题分类练习卷:带电粒子在交变电场的运动
- 关于发供电煤耗的分析
- 轮系练习题 - 图文
- 最新临床检验诊断学专业毕业论文致谢词范文模板
- l临床诊断学
- 2019届中考生物专题汇编显微镜的结构和使用