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重新注解起来
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" >[email protected] </ 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 >

这里有几个地方需要注意:
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里的用户进行登录了!

你可能感兴趣的:(Directory)