sakai integration with LDAP

本文介绍如何将Sakai与LDAP进行整合,包括安装OpenLDAP、配置slapd.conf及jldap-beans.xml等关键步骤。通过整合,实现用户信息的统一管理和认证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sakai和LDAP的整合

现在需要LDAP来统一管理和认证用户的信息,所以需要sakai与ldap密切整合。我们选用的ldap版本是openLDAP。

可以直接下载windows 版的安装程序,默认安装就好,有些版本会自动地把Berkeyle DB 也安装好。我安装版本是openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe,也就自动安装好了Berkeyle DB。最主要的工作是配置slapd.conf。配置好后,运行slapd -d 256即可察看是否成功。256是记录日志的等级(0 - 256),具体的说明可以参看官方网站。我选用的provider是Alternative JLDAP Providers,可以从sakai网站下载整个project,然后替换掉以前的providers即可。

slapd.conf需要根据sakai的需要做配置。主要配置如下所示:

slapd.conf片断

suffix "dc=nldap,dc=com"

rootdn "cn=manager,dc=nldap,dc=com"

rootpw {MD5}lUbTrx0LmzDXkyabcdeOA==

index cn,sn,uid,mail,displayName eq

access to attrs=userPassword

by self write

by anonymous auth

by dn.base="cn=manager,dc=nldap,dc=com" write

by * none

access to *

by self write

by dn.base="cn=manager,dc=nldap,dc=com" write

by * read



sakai-src\providers\component\src\webapp\WEB-INF\jldap-beans.xml片断

<bean id="org.sakaiproject.user.api.UserDirectoryProvider"

class="edu.amc.sakai.user.JLDAPDirectoryProvider" init-method="init" destroy-method="destroy" singleton="true">

<property name="ldapHost">

<value>127.0.0.1</value>

</property>

<property name="ldapPort">

<value>389</value>

</property>

<property name="ldapUser">

<value>cn=manager,dc=nldap,dc=com</value>

</property>

<property name="ldapPassword">

<value>mypassword</value>

</property>

<property name="basePath">

<value>cn=manager,dc=nldap,dc=com</value>

</property>

<property name="caseSensitiveCacheKeys">

<value>false</value>

</property>

<property name="updateUserAfterAuthentication">

<value>true</value>

</property>

<property name="ldapAttributeMapper">

<ref bean="edu.amc.sakai.user.LdapAttributeMapper" />

</property>

</bean>

<bean id="edu.amc.sakai.user.LdapAttributeMapper class="edu.amc.sakai.user.SimpleLdapAttributeMapper"

init-method="init" singleton="true">

<property name="attributeMappings">

<map>

<entry key="login"><value>cn</value></entry>

<entry key="firstName"><value>givenName</value></entry>

<entry key="lastName"><value>sn</value></entry>

<entry key="email"><value>mail</value></entry>

<entry key="groupMembership"><value>displayName</value></entry>

</map>

</property>

<property name="userTypeMapper">

<ref bean="edu.amc.sakai.user.EmptyStringUserTypeMapper" />

</property>

</bean>



sakai.properties片断

ldapHost@org.sakaiproject.user.api.UserDirectoryProvider=127.0.0.1

ldapPort@org.sakaiproject.user.api.UserDirectoryProvider=389

basePath@org.sakaiproject.user.api.UserDirectoryProvider=dc=nldap,dc=com

ldapUser@org.sakaiproject.user.api.UserDirectoryProvider=cn=manager,dc=nldap,dc=com

ldapPassword@org.sakaiproject.user.api.UserDirectoryProvider=sakai

log.config.count=1

log.config.1=DEBUG.edu.amc.sakai.user.JLDAPDirectoryProvider



载入entry

命令是ldapadd -f sldap.conf -l user.ldif

user.ldif文件主要部分

dn: dc=nldap,dc=com

objectclass: top

objectclass: dcObject

objectclass: organization

o: nldap

dc: nldap

dn: cn=manager,dc=nldap,dc=com

objectclass: organizationalRole

cn: manager

dn: uid=wangqian,dc=nldap,dc=com

uid: wangqian

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

mail: wangqian@sina.com

userPassword: test

givenName: Qian

displayName: student

sn: Qian

cn: wangqian



注意到前面的sladp.conf中的index行,可以发现为了查询entry需要把属性列在index中。然后可以用命令

ldapsearch -h localhost -p 389 -b "dc=nldap,dc=com" cn=wangqian即可。如果不能工作,说明配置有误,需要检查更改。

然后再在sakai-src\providers下smaven sakai 即可。

与登录时用户名对应的属性(attribute)是cn,登录密码对应的是userPassword。其次,sakai用户的Last Name, First Name和email依次对应的ldap entry的attribute分布是sn, givename和mail(这些对应信息可以在jldap-beans.xml做相应修改)。用户类型默认的是student。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值