Integrating Crowd with Atlassian Jira

Crowd では現在、Jira バージョン 3.7.4 以降の中央での認証およびシングル サインオンをサポートしています。

このドキュメントがご利用の Crowd バージョンに適用されるかどうかをご確認ください

このドキュメントの Crowd リリース番号をご利用の Crowd バージョンと確認してください。Crowd の異なるバージョンを使用している場合、Crowd ドキュメントのホームページの「以前のバージョン」から適切なドキュメントを見つけることができます。

On this page:

Jira と Crowd バージョンの互換性

利用している Crowd と Jira のバージョンに互換性があることを確認します。

  • Jira 4.2 を使用している場合、Crowd 2.0.7 以降にアップグレードしてください (Crowd 2.4 を検討している場合、 JRA-27890 - Getting issue details... STATUS をご確認ください)。
  • Jira 4.3 以降を使用している場合、Crowd 2.1 以降にアップグレードしてください。
    背景: Jira 4.3 以降では、Jira と Crowd との間の通信方式が SOAP から REST に変更されています。

Prerequisites

1 つの Tomcat コンテナに複数のアトラシアン アプリケーションをデプロイしないでください。

複数のアトラシアンアプリケーションを単一の Tomcat コンテナーにデプロイすることはサポート対象外です。この構成はテストされておらず、いずれかのアプリケーションのアップグレードにより (ポイントリリースであっても)、この設定が壊れる恐れがあります。また、この設定には多くの既知の問題があります (詳細は、こちらの FAQ を参照してください)。

弊社では、多くの実用的な理由から、複数のアトラシアンアプリケーションを単一の Tomcat コンテナーにデプロイするサポートは行っておりません。第一に、アプリケーションをアップグレードするには Tomcat をシャットダウンする必要があります。第二に、1つのアプリケーションがクラッシュすると、その Tomcat コンテナーで実行中のその他のアプリケーションにアクセスできなくなります。

したがって、Crowd を実行する Tomcat コンテナ内に他のアプリケーションをデプロイすることは推奨されません。このような他のアプリケーションが大容量のメモリを必要としたり、Tomcat の lib サブディレクトリ内に追加のライブラリを必要とする場合は特に推奨されません。

  1. Crowd をダウンロードしてインストールします。手順については「Crowd インストール ガイド」をご参照ください。ここでは Crowdルート フォルダを CROWD とします。
  2. 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.
  3. 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.
  4. Jira 4.2 以前の場合: Jira のセットアップ後、以降の連携プロセスを開始する前に Jira をシャットダウンします。

Jira を Fisheye や Confluence などの他のアプリケーションのユーザー ディレクトリとして使用している場合、Jira をシャットダウンするとこれらがアクセスすることはできなくなります。この問題を回避するには、Crowd を Jira と連携する前に、これらのアプリケーションで Crowd を利用するように構成します。


ステップ 1. Jira とやり取りできるように Crowd を構成する

1.1 Crowd で Jira 用のディレクトリ、グループ、およびユーザーを準備する

  1. 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.
  2. また、Jira でユーザーを認証するために、ディレクトリに特定の複数のグループが存在している必要があります。次の 3 つのグループが Crowd の Jira ディレクトリに存在していることを確認します。
    • jira-users
    • jira-developers
    • jira-administrators
  3. また、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. (info) 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 ドキュメントをご参照ください。

必要なグループが存在しない場合、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 ディレクトリにマッピングする必要があります。

  1. Crowd Administration Console にログインし、[Applications] > [Add Application] に移動します。
  2. Jira アプリケーションについて "Add application" ウィザードを完了します。手順をご確認ください。(info) "Add Application" ウィザードで指定した NamePassword の値は、JIRA/atlassian-jira/WEB-INF/classes/crowd.properties ファイルで設定する application.name および application.password と一致する必要があります (後述のステップ 2 をご参照ください)。

1.3 Jira にログインできるユーザーを指定する

Crowd で Jira アプリケーションを認識するようになったら、Crowd では Crowd を経由して Jira に認証 (ログイン) できるユーザーを認識する必要があります。"Add Application" ウィザードの一環として、アプリケーション用のディレクトリとグループ認証をセットアップします。必要に応じ、ウィザードの完了後にこれらの設定を調整できます。いくつかの例を説明します。

ディレクトリ全体の認証か、ディレクトリ内の特定のグループの認証を許可できます。この例では、Crowd の Jira ディレクトリjira-usersjira-developers、および jira-administrators グループに認証を許可します。


(info) 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.

  1. Jira の管理者用セクションにログインします。
  2. [ユーザー管理] タブで、左側のバーの [ユーザー ディレクトリ] ラベルをクリックします。
  3. Click 'Add Directory'. Then select 'Atlassian Crowd' from the dropdown list. Click 'Next'.
  4. 接続パラメーターを入力して保存します。HTTPS を使用ようにサーバー URL を構成している場合、http:// を https:// に置き換えることで、Jira と Crowd との間の通信が暗号化されます。
  5. ユーザー ディレクトリの一覧に新しい 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 インスタンスを移行 / アップグレードする場合、次のファイルを統合する必要があります (上書きはしないでください)。

  1. Jira が実行中の場合、シャットダウンします。
  2. 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"/>
    
  3. CROWD/client/conf/ から JIRA/atlassian-jira/WEB-INF/classescrowd.properties ファイルをコピーします。
  4. 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 内の任意のユーザーの関連付けは引き続き残り、ユーザー名がプレースホルダーとして使用されます。ユーザー名はユーザー ブラウザには表示されず、そのユーザーのプロファイルも存在しません。 

最終更新日: 2023 年 10 月 26 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.