YouTrack lets you enable authentication through any or all of supported by default OpenID providers: Google, Yahoo, America Online, and BlogSpot.
This feature is bundled in YouTrack and is configured in the Administration area of your YouTrack server.
To enable OpenID authentication:
- In the Admin Area, click OpenID Integration.
- In the OpenID Integration page, select Enable OpenID Integration.
- Select OpenID providers that you want to enable:
That's all! From now on, your users are able to log in with their OpenID credentials from base_URL/loginForm:
YouTrack supports four OpenID providers out of the box but you can configure additional providers.
However, any provider that you add must support AX (attribute exchange) fetch requests and return the following attributes:
To configure an additional OpenID provider:
- Add a new entry to the list of bean elements in [YouTrack classpath]\jetbrains\charisma\openid\persistence\OpenIdProvidersContainer.xml, where the [YouTrack classpass] depends on the way you run YouTrack. In general it's a path to the \WEB-INF\classes directory. For example, if you run YouTrack as a jar file from command line, then the OpenIdProvidersContainer.xml is located in youtrack-<version>.jar\WEB-INF\classes\jetbrains\charisma\openid\persistence.
- In the added bean element, add four properties:
- id: Unique integer identifier of your OpenID provider. Default providers are assigned IDs from 0 to 3.
- v2: Boolean value indicating whether your provider supports OpenID 2.0: assign "true" if it does support OpenID 2.0, otherwise "false".
- iconClassPathUri: Path to OpenID provider logo within YouTrack classpath (\webapps\youtrack\WEB-INF\classes in Apache Tomcat.) Don't forget to actually add a logo image in addition to referencing it in bean properties. Use 48*48 image files for OpenID providers supporting OpenID 2.0, and 22*22 files for other providers.
- providerUri: OpenID provider service URL.
The following listing shows how one of default OpenID providers is configured in OpenIdProvidersContainer.xml: