单一用户管理则指所有的用户管理工作都在唯一的地方进行处理,而每个应用程序不再保留自己的用户管理功能。单一用户管理和统一用户管理的最大区别在于,统一用户管理之后,每个应用程序仍然保留自己的用户管理功能,用于额外的属性设置;而单一用户管理时,每个应用程序不再保留自己的用户管理功能。
我们举例来进行说明,最好的例子是“组”。大家都知道,“组”通常包含若干个用户,用以方便地进行一些设置,例如权限设置等等。
在LDAP服务器上可以设置组,但是如果某个应用程序希望使用自己设定的组怎么办?只能让该应用程序保留设定组的功能。那么又带来下面的问题。
如果应用程序中的组GroupA中,例如包含了用户User1和User2。而在LDAP服务器进行统一用户管理时,把用户User1删除了,增加了User3。此时GroupA中包含了一个无效的用户,并且缺少了一个有效的用户。此时怎么办呢?
也没有什么好的办法,只能进行用户的同步。在LDAP中进行用户操作之后,有某种同步的机制,在应用程序中进行相应的修改。
再举一个例子,Zope中的用户,是具有不同的权限的。而LDAP服务器中的用户,则通常没有权限这个属性。那么,如果Zope使用LDAP作为自己的用户源,如何设定用户的属性呢?
目前的解决方法是,在Zope中复制一个LDAP中的用户,然后手工设置用户的权限。此时,由于用户被复制了,因此又带来了同步的问题。
因此,即使实现了统一用户管理,仍然可能需要在应用程序之间,设置大量的用户管理的同步操作(尽管比没有统一用户管理之前简单多了)。这样,实际上没有达到所谓的“单一用户管理”,即在统一的地方进行全部的用户管理操作。
单一用户管理和应用程序的具体处理机制关系很大,因此目前还没有统一的方法进行处理。这需要在设计应用程序,以及设计LDAP服务器时,进行仔细的设计,并有大量的代码改造工作。
2、LDAP和CAS
由于LDAP是单点登录的基础,因此,本章先对LDAP做一个介绍,然后再介绍我们采用的单点登录产品CAS。
2.1LDAP简述
LDAP是英文“Lightweight Directory Access Protocol”的简称,中文翻译为轻量级目录访问协议。它是一种因特网上的访问协议,主要用于从服务器上检索信息。
LDAP服务器用来保存信息,中文有时候也称为目录服务。既然LDAP服务器用于保存信息,那么它和普通的有什么区别呢?
使用“表”来储存数据,可以把一个想象为日常生活中的“表格”。而LDAP用“树”来存储数据,可以把它想象为日常生活中的“电话号码簿页”,或者干脆把LDAP想象为大家常用的文件系统,就是由文件夹和文件组成的那种树形结构。
由于LDAP的结构方式不同,因此LDAP有一个很多特殊的特性,就是查询数据的速度特别快,但是写数据的速度较慢。LDAP的另一个特性就是比较适合于按照层次组织信息,例如企业的组织结构等。
由于LDAP的查询速度比快,因此经常用于诸如地址簿、用户帐号存储、组织结构信息、域名解析系统等需要大量查询的领域。
2.2LDAP的结构
图2是一个很简单的LDAP结构。
首先,我们可以很清楚地看到,LDAP是按照树形目录进行组织的。
假设公司的域名是macromedia.com,则LDAP首先使用域名作为整个树的根,并且用dc=com,dc=macromedia这样的标记来进行标注。dc的意思指“Domain Component”。LDAP中以后会大量使用这些令人费解的缩写。
假设某天macromedia.com这个公司和apple.com这个公司合并,按照LDAP的树形结构,只不过多了一个分叉,而不会导致整棵树需要重新组织,这就是LDAP的好处之一。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29948-3.html
省下的钱足够养得起军队了
腐败绝对使一棵大树颓然倒塌
烊烊棒棒哒你就是我们心中的小王子