The LDAP server connection is specified by manually editing the file atlassian-user.xml. Confluence 2.3 onwards supports multiple LDAP servers by repeating the instructions below for each server so that there are multiple repositories defined.
.../confluence/WEB-INF/classes/atlassian-user.xml and configure the connection for either AD or LDAP.
<ldap key="ldapRepository" name="LDAP Repository@hecate.atlassian.com" cache="true">
<host>hecate.atlassian.com</host>
<port>389</port>
<securityPrincipal>cn=admin,dc=atlassian,dc=private</securityPrincipal>
<securityCredential>secret</securityCredential>
<securityProtocol>plain</securityProtocol>
<securityAuthentication>simple</securityAuthentication>
<baseContext>dc=atlassian,dc=private</baseContext>
....
|
atlassian-user.xml for either AD or LDAP.
...
<baseUserNamespace>dc=staff,dc=perftest,dc=atlassian,dc=private</baseUserNamespace>
<baseGroupNamespace>dc=groups,dc=perftest,dc=atlassian,dc=private</baseGroupNamespace>
<usernameAttribute>cn</usernameAttribute>
<userSearchFilter>(objectClass=inetorgperson)</userSearchFilter>
<firstnameAttribute>givenname</firstnameAttribute>
<surnameAttribute>sn</surnameAttribute>
<emailAttribute>mail</emailAttribute>
<groupnameAttribute>cn</groupnameAttribute>
<groupSearchFilter>(objectClass=groupOfNames)</groupSearchFilter>
<membershipAttribute>member</membershipAttribute>
</ldap>
|
The following settings do not appear in the default atlassian-user.xml file:
<poolingOn>true</poolingOn> <maxSize>0</maxSize> <initSize>10</initSize> <prefSize>10</prefSize> <debugLevel>none</debugLevel> <securityProtocol>plain ssl</securityProtocol> <authentication>simple</authentication> <timeout>0</timeout> <initialContextFactory>com.sun.jndi.ldap.LdapCtxFactory</initialContextFactory> <batchSize>100</batchSize> <timeToLive>0</timeToLive> <userSearchAllDepths>true</userSearchAllDepths> <groupSearchAllDepths>true</groupSearchAllDepths> |
However, if you want to override the default values listed above, you can add the value onto the end like so:
...
<groupnameAttribute>cn</groupnameAttribute>
<groupSearchFilter>(objectClass=groupOfNames)</groupSearchFilter>
<membershipAttribute>member</membershipAttribute>
<initSize>20</initSize>
</ldap>
|
It is important that the connection pool timeout value be set to 0, as this will force Atlassian User (via the JNDI layer) to clean up lingering connections that have lived past one request. More information about LDAP pools here.
There are two kinds of Confluence/LDAP integration available:
User Authentication |
Internal Users |
Internal Groups |
LDAP Users |
LDAP Groups |
|---|---|---|---|---|
LDAP Without Groups |
|
|
|
|
LDAP With Groups |
|
|
|
|
This section covers LDAP without groups, where if a username exists in both Confluence and LDAP, they use their LDAP password to login. You still maintain users from Confluence and use internal Confluence groups for group permissions.
Alternatively, you may use LDAP with Groups to have users and groups automatically updated from LDAP, and use LDAP groups for group permissions.
Applies For
Important Points
confluence/WEB-INF/classes.If you do not wish Confluence to retrieve any of your LDAP groups and display them inside Confluence then you can do this by specifying a dummy value for the groupSearchFilter filter in your atlassian-user.xml file. That is update your atlassian-user.xml file with the following:
<groupSearchFilter>(objectClass=dummyValue)</groupSearchFilter> |
An example atlassian-user.xml file:
<baseUserNamespace>cn=users,dc=ad,dc=atlassian,dc=com</baseUserNamespace> <baseGroupNamespace>ou=groups,dc=ad,dc=atlassian,dc=com</baseGroupNamespace> <usernameAttribute>sAMAccountName</usernameAttribute> <userSearchFilter>(objectClass=user)</userSearchFilter> <firstnameAttribute>givenname</firstnameAttribute> <surnameAttribute>sn</surnameAttribute> <emailAttribute>mail</emailAttribute> <groupnameAttribute>cn</groupnameAttribute> <groupSearchFilter>(objectClass=dummyValue)</groupSearchFilter> <membershipAttribute>member</membershipAttribute> <userSearchAllDepths>false</userSearchAllDepths> <groupSearchAllDepths>false</groupSearchAllDepths> |
For some LDAP servers, it might be necessary to configure Confluence to connect to multiple LDAP servers. This functionality is available in Confluence 2.3 and above, and has a separate guide: Configuring multiple LDAP repositories.
Add LDAP Integration
Configuring multiple LDAP repositories