单点登录sso的解决方案(一)IFRAME或超连接方式

在门户项目中,经常会遇到如何实现单点登录sso的问题,而单点登录sso的解决方案又有很多,如果项目对SSO的要求比较低,又不想对要被集成的系统做任何改动,那么这篇文章你可以帮到你。我们通过一个例子来说明,假如一个门户项目要对下面的几个系统做SSO:

用户在这些系统中的用户名,密码各不相同,如:员工号为001的员工在这些系统中的用户名,密码分别如下:

用户系统用户名密码
001Portal系统A1234
001邮件系统B2345
001DOMINO系统CAAAA
001报销系统DCCCC
001工资系统EBBBB

首先,建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系

首先,要建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系并保存。可保存在表中或LDAP中或文件系统中。当然要考虑这些系统之间的数据同步问题。比较好的方式是找到用户在这些系统中的都存在的唯一信息(如员工号,MAIL地址,姓名等)。通过唯一信息实时到各个系统中去取认证所需要的信息。就不需要考虑数据同步问题。比较实用。可以建立类似下面的表:密码可采用加密保存。如果是采用BEA的Weblogic Portal,可采用UUP来保存这些信息。

(

user

varchar2(20),

/*用户名*/

app_name varchar2(20),

/*应用系统*/

architect varchar2(4),

/*应用系统的架构BS或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 varchar2(20)

/*其他*/ );

实现单点登录sso的解决方案之一:通过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认证。

这两种方式如果SSO成功,就自动进入目标系统的界面,如果实现会显示目标系统的登录界面。其效果图如下:

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

以上这种实现方式,一般需要浏览器支持COOKIE,所以要注意浏览器的配置,在开发阶段,为方便调试,可设置IE,让它显示COOKIE的名称。如下所示:

采用这种方式,对要集成的系统不需要做任何的改动。如果PORTAL系统中的用户在被集成的系统中的权限都一样,可采用建立一个通用用户的做法。也就是所有在PORTAL系统中的用户都采用这个通用用户进入目标系统。这种方式等于是采用页面集成方式做集成。比较方便使用。另外,有时候需要采用调用API,或配置Adapter等应用集成方式来集成其他系统,一般也是通过定义一个连接专用的用户。在API中或在配置Adapter的时候写死。如采用JAVA API方式集成DOMINO:

lotus.domino.Session dominoSession = NotesFactory.createSession(dominoServer, “admin”, “password”);

好了,单点登录sso的解决方案(一)IFRAME或超连接方式就讲到这里了,下一篇会讲到CS结构实现方式,要多关注哦!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值