Integrating Crowd with Atlassian Jira
Crowd では現在、Jira バージョン 3.7.4 以降の中央での認証およびシングル サインオンをサポートしています。
このドキュメントがご利用の Crowd バージョンに適用されるかどうかをご確認ください
このドキュメントの Crowd リリース番号をご利用の Crowd バージョンと確認してください。Crowd の異なるバージョンを使用している場合、Crowd ドキュメントのホームページの「以前のバージョン」から適切なドキュメントを見つけることができます。
On this page:
Jira と Crowd バージョンの互換性
利用している Crowd と Jira のバージョンに互換性があることを確認します。
- If you are using Jira 4.2 please upgrade to Crowd 2.0.7 or later. (watch out for Crowd 2.4 though: JRA-27890 - Getting issue details... STATUS )
- Jira 4.3 以降を使用している場合、Crowd 2.1 以降にアップグレードしてください。
背景: Jira 4.3 以降では、Jira と Crowd との間の通信方式が SOAP から REST に変更されています。
Prerequisites
1 つの Tomcat コンテナに複数のアトラシアン アプリケーションをデプロイしないでください。
弊社では、多くの実用的な理由から、複数のアトラシアンアプリケーションを単一の Tomcat コンテナーにデプロイするサポートは行っておりません。第一に、アプリケーションをアップグレードするには Tomcat をシャットダウンする必要があります。第二に、1つのアプリケーションがクラッシュすると、その Tomcat コンテナーで実行中のその他のアプリケーションにアクセスできなくなります。
したがって、Crowd を実行する Tomcat コンテナ内に他のアプリケーションをデプロイすることは推奨されません。このような他のアプリケーションが大容量のメモリを必要としたり、Tomcat の lib
サブディレクトリ内に追加のライブラリを必要とする場合は特に推奨されません。
- Crowd をダウンロードしてインストールします。手順については「Crowd インストール ガイド」をご参照ください。ここでは Crowdルート フォルダを
CROWD
とします。 - Download and install Jira (version 3.7.4 or later). Refer to the Jira installation guide for instructions. We will refer to the Jira root folder as
JIRA
. For the purposes of this document, we will assume that you have used the 'Crowd distribution (not EAR-WAR)' (i.e. the easier and recommended) installation method of Jira. If you need to install Jira as an EAR/WAR, simply explode the EAR/WAR and make the necessary changes as described below, then repackage the EAR/WAR. - Run the Jira Setup Wizard, as described in the Jira installation guide. During this setup process, you will define the JIRA administrator's username and password. It is easier to do this before you integrate Jira with Crowd.
- Jira 4.2 以前の場合: Jira のセットアップ後、以降の連携プロセスを開始する前に Jira をシャットダウンします。
Jira を Fisheye や Confluence などの他のアプリケーションのユーザー ディレクトリとして使用している場合、Jira をシャットダウンするとこれらがアクセスすることはできなくなります。この問題を回避するには、Crowd を Jira と連携する前に、これらのアプリケーションで Crowd を利用するように構成します。
ステップ 1. Jira とやり取りできるように Crowd を構成する
1.1 Crowd で Jira 用のディレクトリ、グループ、およびユーザーを準備する
- The Jira application will need to locate users from a directory configured in Crowd. You will need to set up a directory in Crowd for Jira. This directory may be any Crowd-configured directory, such as an LDAP directory hooked up to Crowd or a Crowd internal directory. For information on how to do this, see Adding a Directory.
We will assume that the directory is called Jira Directory in Crowd 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 Jira Directory in Crowd to house Jira users. - また、Jira でユーザーを認証するために、ディレクトリに特定の複数のグループが存在している必要があります。次の 3 つのグループが Crowd の Jira ディレクトリに存在していることを確認します。
jira-users
jira-developers
jira-administrators
- また、Crowd の Jira ディレクトリに、3 つのグループすべてに所属するユーザーが 1 人以上必要です。次のいずれかを行えます。
- If you have an existing Jira deployment and would like to import existing groups and users into Crowd, use the Jira Importer tool by navigating to Users > Import Users > Atlassian Importer. Select 'Jira' as the Atlassian Product and the Jira Directory in Crowd as the directory into which Jira users will be imported. For details please see Importing Users from Atlassian Jira. If you are going to import users into Crowd, you need to do this now before you proceed any further.
OR: - Jira ユーザーをインポートしない場合、Crowd Administration Console を使用して 3 つのグループを作成し、Crowd の Jira ディレクトリに 1 人以上のユーザーを作成して、それらのユーザーを Jira 固有の 3 つのグループ (前述) に追加します。グループの作成、ユーザーの作成、およびグループへのユーザーの割り当ての Crowd ドキュメントをご参照ください。
- If you have an existing Jira deployment and would like to import existing groups and users into Crowd, use the Jira Importer tool by navigating to Users > Import Users > Atlassian Importer. Select 'Jira' as the Atlassian Product and the Jira Directory in Crowd as the directory into which Jira users will be imported. For details please see Importing Users from Atlassian Jira. If you are going to import users into Crowd, you need to do this now before you proceed any further.
必要なグループが存在しない場合、Jira でエラーが発生します
JIRA expects that the group names mentioned above will exist. If you need to use different group names, you may want to remove the above pre-existing groups from Jira's Global Permissions. If the above groups do not exist somewhere in Crowd, you will receive an error when you try to remove the groups from Jira's Global Permissions.
1.2 Crowd で Jira アプリケーションを定義する
Jira の複数のバージョンが Crowd に接続されている場合、Crowd でそれぞれに対して 1 つのアプリケーションを定義するようにします。
Crowd では、Jira アプリケーションが Crowd に対して認証リクエストを送信することを認識している必要があります。このため、Jira アプリケーションを Crowd に追加し、それを Crowd の Jira ディレクトリにマッピングする必要があります。
- Crowd Administration Console にログインし、[Applications] > [Add Application] に移動します。
- Complete the 'Add Application' wizard for the Jira 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
JIRA/atlassian-jira/WEB-INF/classes/crowd.properties
file. (See Step 2 below.)
1.3 Jira にログインできるユーザーを指定する
Crowd で Jira アプリケーションを認識するようになったら、Crowd では Crowd を経由して Jira に認証 (ログイン) できるユーザーを認識する必要があります。"Add Application" ウィザードの一環として、アプリケーション用のディレクトリとグループ認証をセットアップします。必要に応じ、ウィザードの完了後にこれらの設定を調整できます。いくつかの例を説明します。
ディレクトリ全体の認証か、ディレクトリ内の特定のグループの認証を許可できます。この例では、Crowd の Jira ディレクトリの jira-users
、jira-developers
、および jira-administrators
グループに認証を許可します。
With this example, only users who are members of the jira-users
, jira-developers
and jira-administrators
groups will be able to authenticate against Jira.
詳細については「アプリケーションにアクセスできるグループを指定する」をご参照ください。
1.4 Jira が Crowd にログインできるアドレスを指定する
"Add Application" ウィザードの一環として、Jira の IP アドレスをセットアップします。これは、Jira が Crowd に対して認証するために使用するアドレスです。必要に応じてウィザードの完了後に、IP アドレスに加えてホスト名を追加できます。「アプリケーションのアドレスまたはホスト名を指定する」をご参照ください。
ステップ 2. Crowd とやり取りできるように Jira を構成する
The instructions for step 2 below apply to Jira 4.3 or newer. If you use Jira 4.2 or older, please follow "Step 2" on Integrating Crowd with Atlassian Jira 4.2 or earlier instead.
2.1 Jira に Crowd ディレクトリを追加する
Jira can use Crowd for user authentication simply by adding 'Atlassian Crowd' as user directory.
- Jira の管理者用セクションにログインします。
- [ユーザー管理] タブで、左側のバーの [ユーザー ディレクトリ] ラベルをクリックします。
- Click 'Add Directory'. Then select 'Atlassian Crowd' from the dropdown list. Click 'Next'.
- 接続パラメーターを入力して保存します。HTTPS を使用ようにサーバー URL を構成している場合、http:// を https:// に置き換えることで、Jira と Crowd との間の通信が暗号化されます。
- ユーザー ディレクトリの一覧に新しい Crowd ディレクトリが表示されます。
For more information on configuring a Crowd directory in Jira, check out the Jira documentation on Connecting to Crowd or Another Jira Server for User Management.
2.2 SSO を有効化するため、Crowd の Authenticator を使用するように Jira を構成する (任意)
この段階では、Jira は中央での認証用にセットアップされています。必要に応じて Jira へのシングル サインオン (SSO) を有効化できます。これにより、Jira の認証やアクセス リクエストの呼び出しが Seraph を使用して実行されるようにすることができます。
注: すでに Crowd を利用している Jira インスタンスを移行 / アップグレードする場合、次のファイルを統合する必要があります (上書きはしないでください)。
- Jira が実行中の場合、シャットダウンします。
JIRA/atlassian-jira/WEB-INF/classes/seraph-config.xml
ファイルを編集します。authenticator
ノードをコメント アウトします。<!--<authenticator class="com.atlassian.jira.security.login.JiraSeraphAuthenticator"/>-->
新しいオーセンティケータを含む行のコメントを解除します。<authenticator class="com.atlassian.jira.security.login.SSOSeraphAuthenticator"/>
CROWD/client/conf/
からJIRA/atlassian-jira/WEB-INF/classes
にcrowd.properties
ファイルをコピーします。JIRA/atlassian-jira/WEB-INF/classes/crowd.properties
を編集します。次のプロパティを変更します。キー
値
application.name
jira
アプリケーション名は Crowd のアプリケーションで指定した名前と一致している必要があります (前述のステップ 1 を参照)。application.password
パスワードは Crowd のアプリケーションで定義した名前と一致している必要があります (前述のステップ 1 を参照)。
crowd.base.url
例: (http://localhost:8095/crowd/)
Crowd サーバーのポートが既定 (8095) とは異なる値に構成されている場合、それに応じて設定します。crowd.base.url は、ブラウザで Crowd にアクセスするために使用する URL と同じものである必要があります。
session.validationinterval
各リクエストで認証チェックを行いたい場合は 0 に設定します。その他の場合、ユーザーが Crowd SSO サーバーにログインしているかどうかを検証するためのリクエスト間隔を分単位で設定します。この値を 1 以上に設定すると、Crowd 連携のパフォーマンスが改善します。
Jira では複数のユーザー ディレクトリを定義することができます。しかしながら、SSO 連携を有効化した場合、crowd.properties
ファイルで定義された Crowd サーバーのユーザーとしてのみ認証できます。
オプション設定の詳細については「crowd.properties ファイルについて」をご参照ください。
2.3 (任意) Jira のユーザー ピッカーのオートコンプリート機能を無効化する
To improve performance on page-loading in Jira, we recommend that you disable the auto-complete function in Jira's 'User Picker' popup screens.
詳細情報: 弊社の経験上、非常に大規模なユーザー ベースのお客様では、Jira でこの機能を無効化することでパフォーマンスが向上します。この機能を有効化した状態で Jira で十分なパフォーマンスを実現できている場合、有効化したままでかまいません。
Crowd の動作を確認する
- これで
jira-users
グループに所属するユーザーとしてログインできるようになりました。Crowd を使用してグループにユーザーを追加してみてください。この新しいユーザーで Jira にログインできるはずです。これで中央での認証を確認できました。 - SSO を有効化した場合、Crowd の Jira ディレクトリと
jira-administrators
グループを crowd アプリケーションに追加できます (「ディレクトリをアプリケーションにマッピングする」および「アプリケーションにアクセス可能なグループを指定する」をご参照ください)。これにより、Jira 管理者が Crowd Administration Console にログインできるようになります。Crowd に Jira 管理者としてログインし、ブラウザで Jira に移動してみてください。同じユーザーとして Jira にログインできるはずです。これでシングル サインオンを確認できました。
既知の制限事項
Jira 4.2 を使用している場合、ユーザーが課題に参加した (Jira がユーザーを参照した) あとにユーザーを削除すると、Jira で問題が発生します。ユーザーが Jira で内部管理されている場合は Jira によってユーザーの削除が防止されますが、ユーザーが Crowd などの外部システムで管理されている場合、Jira は DataAccessException
を返します。Jira をアップグレードするか、そのユーザー アカウントを jira-users
グループから削除することで無効化することをおすすめします。
Jira 4.3 以降を使用している場合、この問題は解決済みです。データの関連付けを問わず、外部で管理されているユーザーを削除できます。Crowd などの外部システムで管理されているユーザーが削除されると、Jira 内の任意のユーザーの関連付けは引き続き残り、ユーザー名がプレースホルダーとして使用されます。ユーザー名はユーザー ブラウザには表示されず、そのユーザーのプロファイルも存在しません。