Confluence 与Active Directory(LDAP)的集成
1. 按照说明安装Confluence,并创建缺省的管理员帐号admin
2. 下载hibernate_osuser_atlassianUserContext.xml, 并改名为atlassianUserContext.xml,然后覆盖confluence/WEB-INF/classes目录下的同名文件(记得先备份旧文件!).
3. 将confluence/WEB-INF/classes/upgradeSubsystemContext.xml内对osuserMigrationBean部分的注解去掉
4. 重起confluence, 并用admin登录后访问http://host.com/admin/osuser2atluser.jsp (假设你的服务器基础路径为http://host.com/)
5. 点击 Begin migration 按钮
6. 如果顺利的话你会看到:
Migrating users Users migrated successfully!
Migrating propertyset data Propertyset data migrated successfully!
Migrating groups Groups migrated successfully!
7. 停掉confluence, 并把刚才去掉了注解的osuserMigrationBean重新注解起来Migrating propertyset data Propertyset data migrated successfully!
Migrating groups Groups migrated successfully!
8. 下载 ldap_hibernate_cache_atlassianUserContext.xml 文件,并重命名为atlassianUserContext.xml,然后覆盖confluence/WEB-INF/classes目录下的同名文件
下面是最麻烦的部分,就是设置ldap相关的属性
9.在你的active directory里创建一个用来访问目录服务的用户,假设叫wikiuser,密码为123456。你的windows域为abc.com
10. 修改atlassianUserContext.xml内<property name="connectionProperties">部分,使confluence可以访问你的ldap服务:
<property name="connectionProperties">
<props>
<prop key="host">192.168.1.1</prop>
<prop key="port">389</prop>
<prop key="securityPrincipal">wikiuser@abc.com</prop>
<prop key="securityCredential">123456</prop>
<prop key="securityProtocol">plain</prop>
<prop key="securityAuthentication">simple</prop>
<prop key="baseContext">dc=abc,dc=com</prop>
<prop key="initialContextFactory">com.sun.jndi.ldap.LdapCtxFactory</prop>
<prop key="batchSize">100</prop>
<prop key="timeToLive">0</prop>
</props>
</property>
其中绿色字部分是需要你根据你的环境进行修改的部分, 其他部分如果内容和我给出的不一样,则按我这里给出的改。<props>
<prop key="host">192.168.1.1</prop>
<prop key="port">389</prop>
<prop key="securityPrincipal">wikiuser@abc.com</prop>
<prop key="securityCredential">123456</prop>
<prop key="securityProtocol">plain</prop>
<prop key="securityAuthentication">simple</prop>
<prop key="baseContext">dc=abc,dc=com</prop>
<prop key="initialContextFactory">com.sun.jndi.ldap.LdapCtxFactory</prop>
<prop key="batchSize">100</prop>
<prop key="timeToLive">0</prop>
</props>
</property>
11. 修改修改atlassianUserContext.xml内<property name="schemaMappingsProperties">令confluence可以将相关的设置和你的ldap服务关联起来.
<property name="schemaMappingsProperties">
<props>
<prop key="baseUserNamespace">dc=abc,dc=com</prop>
<prop key="baseGroupNamespace">ou=Special Groups,dc=abc,dc=com</prop>
<prop key="usernameAttribute">sAMAccountName</prop>
<prop key="userSearchFilter">(objectClass=user)</prop>
<prop key="firstnameAttribute">givenName</prop>
<prop key="surnameAttribute">sn</prop>
<prop key="emailAttribute">mail</prop>
<prop key="groupnameAttribute">cn</prop>
<prop key="groupSearchFilter">(objectClass=group)</prop>
<prop key="membershipAttribute">member</prop>
<prop key="userSearchAllDepths">true</prop>
<prop key="groupSearchAllDepths">true</prop>
</props>
</property>
<props>
<prop key="baseUserNamespace">dc=abc,dc=com</prop>
<prop key="baseGroupNamespace">ou=Special Groups,dc=abc,dc=com</prop>
<prop key="usernameAttribute">sAMAccountName</prop>
<prop key="userSearchFilter">(objectClass=user)</prop>
<prop key="firstnameAttribute">givenName</prop>
<prop key="surnameAttribute">sn</prop>
<prop key="emailAttribute">mail</prop>
<prop key="groupnameAttribute">cn</prop>
<prop key="groupSearchFilter">(objectClass=group)</prop>
<prop key="membershipAttribute">member</prop>
<prop key="userSearchAllDepths">true</prop>
<prop key="groupSearchAllDepths">true</prop>
</props>
</property>
这里有几个地方需要注意:
a) "baseGroupNamespace"这里,我假设你将所有需要用来管理权限的Group都放在"Special Groups"这个OU下了。一开始的时候你可以先把"ou=Special Groups,"这部分去掉。等搞清楚confluence和ldap的集成原理后再自己根据情况加上去。
b) "usernameAttribute" 如果我使用了"sAMAccountName"这个AD的特殊属性,好处是你在登录的时候可以直接使用abc这样的用户ID来登录,坏处是在confluence的Group manange里无法列出group里的用户。你可以改为使用"cn", 这样的话就可以列出用户,但是登录的时候可能需要使用完整的用户名进行登录,例如"Rayman Zhang"。
12. 保存修改后重新启动confluence. 并用admin登录
13. 去到Administration > Global Permissions页面,在Groups点Edit permission,然后增加你需要允许其使用confluence的Group. 同理修改"Individual Users"
大功告成,你现在可以用ldap里的用户进行登录了!
posted on 2006-04-24 15:20 Rayman Zhang 阅读(7966) 评论(0) 编辑 收藏 举报