CAS6.0认证服务器-接口使用手册-V3.0

更新时间:2024-01-14 14:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

北京信城通数码科技有限公司

密级:普通秘密机密绝密 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,则需要增加:

itownet.cas.comp.ice.ApplicationListener

ProxyManagerServlet ProxyManagerServlet

cn.itownet.comp.server.ProxyManagerServlet

progname proxycomp

configFile

/WEB-INF/casconf/cas.properties

configLog4j

/WEB-INF/casconf/caslog.xml

1

CAS6.0认证服务器-接口使用手册-V2.0 第 6 页 共 35 页

北京信城通数码科技有限公司

到合适的位置,

(2)如果Servlet的版本为2.2,则需要增加:

ProxyManagerServlet ProxyManagerServlet

cn.itownet.comp.server.ProxyManagerServlet

progname proxycomp

configFile

/WEB-INF/casconf/cas.properties

configLog4j

/WEB-INF/casconf/caslog.xml

1

到合适的位置, 说明:

因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 页

本文来源:https://www.bwwdw.com/article/ehmo.html

Top