Connecting to Crowd

You can configure FishEye to use Atlassian Crowd for user and group management, and for authentication and authorization.

Atlassian Crowd is an application security framework that handles authentication and authorization for your web-based applications. With Crowd you can integrate multiple web applications and user directories, with support for single sign-on (SSO) and centralized identity management. See the Crowd Administration Guide.

Connect to Crowd if you want to use Crowd to manage existing users and groups in multiple directory types, or if you have users of other web-based applications.

Connecting FishEye to your external directory is not sufficient to allow your users to log in to FishEye. You must explicitly grant them access in the global permission screen.

On this page:

To connect FishEye to Crowd:

  1. Log in as a user with 'Admin' permission.
  2. In the FishEye administration area, click User Directories (under 'Security Settings').
  3. Click Add Directory and select Atlassian Crowd.
  4. Enter settings, as described below.
  5. Test and save the directory settings.
  6. Define the directory order, on the Directories tab, by clicking the blue up- and down-arrows next to each directory. The directory order has the following effects:
    • The order of the directories is the order in which they will be searched for users and groups.
    • Changes to users and groups will be made only in the first directory where the application has permission to make changes.

Server settings

Setting

Description

Name

A meaningful name that will help you to identify this Crowd server amongst your list of directory servers. Examples:

  • Crowd Server
  • Example Company Crowd

Server URL

The web address of your Crowd console server. Examples:

  • http://www.example.com:8095/crowd/
  • http://crowd.example.com

Application Name

The name of your application, as recognized by your Crowd server. Note that you will need to define the application in Crowd too, using the Crowd administration Console. See the Crowd documentation on adding an application.

Application Password

The password which the application will use when it authenticates against the Crowd framework as a client. This must be the same as the password you have registered in Crowd for this application. See the Crowd documentation on adding an application.

Crowd permissions

FishEye offers Read Only permissions for Crowd directories. The users, groups and memberships in Crowd directories are retrieved from Crowd and can only be modified from Crowd. You cannot modify Crowd users, groups or memberships using the FishEye administration screens.

Advanced settings

Setting

Description

Enable Nested Groups

Enable or disable support for nested groups. Before enabling nested groups, please check to see if the user directory or directories in Crowd support nested groups. When nested groups are enabled, you can define a group as a member of another group. If you are using groups to manage permissions, you can create nested groups to allow inheritance of permissions from one group to its sub-groups.

Enable Incremental Synchronization Enable or disable incremental synchronization. Only changes since the last synchronization will be retrieved when synchronizing a directory. Note that full synchronization is always executed when restarting FishEye.

Synchronization Interval (minutes)

Synchronization is the process by which the application updates its internal store of user data to agree with the data on the directory server. The application will send a request to your directory server every x minutes, where 'x' is the number specified here. The default value is 60 minutes.

Single sign-on (SSO) with Crowd

Once the Crowd directory has been set up, you can enable or disable Crowd SSO integration by adding the following setting to your $FISHEYE_INST/config.xml file (you can create missing xml nodes if they don't exist yet). SSO is disabled by default, if not configured in config.xml.

config.xml
<config>
...
	<security allow-anon="false" allow-cru-anon="false">
        <built-in>
                <signup enabled="true"/>
        </built-in>
        <crowd sso-enabled="true"/>
        <admins>
                <system-admins>
                        <group>confluence-users</group>
                </system-admins>
        </admins>
        <avatar><disabled/></avatar>
        <emailVisibility/>
    </security>
...
</config>

Note that you will need to correctly set up the domains of the applications involved in SSO. See Crowd SSO Domain examples.

Configuring SSO Domain

  • If you want the SSO cookie to be set to the domain that requests are made from, no more configuration is needed. 
  • If the SSO cookie domain is configured in Crowd, FishEye & Crucible will automatically retrieve this configuration. The following log in FishEye & Crucible will show this:

    INFO [Crowd SSO] Received cookie configuration (cookie name: crowd.token_key, domain: .example.com) for directory: MyCrowd.

    , or when the value was changed (visible on next SSO user request, 60 seconds after the configuration change was done): 

    INFO [Crowd SSO] Updating cookie configuration for directory: MyCrowd. Domain changed from: .example.com to .internal.example.com.
  • If the SSO cookie domain has to be overridden on the FishEye & Crucible side (multiple groups of SSO applications using a single Crowd) configure it by system properties or environment properties:
    1. System property:  crowd.property.cookie.domain

      -Dcrowd.property.cookie.domain=.internal.example.com
    2. Environment property:  CROWD_PROPERTY_COOKIE_DOMAIN

      CROWD_PROPERTY_COOKIE_DOMAIN=.internal.example.com

      together with system property enabling configuration via environment properties: atlassian.use.environment.variables

      -Datlassian.use.environment.variables=true

Note that the same applies to other Crowd properties.

  Other Crowd properties

Directory properties are used when configuring the HTTP client accessing the directory.

Directory properties defined below can be overridden by system properties or environment variables.

When using environment properties the following system property should be set: 

-Datlassian.use.environment.variables=true
Directory property System property name Environment property name

applicationName

crowd.property. application.name

CROWD_PROPERTY_APPLICATION_NAME

applicationPassword

crowd.property.application.password
CROWD_PROPERTY_APPLICATION_PASSWORD

applicationAuthenticationURL

crowd.property.application.login.url            
CROWD_PROPERTY_APPLICATION_LOGIN_URL

cookieTokenKey

crowd.property.cookie.tokenkey
CROWD_PROPERTY_COOKIE_TOKENKEY

sessionTokenKey

crowd.property.session.tokenkey
CROWD_PROPERTY_SESSION_TOKENKEY

sessionLastValidation

crowd.property.session.lastvalidation        
CROWD_PROPERTY_SESSION_LASTVALIDATION

sessionValidationInterval

crowd.property.session.validationinterval
CROWD_PROPERTY_SESSION_VALIDATIONINTERVAL

httpProxyHost

crowd.property.http.proxy.host
 
CROWD_PROPERTY_HTTP_PROXY_HOST

httpProxyPort

crowd.property.http.proxy.port
CROWD_PROPERTY_HTTP_PROXY_PORT

httpProxyUsername

crowd.property.http.proxy.username
 
CROWD_PROPERTY_HTTP_PROXY_USERNAME

httpProxyPassword

crowd.property.http.proxy.password
CROWD_PROPERTY_HTTP_PROXY_PASSWORD

httpMaxConnections

crowd.property.http.max.connections
CROWD_PROPERTY_HTTP_MAX_CONNECTIONS

httpTimeout

crowd.property.http.timeout     
CROWD_PROPERTY_HTTP_TIMEOUT

socketTimeout

crowd.property.socket.timeout             
CROWD_PROPERTY_SOCKET_TIMEOUT

ssoCookieDomainName

crowd.property.cookie.domain
CROWD_PROPERTY_COOKIE_DOMAIN

Using multiple directories

When FishEye is connected to Crowd you can map FishEye to multiple user directories in Crowd.

For Crowd 2.8, and later versions, there are two different membership schemes that Crowd can use when multiple directories are mapped to an integrated application, and duplicate user names and group names are used across those directories. The schemes are called 'aggregating membership' and 'non-aggregating membership' and are used to determine the effective group memberships that FishEye uses for authorization. See Effective memberships with multiple directories for more information about these two schemes in Crowd.

Note that:

  • Authentication, for when FishEye is mapped to multiple directories in Crowd, only depends on the mapped groups in those directories – the aggregation scheme is not involved at all. 
  • For inactive users, FishEye only checks if the user is active in the first (highest priority) directory in which they are found to determine authentication. The membership schemes described above are not used when Crowd determines if a user should have access to FishEye.
  • When a user is added to a group, they are only added to the first writeable directory available, in priority order.
  • When a user is removed from a group, they are only removed from the group in the first directory the user appears in, when non-aggregating membership is used. With aggregating membership, they are removed from the group in all directories the user exists in.

An administrator can set the aggregation scheme that FishEye uses when integrated with Crowd. Go to the Directories tab for the FishEye instance in Crowd, and check Aggregate group memberships across directories to use the 'aggregating membership' scheme. When the checkbox is clear 'non-aggregating membership' is used.

Note that changing the aggregation scheme can affect the authorization permissions for your FishEye users, and how directory update operations are performed. 

Was this helpful?

Thanks for your feedback!

Why was this unhelpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport