Integrating Crowd with Atlassian Confluence
Atlassian's popular Confluence wiki can quickly be configured to use Crowd for user and group management.
On this page:
Compatibility of Confluence and Crowd Versions
Please ensure that your Crowd and Confluence versions are compatible:
Confluence Version | Supported Crowd Version | Notes |
---|---|---|
Lower than 2.6.2 | N/A | Confluence does not support Crowd - please upgrade Confluence. |
Between 2.6.2 and 2.7.4 | 1.2 and later | Confluence 2.6.1 is not supported - the earliest supported version is 2.6.2 |
Between 2.8 and 3.4.8 | Between 1.3.2 and 2.2.7 | In Confluence 2.8, the interface for Note: As per
-
CWD-2542Getting issue details...
STATUS
, |
Confluence 3.5 and above | Crowd 2.1 or Later | In Confluence 3.5 and above, the communication between Confluence and Crowd has been changed from SOAP to REST. |
Prerequisites
Do not deploy multiple Atlassian applications in a single Tomcat container.
There are also a number of practical reasons why we do not support deploying multiple Atlassian applications in a single Tomcat container. Firstly, you must shut down Tomcat to upgrade any application and secondly, if one application crashes, the other applications running in that Tomcat container will be inaccessible.
Finally, we recommend not deploying any other applications to the same Tomcat container that runs Crowd, especially if these other applications have large memory requirements or require additional libraries in Tomcat's lib
subdirectory.
- Download and install Crowd. Refer to the Crowd installation guide for instructions. We will refer to the Crowd root folder as
CROWD
. - Download and install Confluence (version 2.6.2 or later). Refer to the Confluence installation guide for instructions. We will refer to the Confluence root folder as
CONFLUENCE
. For the purposes of this document, we will assume that you have used the Crowd distribution (not EAR-WAR) (i.e. the easier) installation method of Confluence. If you need to install Confluence as an EAR/WAR, simply explode the EAR/WAR and make the necessary changes as described below, then repackage the EAR/WAR. - Run the Confluence Setup Wizard, as described in the Confluence documentation. During this setup process, you will define the Confluence administrator's username and password. It is easier to do this before you integrate Confluence with Crowd.
- After setting up Confluence, shut down Confluence before you begin the integration process described below.
Step 1. Configuring Crowd to Talk to Confluence
1.1 Prepare Crowd's Directories/Groups/Users for Confluence
The Confluence application will need to authenticate users against a directory configured in Crowd. You will need to set up a directory in Crowd for Confluence. For more information on how to do this, see Adding a Directory. We will assume that the directory is called Confluence Directory for the rest of this document. It is possible to assign more than one directory for an application, but for the purposes of this example, we will use Confluence Directory to house Confluence users.
Confluence also requires particular groups to exist in the directory in order to authenticate users. You will need to create two groups in the Confluence Directory:
confluence-users
confluence-administrators
See the documentation on Creating Groups for more information on how to define these groups.
You also need to ensure that the Confluence Directory contains at least one user who is a member of both groups. Choose one of the two options below:
If you have an existing Confluence deployment and would like to import existing users and groups into Crowd, use the Confluence Importer tool by navigating to Users > Import Users > Atlassian Importer. Select 'Confluence' as the Atlassian product, and the Confluence Directory as the directory into which Confluence users will be imported. For details please see Importing Users from Atlassian Confluence.
If you are going to import users into Crowd, you need to do this now before you proceed any further
OR:- If you don't wish to import your Confluence users, make sure you use Crowd to create at least one user in the Confluence Directory and assign them to both the
confluence-users
and theconfluence-administrators
group. The Crowd documentation has more information on creating groups, creating users and assigning users to groups.
1.2 Define the Confluence Application in Crowd
Crowd needs to be aware that the Confluence application will be making authentication requests to Crowd. We need to add the Confluence application to Crowd and map it to the Confluence Directory:
- Log in to the Crowd Administration Console and navigate to Applications > Add Application.
Complete the 'Add Application' wizard for the Confluence application. See the instructions.
The Name and Password values you specify in the 'Add Application' wizard must match the application.name and application.password that you will set in the
CONFLUENCE/confluence/WEB-INF/classes/crowd.properties
file. (See Step 2 below.)
1.3 Specify which Users can Log In to Confluence
Once Crowd is aware of the Confluence application, Crowd needs to know which users can authenticate (log in) to Confluence via Crowd. As part of the 'Add Application' wizard, you will set up your directories and group authorizations for the application. If necessary, you can adjust these settings after completing the wizard. Below are some examples.
You can either allow entire directories to authenticate, or just particular groups within the directories. In our example, we will allow the confluence-users
and confluence-administrators
groups within the Confluence Directory to authenticate:
For details please see Specifying which Groups can access an Application.
1.4 Specify the Address from which Confluence can Log In to Crowd
As part of the 'Add Application' wizard, you will set up Confluence's IP address. This is the address which Confluence will use to authenticate to Crowd. If necessary you can add a hostname, in addition to the IP address, after completing the wizard. See Specifying an Application's Address or Hostname.
Step 2. Configuring Confluence to talk to Crowd
The instructions for step 2 below apply to Confluence 3.5 or newer. If you use Confluence 3.4 or older, please follow "Step 2" on Integrating Crowd with Atlassian Confluence 3.4 or earlier instead.
2.1 Add a Crowd Directory in Confluence
Confluence can use Crowd for user authentication simply by adding the 'Atlassian Crowd' user directory.
- Log in to Confluence Admin as 'confluence-administrator'.
- Click on the 'User Directories' label of the left bar under the 'Security' tab.
- Click 'Add Directory'. Then select 'Atlassian Crowd' from the dropdown list. Click 'Next'.
- Enter connection parameters and save. Now a new Crowd directory should appear on the user directory list.
For more information on configuring a Crowd remote directory in Confluence, check out the Confluence documentation on Connecting to Crowd or Jira for User Management.
2.2 Enable SSO integration with Crowd (Optional)
- If Confluence is running, shut it down first.
Now, edit the file
CONFLUENCE/confluence/WEB-INF/classes/seraph-config.xml
Comment out the line:-<!-- <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/> -->
Uncomment the line:-
<authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/>
- Copy the
crowd.properties
file fromCROWD/client/conf/
toCONFLUENCE/confluence/WEB-INF/classes
. Edit
CONFLUENCE/confluence/WEB-INF/classes/crowd.properties
. Change the following properties:Key
Value
application.name
confluence
The application.name and application.password must match the Name and Password that you specified when defining the application in Crowd (see Step 1 above).application.password
The application.name and application.password must match the Name and Password that you specified when defining the application in Crowd (see Step 1 above).
crowd.base.url
http://localhost:8095/crowd/
If your Crowd server's port is configured differently from the default (i.e. 8095), set it accordingly.session.validationinterval
This is the number of minutes between validation requests, when Crowd validates whether the user is logged in to or out of the Crowd SSO server. Set to the required number of minutes between validation requests. The recommended default is 2 minutes. Setting this value to 1 or higher will increase the performance of Crowd's integration.
Setting this value to 0 will cause the application to perform authentication checks on each request but can cause poor performance, especially with Crowd 2.1 - Crowd 2.3.2 using REST due to CWD-2646.
You can read more about optional settings in the crowd.properties file.
It is possible to define multiple user directories in Confluence. However, if you enable Crowd SSO integration, you will only be able to authenticate as users from the Crowd server defined in the crowd.properties
file.
To log in using a user from another directory, such as the Confluence Internal Directory, you will need to either:
- in the Confluence admin console, go to User Directories and disable the Crowd Server directory, or
- disable Crowd SSO by reverting back to the default Confluence authenticator.
Steps to disable Crowd SSO:
- Shut down Confluence if it is currently running
- Edit the file
CONFLUENCE/confluence/WEB-INF/classes/seraph-config.xml
Uncomment the default Confluence authenticator:
<authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/>
Comment out the Crowd SSO Authenticator:
<!-- <authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/> -->
Restart Confluence
See Crowd in Action
- Users belonging to the
confluence-users
group should now be able to log in to Confluence. - Try adding a user to the
confluence-users
group using Crowd — you should be able to log in to Confluence using this newly created user. That's centralized authentication in action! - If you have enabled SSO, you can try adding the Confluence Directory and
confluence-administrators
group to the crowd application (see Mapping a Directory to an Application and Specifying which Groups can access an Application). This will allow Confluence administrators to log in to the Crowd Administration Console. Try logging in to Crowd as a Confluence administrator, and then point your browser at Confluence. You should be logged in as the same user in Confluence. That's single sign-on in action!
RELATED TOPICS
- Using the Application Browser
- Adding an Application
- Integrating Crowd with Atlassian Bamboo
- Integrating Crowd with Atlassian Confluence
- Integrating Crowd with Atlassian CrowdID
- Integrating Crowd with Atlassian Crucible
- Integrating Crowd with Atlassian FishEye
- Integrating Crowd with Atlassian JIRA
- Integrating Crowd with Atlassian Bitbucket
- Integrating Crowd with Acegi Security
- Integrating Crowd with Jive Forums
- Integrating Crowd with Spring Security
- Integrating Crowd with a Custom Application
- Configuring the Google Apps Connector
- Mapping a Directory to an Application
- Effective memberships with multiple directories
- Specifying an Application's Address or Hostname
- Testing a User's Login to an Application
- Enforcing Lower-Case Usernames and Groups for an Application
- Managing an Application's Session
- Deleting or Deactivating an Application
- Overview of SSO
- Configuring Options for an Application
- Disabling the OpenID client app