Documentation for Crowd 1.4. Documentation for other versions of Crowd is available too.
Atlassian's popular Confluence wiki can quickly be configured to use the atlassian-user
libraries to link in single or multiple directory servers through Crowd.
If you are using NTLM for Windows authentication, you may want to read about configuring Crowd's Confluence NTLM plugin for single sign on.
For best performance and support, please ensure that your Crowd and Confluence versions are compatible:
CROWD
.CONFLUENCE
. For the purposes of this document, we will assume that the Standalone (ie. the easier) installation method of Confluence has been used. If you need to install Confluence as an EAR/WAR, simply explode the EAR/WAR and make the necessary changes as described below, and repackage the EAR/WAR.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:
confluence-users
and the confluence-administrators
group. The Crowd documentation has more information on creating groups, creating users and assigning users to groups.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:
属性 |
説明 |
---|---|
名前 |
The username which the application will use when it authenticates against the Crowd framework as a client. This value must be unique, i.e. it cannot be used by more than one application client. |
説明 |
A short description of the application. Note: A web URL is often helpful. |
アクティブ |
Only deselect this if you wish to prevent all users (from all directories) from accessing this application. |
パスワード |
The password which the application will use when it authenticates against the Crowd framework as a client. |
Confirm Password |
Retype the same password as above, to confirm it. |
Default Directory |
A directory that contains relevant users. Note: Additional directories can be added later. |
CONFLUENCE/confluence/WEB-INF/classes/crowd.properties
(see Step 2 below).Now that Crowd is aware of the Confluence application, Crowd needs to know which users can authenticate (log in) to Confluence via Crowd. 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.
Please see Specifying an Application's Address or Hostname. Please note:
localhost
.localhost
is a permissible foreign host. However, you will also need to manually add the IP address 127.0.0.1
, because incoming requests to Crowd from Confluence (both on the same, local, host) may be from the host 127.0.0.1
and not localhost
. Crowd does not do a DNS lookup of the hostname. Instead, it compares the values themselves. Ensure the "Status" field is set to "true". Confluence needs Crowd's client library and configuration file in order to be able to delegate user authentication to the Crowd application. As stated earlier, we will modify the Confluence application by editing the standalone application, which is an exploded WAR stored in CONFLUENCE/confluence
.
Copy From |
Copy To |
---|---|
CROWD/client/crowd-integration-client-X.X.X.jar |
CONFLUENCE/confluence/WEB-INF/lib |
CROWD/client/conf/crowd.properties |
CONFLUENCE/confluence/WEB-INF/classes |
CROWD/client/lib
. All the required libraries from that directory already exist in Confluence versions 2.3 and later. A note about older Confluence versions
Confluence 2.5.6 to 2.6.1 are not compatible with Crowd 1.2 and later. We recommend that you upgrade to Confluence 2.6.2 or later.
If you can not upgrade your Confluence instance, you will need to remove the seraph-0.X.X.jar
file from Confluence's CONFLUENCE-HOME/WEB-INF/lib/seraph-0.X.X.jar
and replace it with the following file:
http://repository.atlassian.com/maven2/com/atlassian/seraph/atlassian-seraph/0.10/atlassian-seraph-0.10.jar
CONFLUENCE/confluence/WEB-INF/classes/crowd.properties
を編集します。次のプロパティを変更します。
キー |
値 |
---|---|
application.name |
confluence |
application.password |
Set a password. |
crowd.server.url |
|
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 this value to 0 if you want authentication checks to occur on each request. Otherwise set to the required number of minutes between validation requests. Setting this value to 1 or higher will increase the performance of Crowd's integration. |
crowd.properties
file.You can read more about the crowd.properties file.
Now that the Crowd client libraries exist, we need to configure Confluence to use them.
CONFLUENCE/confluence/WEB-INF/classes/atlassian-user.xml
file so that the contents of the file is:
<atlassian-user> <repositories> <crowd key="crowd" name="Crowd Repository"/> </repositories> </atlassian-user>
CONFLUENCE/confluence/WEB-INF/classes/seraph-config.xml
. Comment out the authenticator
node : <!--<authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/>-->
<authenticator class="com.atlassian.crowd.integration.seraph.ConfluenceAuthenticator"/>
Once the setup is complete, you may optionally wish to enable a Confluence feature known as 'External User Management' in Confluence, to prevent Confluence administrators from creating/modifying users. For more information please see the Confluence documentation regarding External User Management.
When using the atlassian-user and Crowd framework together with Confluence, it is highly recommended that caching be enabled. Multiple redundant calls to the atlassian-user framework are made on any given request. These results can be stored locally between calls by enabling caching via the Crowd Options menu. (Note that this caching in the Crowd application is enabled by default.)
Confluence will obtain all necessary information for the period specified by the cache configuration — see Configuring Caching for an Application. If a change or addition occurs to Crowd users, groups and roles, these changes will not be visible in Confluence until the cache expires for that specific item (i.e. for the particular user, group or role).
The default value for the application cache is 5 minutes (300 seconds). To increase the performance of your application, consider changing the cache value to one or two hours (3600 or 7200 seconds).
confluence-users
group should now be able to log in to Confluence.confluence-users
group using Crowd — you should be able to log in to Confluence using this newly created user. That's centralised authentication in action!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!