Liferay4.1的一个提升就是支持多种LDAP Server。其中就包括ApacheDS,今天尝试了一下确实非常简单。
LDAP(Lightweight Directory Access Protocol)轻量目录访问协议:LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。
信息模型:条目(Entry)-属性-属性值。每个条目必须属于某个或多个对象类(ObjectClass),每个ObjectClass由多个属性类型组成,每个属性类型有所对应的语法和匹配规则。
命名模型:在LDAP中,每个条目均有自己的DN和RND。DN是该条目在整个树中的唯一名称标识。RND是条目在父节点下的唯一名称标识。例如DN:uid=admin,ou=system
功能模型:在LDAP中共有四类10种操作:查询类操作,如搜索、比较;更新类操作,如添加条目、删除条目、修改条目、修改条目名;认证类操作,如绑定、解绑定;其它操作,如放弃和扩展操作。除了扩展操作,另外9种是LDAP的标准操作;扩展操作是LDAP中为了增加新的功能,提供的一种标准的扩展框架,当前已经成为LDAP标准的扩展操作,有修改密码和StartTLS扩展,在新的RFC标准和草案中正在增加一些新的扩展操作,不同的LDAP厂商也均定义了自己的扩展操作。
安全模型:包括身份认证、安全通道和访问控制。1、身份认证,包括三种认证机制(匿名、基本认证、SASL)2、通讯安全,在LDAP中提供了基于SSL/TLS的通讯安全保障。3、访问控制,基于访问控制策略语句来实现访问控制的整个目录、目录子树等。
常用的名词:
dc:域组件
ou:组织单位
cn:公用名
dn:具有区别名
uid:用户ID
ApacheDS:Apache组织开发的纯Java的LDAP Server。下载安装简单,然后安装一个JXplorer就可以图形化对LDAP进行一些操作了。ApacheDS的配置文件在conf下面的server.xml文件中。里面包括端口等信息。JXplorer登录如下图:
Liferay LDAP配置:在portal.properties的文件进行配置。
auth.impl.ldap.enabled=true
auth.impl.ldap.required=true
auth.impl.ldap.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
auth.impl.ldap.provider.url=ldap://localhost:10389/dc=example,dc=com
auth.impl.ldap.security.principal=uid=admin,ou=system
auth.impl.ldap.security.credentials=secret
将Ldap设置为true,然后将url进行设置,再将Liferay用户的信息和LDAP中属性的信息映射就OK了。