北京选择软件科技有限公司 技术文档 版权所有,按 GPL 规则发布
如果用户此时希望进入其他 Web 应用程序,则安装在这些应用程序中的单点登录
客户端,首先仍然会重定向到 CAS 服务器。不过此时 CAS 服务器不再要求用户
输入用户名和密码,而是首先自动寻找 Cookie,根据 Cookie 中保存的信息,进行
登录。登录之后,CAS 重定向回到用户的应用程序。
这样,就不再需要用户继续输入用户名和密码,从而实现了单点登录。
注意,这种单点登录体系中,并没有通过 http 进行密码的传递(但是有用户名的传
递),因此是十分安全的。
1.3 单点登录、统一用户和单一用户管理
很多人谈论单点登录时,常常和统一用户,以及单一用户管理混淆了,要么误认为单
点登录自然实现了单一用户管理;要么误认为统一用户或者单一用户管理就是单点登录。
实际上,这三个概念是有明确的区别的。
统一用户就是指不同的系统,使用同一套用户处理的机制。
用户 ID 全局惟一,用户登录名,密码全局唯一,并且统一存储在单一系统中。
用户的一些属性,如姓名、电话、地址、邮件等,统一存储在单一系统中。尽管
各应用系统还可以自行增加一些属性,但是基本的属性应该统一存储和管理。
应用系统不应该直接对用户信息的进行增加、修改和删除,但是可以进行查询。
对用户信息的增加、修改和删除,应该由专门的系统进行统一的管理。
目前比较标准的做法,是使用 LDAP 服务器,对用户信息进行统一管理。
很显然,统一用户是单点登录的基础,但是统一用户并不意味着实现了单点登录。
例如,如果我们在 LDAP 服务器中实现了用户的统一管理。然后我们可以设置应用程
序 A 和 B 都使用 LDAP 进行用户认证。虽然此时 A 和 B 用以认证的用户,其用户名和密码
都是一样的(都是从 LDAP 服务器中读出的),但是对应用 A 进行了登录之后,应用 B 还
需要再次输入用户名和密码。因此,统一用户并不意味着单点登录。
在图 1 中可以很清楚地看到,用于统一用户管理的 LDAP 服务器,只是单点登录系统
中的一个部分,主要用于认证。
单一用户管理则指所有的用户管理工作都在唯一的地方进行处理,而每个应用程序不
再保留自己的用户管理功能。单一用户管理和统一用户管理的最大区别在于,统一用户管
理之后,每个应用程序仍然保留自己的用户管理功能,用于额外的属性设置;而单一用户
管理时,每个应用程序不再保留自己的用户管理功能。
我们举例来进行说明,最好的例子是“组”。大家都知道,“组”通常包含若干个用户,用
以方便地进行一些设置,例如权限设置等等。
在 LDAP 服务器上可以设置组,但是如果某个应用程序希望使用自己设定的组怎么办?
只能让该应用程序保留设定组的功能。那么又带来下面的问题。
如果应用程序中的组 GroupA 中,例如包含了用户 User1 和 User2。而在 LDAP 服务器
进行统一用户管理时,把用户 User1 删除了,增加了 User3。此时 GroupA 中包含了一个无
效的用户,并且缺少了一个有效的用户。此时怎么办呢?
第 4 页
评论0
最新资源