文档库 最新最全的文档下载
当前位置:文档库 › BOS V6.2_实施指南_单点登录

BOS V6.2_实施指南_单点登录

BOS V6.2_实施指南_单点登录
BOS V6.2_实施指南_单点登录

BOS实施指南_单点登录

(V6.2版)

目录

1. 单点登录简介 (4)

1.1. 目的 (4)

1.2. 适用对象 (4)

2. 单点登录概况 (5)

2.1. 单点登录 (5)

2.2. 服务组件 (5)

2.3. 应用场景 (5)

2.4. CAS (Central Authentication Service) (5)

3. 客户实现单点登录需求参考步骤 (6)

3.1. 首先进行用户SSO需求调研 (6)

3.2. 确定SSO实现方案 (7)

3.3. 制订SSO实现计划 (7)

3.4. 开发实现SSO (7)

4. 用户认证校验处理器 (7)

4.1. 认证处理器接口:com.kingdee.eas.cp.eip.sso.IEasAuthHandler (7)

4.2. 注册和登记认证处理器接口实现类 (8)

4.3. 参考实现:Microsoft Active Directory认证处理器 (9)

4.4. EAS SSO默认提供的认证处理器 (11)

4.5. EAS 用户认证登录配置文件: login.config (11)

5. 单点登录-域认证方案 (12)

5.1. LDAP连接参数配置文件ldapConfig.properties (12)

6. 单点登录-微软域认证方案 (13)

6.1. 基于Kerberos认证的配置文件:krb5.conf (13)

7. 单点登录- LTPA认证方案 (13)

7.1. LTPA 认证方案 (13)

7.2. 通过DOMINO生成LtpaToken.properties文件 (13)

7.3. ltpaForClient.jar提供LTPA TOKEN校验API (14)

8. 单点登录-CAS集成 (14)

8.1. EAS &-CAS部署流程 (14)

8.1.1. 单点登录用户同步 (14)

8.1.2. 单点登录证书部署 (14)

8.2. 单点登录过滤器部署 (14)

8.3. 单点登录创建EAS上下文 (15)

8.4. SSO单点登录配置文件:ssoClient.properties (15)

8.5. 备注 (16)

9. 单点登录-用户集成 (16)

9.1. 单点登录-用户集成 (16)

9.2. 功能展示 (17)

9.3. EAS 5.1.3 – EAS 5.4.0 参数说明 (18)

9.4. EAS 5.9.0 – EAS 6.1.0参数说明 (20)

10. 单点登录-后台事务 (22)

10.1. 定义用户数据周期同步后台事务步骤: (22)

10.2. 后台事务 (23)

11. 用户映射管理 (24)

11.1. 功能说明 (24)

11.2. 功能展示 (24)

12. Domino 7.0集成 (25)

12.1. 目的 (25)

12.2. 适用对象 (25)

12.3.Domino Web SSO 配置步骤 (25)

12.4.密钥文件生成步骤 (45)

12.5.DOMINO应用集成配置步骤 (48)

13. 单点登录-二次开发 (51)

13.1. 目的 (51)

13.2. 适用对象 (51)

13.3. 二次开发接口说明 (51)

13.4. 重要业务流程实现 (53)

13.5. 代码说明 (54)

13.6. 配置文件 (56)

14. 域相关概念和术语说明 (56)

14.1. 目录 (56)

14.2. 目录服务 (58)

14.3. 专有名称(DN) (59)

14.4. DN 转义规则 (59)

14.5. 增强的DN 处理 (60)

14.6. 后缀(Suffix) (60)

14.7. 参照(Referrals) (61)

14.8. 模式(Schema) (61)

14.9. 对象类(objectClass) (61)

15. 集成ITDS With WebSphere Application Server单点登录配置说明 (63)

15.1. 概述 (63)

15.2. 配置WAS,启用全局安全性和配置单点登录 (64)

15.3. 两个Web应用间的SSO验证 (70)

15.4. 参考资源 (76)

16. FAQ (77)

16.1. 连接信息过多如何配置? (77)

16.2. 测试连接成功,同步用户0条成功? (77)

16.3. 关于单点登录-用户集成EAS 5.9.0 windows 2003 AD域兼容问题 (78)

17. 附录 (78)

17.1. 用户映射表:EAS 用户与外部系统用户映射 (78)

17.2. JAAS (78)

17.3. Kerberos (78)

17.4. LTPA (79)

17.5. login.config展示 (79)

17.6. easAuthPatterns.xml展示 (80)

17.7. userSyncListener.xml 展示 (80)

18. 备注 (81)

18.1. SSO单点登录--关于安全证书 (81)

18.2. SSO单点登录--关于IE提示的安全警告 (81)

18.3. 单点登录二次开发注意事项 (81)

18.4. 单点登录二次开发界面展示注意事项 (81)

18.5. 用户映射管理在EAS 5.2.2版本后作为独立的功能使用。 (81)

18.6. EAS 5.9.0 清除EAS同步数据 (82)

18.7. LTPA (82)

1.1. 目的

本文档对EAS SSO进行概要描述,并对相关配置进行详细说明,为与第三方系统集成提供SSO配置指南;

1.2. 适用对象

本文档适用于:

?EAS单点登录设计和开发人员

?系统实施和集成人员

2.1. 单点登录

单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统

2.2. 服务组件

EAS SSO主要提供以下服务组件:

?用户认证校验处理器

?定义认证接口:

EAS SSO定义的认证接口,可由第三方系统实现,以便扩展用户认证模式,

即:实现该接口,通过调用第三方认证API,进而实现第三方认证;

?EAS默认提供以下处理器:

◆EAS缺省认证处理器(基于EAS USER DataBase和密码策略),即称为

EAS传统认证;

◆MircroSoft Active Directory认证处理器

◆LDAP认证处理器

?用户集中管理

EAS SSO采用用户集中管理,其用户数据存储支持以下类型:

?DataBase,如:MS Sql Server、DB2 、Oracle等主流关系数据库

?Directory Server(支持LDAP的目录服务),如:MS Active Directory、IBM

Directory Server、Lotus Domino等;

?用户认证凭证管理

?提供LTPA TOKEN进行用户凭证传递及校验API

2.3. 应用场景

?J2EE WEB应用系统SSO和安全保护

注:包括DOMINO应用保护,DOMINO支持LTPA TOKEN认证方式、且可直接

使用JA V A编程(但支持的JDK版本较低,Domino5 仅支持JDK1.1)

?其他异构web应用系统保护

目前EAS仅提供Ltpa token Java校验接口(API),对于异构系统,需要自己实现校验机制(或调用JA V A API);

2.4. CAS (Central Authentication Service)

CAS 是以 Filter 方式保护 Web 应用的受保护资源。

过滤器过滤从客户端过来的每一个 Web 请求,同时, CAS Client 会分析 HTTP 请求中是否包请求 Ticket( 下图中的凭证)。

如果没有,则说明该用户是没有经过认证的,于是, Filter 会重定向用户请求到认证服务。

用户认证成功后,认证服务会产生一个随机的 Ticket ,然后,缓存该 Ticket并且重定向用户到访问应用。

部署应用与认证服务间完成了一个对用户的身份核实,通过ticket。

实现客户SSO需求的主要步骤有:

3.1. 首先进行用户SSO需求调研

2、基准用户数据库希望用什么(是

某个业务系统用户库,还是新用户库)

3.2. 确定SSO实现方案

?首先确定基准用户库及用户管理工具

?然后制订各系统与基准用户库的映射和同步策略

?最后确定SSO实现方案

3.3. 制订SSO实现计划

因各业务系统的运行环境可能差异比较大,可能是异构平台,用户的统一和同步映射处理

也需要时间,已有系统也在线使用中,因此,需要制订好详细的实现计划,以规避和降低风险;

3.4. 开发实现SSO

根据各业务系统实际情况,进行相应接口的开发(包括用户同步/映射)

部署SSO实现并在测试环境进行测试。

4.1. 认证处理器接口:com.kingdee.eas.cp.eip.sso.IEasAuthHandler

/**

* EAS SSO认证处理器接口

*/

public interface IEasAuthHandler {

/**

* 获取外部系统所映射的EAS USER名称

* @param ctx

* @param externalUserNumber

* @return map to Eas UserNumber

*/

public String getEasUserNumber(Context ctx, String externalUserNumber)

throws BOSLoginException;

/**

* 是否进行EAS 缺省用户密码校验方式(多重叠加认证)

* @return

*/

public boolean isV erifyEasUserPwd();

/**

* 用户认证校验接口

* @param userCtxCallback

* @param userNumber

* @param password

* @return

* @throws BOSLoginException

*/

public boolean authenticate(UserContextCallback userCtxCallback, String userNumber, String password) throws BOSLoginException;

}

接口说明:

1.public String getEasUserNumber(Context ctx, String externalUserNumber)

为外部系统用户转换为EAS 用户的接口,如:AD用户名转为EAS用户名

2.public boolean isV erifyEasUserPwd()

此接口定义是否需要进行EAS传统用户认证

3.public boolean authenticate(UserContextCallback userCtxCallback, String

userNumber, String password)

此接口为用户认证校验证接口,若用户认证通过,则返回true,若不通过则返

回false

4.2. 注册和登记认证处理器接口实现类

可通过配置认证模式文件来进行认证处理器实现类的注册和登记,配置文件存放地址为:

%EAS_HOME%\Server\server\deploy\portalConfig\easAuthPatterns.xml

此xml 格式请参见附录

其中:

?authPattern

表示某种认证模式,包括:name(请使用项英文字母命名,且需在整个文档中唯一命名)、authHandler(为认证处理器全限定类名,如:com.kingdee.eas.cp.eip.sso.EasDefaultAuthHandler)

如:EAS传统认证模式(BaseDB)

BaseDB

BaseDB

com.kingdee.eas.cp.eip.sso.EasDefaultAuthHandler

Base Eas user table authentication,is Eas default Authentication

?scope

表示EAS认证模式作用域,scope 仅能取以下值:

1.application

若为application,则EAS系统统一采用一种认证模式,即由default元素指定的认证模式。

2.session

若为session,则EAS系统允许用户根据工作场所,选择自己的登录认证模式,

如:外网可使用EAS传统认证、内网则使用AD认证(即域用户认证)如:

session

说明:

EAS用户可选择自己的登录方式

注意:

EAS Portal标准产品的登录窗口未提供认证模式选择项,即此方式是为了与第

三方系统集成预留的,以便可通过URL参数authPattern或进行登录页个性化

开发来指定用户登录认证模式。

如:以下URL为指定AD域用户自动登录

http://portalServer:port/easportal/autoLogin.jsp?authPattern=BaseADWithAutoL

ogin

?default

此值表明EAS系统将使用哪一种缺省认证模式,该值为配置文件中已定义认证模

式的name值,

如:设置为EAS传统认证模式

BaseDB

4.3. 参考实现:Microsoft Active Directory认证处理器

public class ActiveDirAuthHandler extends AbstractEasAuthHandler {

private static Logger logger =

Logger.getLogger(ActiveDirAuthHandler.class.getName());

public boolean authenticate(UserContextCallback userCtxCallback,

String userNumber, String password) throws BOSLoginException {

boolean result = false ;

LoginContext lc = null ;

try

{

/* Set up the Callback handler, and initialise the userid and password fields */

UserPwdCallbackHandler ch = new UserPwdCallbackHandler();

ch.setUserId(userNumber);

ch.setPasswords(password);

/* Initialise the login context - LoginModule configured in cas_jaas.conf and */

/* set to use Krb5LoginModule. */

//实际用户认证交由com.sun.security.auth.module.Krb5LoginModule 处理

lc = new LoginContext(ActiveDirAuthHandler.class.getName(), ch);

/* Perform the authentication */

lc.login();

result = true ;

}

catch (LoginException le)

{

}

return result;

}

}

说明:

以上认证处理器采用了JAAS和Krb5LoginModule,需要在EAS 登录配置文件

login.config增加以下配置:

com.kingdee.eas.cp.eip.sso.ad.ActiveDirAuthHandler

{

com.sun.security.auth.module.Krb5LoginModule required client=TRUE debug=true useTicketCache=FALSE;

};

4.4. EAS SSO默认提供的认证处理器

4.5. EAS 用户认证登录配置文件: login.config

EAS 用户认证采用了标准的JAAS(参见附录),用户认证LoginModule可很方便的插拨或堆叠,其配置是通过login.config来实现的,Login.config文件配置了EAS 默认使用的LoginModule,通常情况下,该配置文件无须更改:

此文件所在目录:%EAS_HOME%\Server\server\deploy\login.config

其配置如下:

eas {

com.kingdee.eas.cp.eip.sso.EasMultiAuthLoginModule required debug=true;

};

com.kingdee.eas.cp.eip.sso.web.auth.EASAuthHandler {

com.kingdee.eas.cp.eip.sso.EasMultiAuthLoginModule required debug=true;

};

com.kingdee.eas.cp.eip.sso.ad.ActiveDirAuthHandler

{

com.sun.security.auth.module.Krb5LoginModule required client=TRUE debug=true useTicketCache=FALSE;

};

说明:

?eas 为EAS GUI 登录时所用LoginModule

?com.kingdee.eas.cp.eip.sso.web.auth.EASAuthHandler 为Eas portal登录时所用

LoginModule(注:实际上与eas的配置内容是相同的)

?com.kingdee.eas.cp.eip.sso.ad.ActiveDirAuthHandler 则用于与MicroSoft 活动目录

AD集成,即在AD认证模式(BaseAD 或BaseADWithAutoLogin)下,此配置才起

作用;

5.1. LDAP连接参数配置文件ldapConfig.properties

此配置文件用于BaseLDAP认证模式,是用于建立目录服务认证及连接的配置文件。

此文件所在目录:%EAS_HOME%\Server\server\deploy\portalConfg\ldapConfig.properties

此配置文件格式相见附录

相关连接参数说明如下:

#ldap连接默认工厂类,通常为以下值

contextFactory=com.sun.jndi.ldap.LdapCtxFactory

#ldap连接认证模式,通常为simple

authentication=simple

#目录服务器地址

ldapHost=192.168.18.189

#ldap协议端口,缺省389

ldapPort=389

6.1. 基于Kerberos认证的配置文件:krb5.conf

此配置文件用于BaseAD 或BaseADWithAutoLogin认证模式,MicroSoft 活动目录通常使用kerberos协议来进行安全认证(当然AD也支持LDAP协议,因此,也可通过BaseLDAP方式进行认证,Kerberos有关内容请参见附录)。

该配置文件存放路径:%EAS_HOME%\Server\server\deploy\portalConfg\krb5.conf

相关配置参数说明如下:

[libdefaults]

default_realm = KDSV

[realms]

KDSV = {

kdc = 192.168.16.2

}

[domain_realm]

.kdsv = KDSV

其中:

?KDSV 通常为域控制全限定域名(如:https://www.wendangku.net/doc/d618901709.html,),请依据实际环境调整

?kdc 为AD服务器IP地址,如:192.168.16.2

?kerberos认证模式,还需检查login.config配置,增加krberos loginModule配置

7.1. LTPA 认证方案

LTPA:轻量级第三方认证(Lightweight Third Party Authentication),IBM的产品广泛采用的认证方案。LTPA机制运用一个LTPA令牌(TOKEN),这个令牌包含了用户信息、网络域和要求用户重新认证的令牌终结时间。Domino服务器作必要配置即可支持LTPA TOKEN 认证方式。

7.2. 通过DOMINO生成LtpaToken.properties文件

ltpaForDomino5.jar 提供LtpaToken.properties生成工具,命令格式如下:

java -classpath %DOMINO_HOME%\Data\domino\java\ncso.jar;.\ com.kingdee.eas.cp.eip.sso.client.domino.LtpaTokenSetup dominoServer:port user password

运行后将在%DOMINO_HOME%\Data目录生成LtpaToken.properties文件,此文件需要部署到EAS PORTAL服务器和第三方应用系统;

7.3. ltpaForClient.jar提供LTPA TOKEN校验API

ltpaForClient.jar提供LTPA Token校验API:

1.LtpaToken有效性校验:

com.kingdee.eas.cp.eip.sso.ltpa. LtpaTokenManager

//装载LtpaToken.properties

//参数configFile 为LtpaToken.properties文件地址(包括路径和文件名)

public static void loadConfig(String configFile);

//校验LTPA TOKEN是否合法有效

public static boolean isV alid(String ltpaToken);

注意:

第三方系统调用LtpaTokenManager.isV alid(ltpaToken)校验前需要先装载LtpaToken.properties;

2.获取username接口

com.kingdee.eas.cp.eip.sso.ltpa.LtpaToken

//传入ltpaToken字符串,构造ltpaToken对象

public LtpaToken(String ltpaToken)

//获取ltpaToken加密串中的username

public String getUsername();

8.1. EAS &-CAS部署流程

8.1.1. 单点登录用户同步

单点登录用户同步屏蔽EAS与各个系统间用户信息差异问题。使得用户在进行各个系统间单点登录时,避免因用户信息问题造成单点登录失败或系统权限差异的问题。

8.1.2. 单点登录证书部署

增加数字证书身份认证,用户在多应用系统之间切换,无须重复校验身份,真正实现了“一次登录,到处漫游”,是一种安全实用,简单方便的单点登录实现方法。

根据客户现场使用不同的服务器进行部署,每种服务器部署方式区别较大,这里不进行详细描述。

8.2. 单点登录过滤器部署

cp_web应用案例:

Web.xml

CAS Authentication Filter

org.springframework.web.filter.DelegatingFilterProxy

targetBeanName

casAuthenticationFilter

CAS V alidation Filter

org.springframework.web.filter.DelegatingFilterProxy

targetBeanName

casV alidationFilter

8.3. 单点登录创建EAS上下文

单点登录在验证成功后,转向进入应用,由于每个应用存在不同的上下文,需要各个应用独立创建。

8.4. SSO单点登录配置文件:ssoClient.properties

此配置文件用于SSO单点登录模式。

该配置文件存放路径:%EAS_HOME%\Server\server\deploy\portalConfg\ ssoClient.properties

相关配置参数说明如下:

cas.server.gateway=false

cas.server.renew=false

认证服务器URL(如:协议为https)

cas.server.url=https://192.168.18.225:6889/eassso/

#无用参数也不要注释,避免加载解析时失败

#cas.server.proxyCallbackUrl=https://localhost:8443/manager/proxy/Receptor

cas.server.proxyCallbackUrl=

受保护客户端地址(其格式:―hostIP:port‖)

cas.client.serverName=192.168.18.225:6888

#cas.client.proxyCallbackUrl=https://localhost:8443/myClientApp/casProxyReceptor

cas.client.proxyCallbackUrl=

#扩展部分

#sso client service的URL是否动态取自客户端请求URL,包括端口

sso.client.serverNameByRequestMap=true

#sso client 和server是否相同主机地址,

#若为true,且sso.client.serverNameByRequestMap=true,则host将动态取自客户端请求URL(但保留静态配置参数的端口和URI)

sso.server.loginUrlByRequestMap=true

#以上参数可供第三方SSO CLIENT使用,属性文件部署在第三方WAR WEB-INF/中;

#以下参数为EAS PORTAL专用,属性文件部署在portalConfig/下;

#EAS PORTAL 是否为sso client,若为sso client,缺省页index.jsp前转到ssoWelcome.jsp,注销时logout.jsp重定向到ssoWelcome.jsp

#若非client,则保留原有的登录机制

sso.easIsSSOClient=false

//SSO入口地址,相对路径

sso.client.loginUrl=/ssoWelcome

//SSO认证通过后转向的应用主页(同一个应用SERVER/同一个JVM下,只能有一个),相对路径

sso.client.redirectTo=/index_sso.jsp

8.5. 备注

关于用户数据导入,注意用户数据来源为用户全集。

关于过滤器,可与单点登录提供商沟通,取得转向和验证过滤器或指导现场人员进行开发。

关于EAS上下文建立,目前上下文创建依赖与EAS认证模块,独立创建不属于标准产品,如有需要可提单进行处理,后续对于EAS系统升级要予以注意避免个性化内容被覆盖。

9.1. 单点登录-用户集成

单点登录-用户集成,主要解决各个系统间,用户信息差异问题。使得用户在进行各个系统间单点登录时,达到单点登录效果,避免因用户信息问题造成单点登录失败或系统权限差异的问题。

9.2. 功能展示

9.3. EAS 5.1.3 – EAS 5.4.0 参数说明

?用户数据源:同步配置项唯一标识

?资源项连接地址:ldap服务器地址(格式:ldap://192.168.16.2:389/)

?资源项登录用户名:域中任意用户用户名(不能是查询受限用户如:ad的administrator)?集成清单-编码:分录唯一标识

?集成清单-用户名:EAS系统用户(将以此用户为用户数据的创建者,即所同步用户数

据将以此用户的CU为默认CU)

?集成清单-密码:同步用户的预设密码

?集成清单-用户名后缀:当同步的用户和EAS系统用户出现重名的时使用同步用户加

用户后缀名录入EAS用户中

?集成清单-Basedn:cn=users(域服务器的用户根目录),DC为域根

?集成清单-数据过滤条件:查找的为person人员和user用户

?集成清单-目录搜索范围:LDAP目录搜索范围Base、OneLevel、Subtree三种一般默

认为2

?BASE表示只查找本条目数据(即baseDN,值为0),oneLevel表示只查找baseDN的

子条目(值为1),Subtree则表示查找包括baseDN在内所有子树数据(值为2),另外,设置该值时,建议显示和实际存储转换一下,即显示Base/oneLevel/subtree,实际保存为0/1/2,以保持LDAP通常习惯。

?集成清单-目的用户表的用户名:ldap服务器的用户帐号title (用户帐号);集成清单-目的

用户表的用户姓名:ldap用户的显示名称title(用户实名);集成清单-搜索返回属性值:需要返回的属性字段

?集成清单-Ldap源提供的信息类型为简体or繁体

9.4. EAS 5.9.0 – EAS 6.1.0参数说明

新增功能点:

?获取BaseDN:获得域中的namingContext。

?baseDN:不在支持手工输入,采用左树右表选取方式。

?域:采用树形结构展示,并支持树搜索。

?同步实现类:EAS默认提供两种,并可根据需要个性化实现加入。

?引入/引出:采用xml数据格式导出数据。

10.1. 外部页面处理

首先在外部系统采用LtpaTokenManager在外部系统的jsp中生成token,采用如下方法:

请将eas\server\profiles\server1\config\portalConfig\LtpaToken.properties文件拷贝到ibm的portal任意路径下,然后在调用LtpaTokenManager生成token的时候,传入这个文件的地址。public static LtpaToken generate(String canonicalUser,String configFile),第二个参数既是该文件的地址。

10.2. 内部处理

在eas内部采用(目录4用户认证校验处理器)方式,进行token的校验。

相关文档
相关文档 最新文档