SSO各产品单点登录的简单实现.docx

上传人:牧羊曲112 文档编号:3166211 上传时间:2023-03-11 格式:DOCX 页数:5 大小:38.99KB
返回 下载 相关 举报
SSO各产品单点登录的简单实现.docx_第1页
第1页 / 共5页
SSO各产品单点登录的简单实现.docx_第2页
第2页 / 共5页
SSO各产品单点登录的简单实现.docx_第3页
第3页 / 共5页
SSO各产品单点登录的简单实现.docx_第4页
第4页 / 共5页
SSO各产品单点登录的简单实现.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《SSO各产品单点登录的简单实现.docx》由会员分享,可在线阅读,更多相关《SSO各产品单点登录的简单实现.docx(5页珍藏版)》请在三一办公上搜索。

1、SSO各产品单点登录的简单实现 SSO各产品单点登录的简单实现 在门户项目中,经常会遇见怎么实现单点登录的问题,下面就本人的经验做个总结。欢迎大家进行补充讨论。 单点登录的具体实现有非常多种选择 包括: 1. 采用专门的SSO商业软件: 主要有:Netgrity的Siteminder,已被CA收购。Novell 公司的iChain。RSA公司的ClearTrust等。 2. 采用门户产品供给商自己的SSO产品,如:BEA的WLES,IBM 的Tivoli Access Manager,Sun 公司的identity Server,Oracle公司的OID等。 3. 这些商业软件一般适用于客户对

2、SSO的需求非常高,并且企业内部采用COTS软件如:Domino,SAP,Sieble的系统比较多的情况下采用。并结合身份管理。统一认证等项目采用。采用这些软件一般都要对要集成的系统做些改造,如在要集成的系统上安装AGENT。目前一般只提供常见软件如:Domino,SAP,Sieble,常见应用服务器:weblogic,websphere等的AGENT。要先统一这些系统的认证。一般采用LDAP或数据库。然后才能实现SSO。比较麻烦。 4. 另外,如果不想掏银子,也有OPEN SOURCE的SSO软件可选:主要有:http:/www.josso.org/ http:/www.sourceid.o

3、rg 等。具体怎么样就不清晰了。 如果项目对SSO的需求比较低,又不想对要被集成的系统做所有改动,可采用下面介绍的方式简单实现:下面我们通过一个例子来说明。如果一个门户项目要对下面的几个系统做SSO。 用户在这些系统中的用户名,密码各不相同,如:员工号为001的员工在这些系统中的用户名,密码分别如下: 用户 系统 用户名 密码 001 001 001 001 001 Portal系统 邮件系统 DOMINO系统 报销系统 工资系统 A B C D E 1234 2345 AAAA CCCC BBBB 首先,建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系 首先,要建立员工

4、在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系并保存。可保存在表中或LDAP中或文件系统中。当然要考虑这些系统之间的数据同步问题。比较好的方式是找到用户在这些系统中的都存在的唯一信息。通过唯一信息实时到各个系统中去取认证所需要的信息。就不必考虑数据同步问题。比较实用。能建立类似下面的表:密码可采用加密保存。如果是采用BEA的Weblogic Portal,可采用UUP来保存这些信息。 ( ); user varchar2(20), /*用户名*/ app_name varchar2(20), /*应用系统*/ architect varchar2(4), /*应用系统的架构BS

5、或CS*/ app_company varchar2(50), /*用户所属分公司*/ app_department varchar2(50), /*用户所在的部门*/ app_user varchar2(15), /*在该系统中的用户名*/ app_passwd varchar2(15), /*在该系统中的密码*/ app_cookie varchar2(30), /*COOKIE名称*/ form_user varchar2(20), /*认证页面中FORM的用户名字段*/ form_passwd varchar2(20), /*认证页面中FORM的密码字段*/ app_special v

6、archar2(20) /*其他*/ 通过IFRAME或超连接方式集成目标系统,并进行SSO 通过IFRAME或超连接方式集成目标系统,并在URL中带上用户名和密码。如集成DOMINO可采用如下方式: 或: Href src=“http:/ host1/names.nsf?Login&Username=admin&Password=pass&RedirectTo=/names.nsf” 以上采用的是在HTTP中直接传递明码,为提高安全性,可采用HTTPS来传递用户名和密码。另外采用这种方式被集成的系统必须支持FORM方式认证。J2EE应用,DOMINO等都支持FORM认证。 这两种方式如果SS

7、O成功,就自动进入目标系统的界面,如果实现会显示目标系统的登录界面。其效果图如下: 这种方式,必须维护对应关系表,如上面的sso_info。更好的方式是提供界面,让最终用户自己维护这种对应关系,可模仿Compoze portlets for lotus的做法,在用户第一次进入要和之做SSO的系统时,如DOMINO系统,显示一个界面,让用户自己输入他在该系统中的用户名/密码等信息。并保存到表中或LDAP等其他数据源中。以后用户要进入这些系统时,就直接从表中或其他数据源中取用户的用户名/密码等信息,帮助用户做认证。建议采用这种方式。如下图所示。如果用户改动了自己在DOMINO系统中的用户名,密码。

8、从门户系统进入DOMINO系统时,认证会失败,就重新显示类似下面的界面。让用户重新输入他在DOMINO系统中新的用户名,密码并保存。 以上这种实现方式,一般需要浏览器支持COOKIE,所以要注意浏览器的设置,在研发阶段,为方便调试,可设置IE,让他显示COOKIE的名称。如下所示: 采用这种方式,对要集成的系统不必做所有的改动。如果PORTAL系统中的用户在被集成的系统中的权限都相同,可采用建立一个通用用户的做法。也就是所有在PORTAL系统中的用户都采用这个通用用户进入目标系统。这种方式等于是采用页面集成方式做集成。比较方便使用。另外,有时候需要采用调用API,或设置Adapter等应用集成

9、方式来集成其他系统,一般也是通过定义一个连接专用的用户。在API中或在设置Adapter的时候写死。如采用JAVA API方式集成DOMINO: lotus.domino.Session dominoSession = NotesFactory.createSession(dominoServer, “admin”, “password”); CS结构实现方式 经常有人问CS结构的应用怎么实现SSO,本人的建议是对这种系统不要自己去实现SSO。非常麻烦,其实输个用户名,密码没什么大不了的。如果要实现,一是采用商业软件。另外也能采用以下方式:在PORTAL的PORTLET上建立超连接。并通过APPLET方式启动CS结构的应用系统的登录界面。然后通过如下的方式把用户名/密码传递过去。 -不能做所有改动的客户端 - WIN消息,模拟键盘 -能做改动的客户端 - 参数传递,并让登录的EXE文件读取参数进行认证。 因为要让APPLET执行本地的EXE文件,所以必须对IE中的JRE的安全进行设置。 其他: 在采用以上方式实现了SSO后,要注意LOGOUT,可采用和LOGIN相同的方式。也能通过被集成系统的超时设置来实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号