金蝶EAS_V7.5_单点登录实施指南
[libdefaults]
default_realm = KINGDEE.COM
default_tkt_enctypes = des3-cbc-sha1 rc4-hmac des-cbc-md5 des-cbc-crc default_tgs_enctypes = des3-cbc-sha1 rc4-hmac des-cbc-md5 des-cbc-crc permitted_enctypes = des3-cbc-sha1 rc4-hmac des-cbc-md5 des-cbc-crc default_checksum = rsa-md5 clockskew = 360 [realms]
KINGDEE.COM= {
kdc = 192.168.16.2 }
[domain_realm]
.kingdee.com = KINGDEE.COM [logging]
default = FILE:E:/EAS4.1/apusic/logs/default.log kdc = FILE:E:/EAS4.1/apusic/logs/kdc.log
admin_server = FILE:E:/EAS4.1/apusic/logs/kadmin.log kdc_rotate = { period = 1d versions = 10 }
参数说明:
?
default_realm:为AD域控制全限定域名 (例如:KINGDEE.COM),注意:此参数值中的字母必须大写,如上配置参数所示。
?
kdc :为AD域服务器IP地址,注意:该参数外层的参数必须同default_realm定义的域名相同,如上配置参数所示。
?
domain_realm:该段中定义了应用实际域名或主机名和AD域名的映射关系,其定义格式和规范如上配置参数所示,一般为:.域名称(小写,最前面有个点) = 域名称(大写)。
实际使用中,用户只需要配置上面红色字体标注的部分,将实际采用的AD域服务器的域名和IP地址配置到该文件中。
SUN或IBM JDK6.0+版本请在[libdefaults]段配置allow_weak_crypto = true,启用弱加密算法以便匹配Windows AD域默认配置。
3.3.2 配置EAS用户认证登录类
在服务端\\server\\properties目录下的login.config文件中加入以下配置参数:
com.kingdee.eas.cp.eip.sso.ad.ActiveDirAuthHandler {
com.sun.security.auth.module.Krb5LoginModule required client=TRUE debug=true useTicketCache=FALSE; };
IBM JDK时配置则如下:
第16页,总53页
金蝶EAS_V7.5_单点登录实施指南
(com.kingdee.eas.cp.eip.sso.JAASAuthHandlerProxy为JAAS实现类):
com.kingdee.eas.cp.eip.sso.ad.ActiveDirAuthHandler {
com.ibm.security.auth.module.Krb5LoginModule required debug=true; };
com.kingdee.eas.cp.eip.sso.JAASAuthHandlerProxy {
com.ibm.security.auth.module.Krb5LoginModule required debug=true; };
3.3.3 配置微软AD域用户认证处理器
按照3.1.2节所述方法将微软AD域用户认证处理器配置到easAuthPatterns.xml文件中,AD域用户认证处理器的authPattern节点定义如下:
com.kingdee.eas.cp.eip.sso.ad.ActiveDirAuthHandler
注:easAuthPatterns.xml文件中的default节点要改为
3.4 LTPA认证方案的配置与实现
EAS7.0.1 需打补丁PT056937 PT056987;EAS7.0.3需打补丁PT057543 PT057551解决Token串包含乱码问题,EAS7.5已包含以上补丁代码,打了补丁后,若之前有二次开发用到的LTPATokenManager.jar包,请重新向支持部索取。
第17页,总53页
金蝶EAS_V7.5_单点登录实施指南 ssoClient.propertiesLtpaToken.propertiesautoLoginConfig.propertiesLTPA Webservice服务端1.2生成指向/easportal/index2sso.jsp?...原理:对称加解密的过程2.2生成指向/easportal/index2sso.jsp?...3.4.1 配置密钥文件
服务端server\\profiles\\server(1...n)\\config\\portalConfig目录下的
LtpaToken.properties文件即为LTPA Token 加密串的密钥,文件内容如下:
cookie.domain=.vanke.com token.expiration=30
domino.secret=BTfa8F+HwNejYEGtuZSJTWOZ/t8\\=
EAS服务器2.1 webservice调用得到Token串LTPATokenManager.jarLtpaToken.properties1.1 调用得到Token串Java第三应方用LTPA链接生成代码第三应方用非Webservice客户端,生成LTPA链接二次开发内容红色为安全保护对象Java 图3.1 LTPA认证方案部署视图
LTPA是一个基于web的认证框架,LTPA的详细信息请参见附录3,EAS的LTPA认证方案是一种基于web的加密认证机制,通过EAS portal与第三方web应用系统进行集成,可以实现只需登录一次即可相互进行访问。其配置步骤如下:
参数说明:
?
cookie.domain:与Domino集成时才有用的参数,通常无需关注
第18页,总53页
金蝶EAS_V7.5_单点登录实施指南
?
token.expiration:token串的有效时间,这里以分钟为单位,用于校验token串时检查其是否过期,其有效时间从生成token串时Web应用的系统时间开始算起,因此,LTPA认证集成机制要求被集成的各Web应用服务器的系统时间需要保持一致
?
domino.secret:加密生成token串的密钥,该参数可以是任意指定的一个字符串,没有长度限制,部署实施时注意更换此密钥以增加安全性。
该文件需要在EAS服务器环境和要集成Web应用系统的环境中各保存一份,且密钥必须相同,注意:在EAS服务器环境中该文件的存放路径不用改变,即上述缺省路径即可,在第三方Web应用系统中该文件的存放路径可任意指定 (例如:D:\\TrdWebApp\\security)。
3.4.2 LTPA Token加密和校验接口介绍
在服务端server\\lib\\server\\bos目录下的cp_sso-server.jar包包含了LTPA Token的生成和校验工具类com.kingdee.eas.cp.eip.sso.ltpa.LtpaTokenManager类,该类主要接口定义如下:
public static LtpaToken generate(String canonicalUser,String configFile); public static boolean verifyToken(String path, String token, String userNumber);
接口说明如下:
?
public static LtpaToken generate(String canonicalUser,String configFile); 该接口主要用于使用密钥文件LtpaToken.properties生成LTPA Token加密串。 参数说明:
? ?
canonicalUser:登录用户账号
configFile:LtpaToken.properties文件全路径 (例如:D:\\TrdWebApp\\security\\LtpaToken.properties)
?
public static boolean verifyToken(String path, String token, String userNumber);
该接口主要用于校验LTPA Token串的合法性。 参数说明:
第19页,总53页
金蝶EAS_V7.5_单点登录实施指南
?
path:LtpaToken.properties文件全路径 (例如:
D:\\TrdWebApp\\security\\LtpaToken.properties),如果第三方应用通过webservice调用EAS提供的服务,该参数传入null值。
? ?
token:使用generate接口生成的LTPA Token加密串
userNumber:使用generate接口生成的LTPA Token加密串时传入的登录用户账号
3.4.3 第三方应用集成EAS portal(即:在第三方应用中打开EAS portal)的实现步骤
在第三方Web应用系统中集成EAS portal通常指,在第三方系统中增加一个EAS portal的访问地址,然后在再登录到第三方系统后,通过该访问地址可以直接进入到EAS portal中,该方案需要EAS portal和第三方系统都要做一些配置或开发工作,其集成步骤如下: EAS系统需要做的配置工作:
?
EAS 6.0 及sp1版本需要安装补丁PTM037265,EAS 7.0 sp1及以后版本则缺省包含该补丁内容;
?
将服务端server\\profiles\\server(1…n)\\config\\portalConfig目录下的ssoClient.properties文件中的sso.easIsSSOClient参数项的值修改为true;
?
将服务端server\\profiles\\server(1…n)\\config\\portalConfig目录下的
autoLoginConfig.properties文件中的datacenter参数修改为EAS portal要登录的数据中心代码 (即:数据中心编码ID,EAS管理控制台可查看),并设置authPattern参数为BaseTrdLtpaToken,设置好locale语言项(L1=英文 L2=简体 L3=繁体);设置好dbType数据库类型(MS-SQL-SERVER=0 DB2=1 ORACLE=2)。
?
重新启动EAS 服务器;
第三方系统需要做的开发工作:
?
将LTPATokenManager.jar包(该包请联系金蝶的工程师获取)部署到第三方系统中;(注意:此方式只针对于第三方系统基于java语言实现,如果是基于.net 语言实现的系统则无法直接使用Token加密和校验java接口,需要以web service的方式调用Token加密和校验服务)
?
在第三方系统中增加如下代码逻辑:
第20页,总53页