Crowd 2.7を使用したシングルサインオンの設定

 

はじめに

このドキュメントでは、LinuxにインストールしたCrowdを使って、ConfluenceとJIRAをシングルサインオンで利用できるようにする手順を紹介します。
シングルサインオンを利用できるようにすると、一度のログインで複数のアプリケーションを使用できるようになります。
アプリケーションリンクでConfluenceとJIRAを連携できるようにしたときなど、アプリケーション間を移動時にログイン情報を入力の手間を省けますので、便利な機能です。

使用する環境は以下を想定しています。

サーバー

オペレーティングシステムCentOS 6.3
HTTPサーバーApache HTTP Server 2.2.x
サーブレットコンテナ各アプリに同梱のApache Tomcatを使用
データベースPostgreSQL 8.4.x
Java

Java SE Development Kit 7 Update 51 

Crowd 2.7.x (Supported Platforms)

プログラムディレクトリ

/opt/atlassian/crowd/atlassian-crowd-2.7.x

データディレクトリ

/var/atlassian/application-data/crowd

コンテキストルート/crowd

サービス稼働ユーザー

crowd

DB

crowd_db

起動方法

サービスとして登録し、自動起動する

Confluence 5.5.x (Supported Platforms)

プログラムディレクトリ

/opt/atlassian/confluence

データディレクトリ

/var/atlassian/application-data/confluence

コンテキストルート/wiki

サービス稼働ユーザー

confluence

DB

conf_db

起動方法

サービスとして登録し、自動起動する

JIRA 6.2.x (Supported Platforms)

プログラムディレクトリ

/opt/atlassian/jira

データディレクトリ

/var/atlassian/application-data/jira

コンテキストルート/jira

サービス稼働ユーザー

jira

DB

jira_db

起動方法

サービスとして登録し、自動起動する

このドキュメントでは、JIRAとConfluence間のアプリケーションの連携と、Crowdを使用したシングルサインオンの設定を説明しています。
各アプリケーションのインストール方法については、下記ドキュメントをご参照いたくようにお願いします。

 

ご注意ください

以下の手順では、Crowdで行う手順は「(黄色い星) 以下の手順はCrowdで実施します。」、Confluenceで行う手順は「(青い星) 以下の手順はConfluenceで実施します。」、JIRAで行う手順は「(赤い星) 以下の手順はJIRAで実施します。」と表記しています。

1.Crowdのユーザーディレクトリを使ってログインする

(黄色い星) 以下の手順はCrowdで実施します。

最初にログイン時の認証をCrowdで行うように設定します。

ここでは、例として以下のようにグループとユーザーが登録されていると想定します。

  • 既定の「crowd-administrators」(管理者)以外に、「crowd-developers」(開発者)、「crowd-users」(利用者)、「crowd-guests」(ゲスト)の各グループが存在しています。
  • それぞれのグループには、個別にユーザーが登録されています。

1-1. Crowdで連携するアプリケーションを登録する

最初にCrowd側の準備を行います。Crowdと連携させるConfluenceとJIRAをApplicationsに登録し、Crowdの持っているユーザーディレクトリを参照できるようにします。以下でConfluenceを例に説明しますので、JIRAについても同様に設定を行なってください。

画面左上の「Applications」を選択し、左側のメニューから「Add Application」を選択します。「Add Application」画面が表示されるので、画面の各項目を入力していきます。 Confluenceを連携した場合の例は、以下の通りです。

Application TypeCrowdと連携させるアプリケーションの種類を選択します。
NameCrowdがアプリケーションを識別するための名前を入力します。 他のアプリケーションと区別できる名前を指定してください。 のちに、連携するアプリケーション側でも設定します。
Description

アプリケーションに関する説明を記載します。省略しても問題ございません。

Password

連携するアプリケーションがCrowdのユーザーディレクトリにアクセスするときに入力するパスワードです。 のちに、連携するアプリケーション側でも設定します。
Conflrm Password確認用に「Password」と同じものを入力します。

各項目を入力できたら「Next」ボタンを押して次の画面に進みます。

続いて、連携したいアプリケーションのURLとIPアドレスを指定します。「URL」には、連携したいアプリケーションのベースURLを指定します。URLを入力して「Resolve IP Address」ボタンをクリックすると、URLからIPアドレスを自動的に調べて「Remote IP Address」テキストボックスに表示してくれます。
URLとIPアドレスを指定できたら「Next」ボタンをクリックします。 

アプリケーションで使用するCrowdのユーザーディレクトリを選択します。ここでは「TestCrowd」ディレクトリにチェックを付けて「Next」ボタンをクリックします。

前の画面で選択したユーザーディレクトリの中で、アプリケーションを利用できるグループを指定します。利用できるグループを個別に指定することもできますが、ここではすべてのグループで使用できるようにするため「Allow all users to authenticate」チェックをオンにします。
指定できたら「Next」ボタンをクリックします。 

登録内容を確認します。問題がなければ「Add Application」ボタンをクリックします。訂正したいときは「Cancel」ボタンをクリックしてください。

以上の手順を繰り返してJIRAも登録します。登録後、「Applications」の「Search Applications」を選択すると、以下の画面のようにConfluenceとJIRAが表示されています。

それぞれのアプリケーションで使用するグループの設定を行います。ここではConfluenceを例に説明します。JIRAについても同様に設定してください。
上の「Applications」の「Search Applications」の画面で「testconfluence」をクリックします。

 アプリケーションの設定画面が表示されるので「Groups」タブを選択します。ドロップダウンリストにディレクトリとグループの組み合わせが表示されているので、アプリケーションで使用したいものを選択し「Add」ボタンをクリックします。

以下の画面のように、必要なグループをすべて追加してください。

ここではConfluenceを例に手順を紹介しましたが、JIRAについても同様に設定を行なってください。

1-2.ConfluenceでCrowd連携の設定をする

(青い星) 以下の手順はConfluenceで実施します。

 続いて、ConfluenceのログインにCrowdに登録されているユーザを使用するように設定します。

Confluenceの管理画面を開き、画面左側のメニューから「ユーザー&セキュリティ」の「ユーザーディレクトリ」を選択します。

ユーザーディレクトリ画面では、最初は「Confluence Internal Directory」しか表示されていません。Crowdのユーザーディレクトリを使うようにするため、「ディレクトリの追加」ボタンをクリックします。

ディレクトリタイプを選択するドロップダウンリストがポップアップして表示されるので、リストから「Atlassian Crowd」を選択してください。選択できたら「次へ」ボタンをクリックします。

使用するCrowdサーバーの設定を行います。
名前」テキストボックスにはCrowdサーバーを識別するための名前を入力します。他と区別できる名前を入力してください。「サーバーURL」にはCrowdのベースURLを指定します。「アプリケーション名」と「アプリケーションのパスワード」はCrowdにConfluenceを登録するときに指定したものを入力します。
各項目を入力できたら「設定のテスト」 ボタンをクリックしてCrowdサーバーを利用できるか確認します。

入力した内容でCrowdが利用できると、画面上部に「接続テストに成功しました。」というメッセージが表示され、「保存およびテスト」ボタンが使用できる状態になります。テストに失敗したときは、代わりにエラーメッセージが表示されます。エラーの内容を確認して、対策を行なってください。

保存およびテスト」ボタンをクリックすると入力した内容が保存されてCrowdのユーザーディレクトリが利用できるようになります。

ユーザーディレクトリの画面に戻り、リストにCrowdのユーザーディレクトリが表示されています。この状態では、まだCrowdの持っている情報をConfluenceで取り込めていません。「同期」リンクを押してユーザーディレクトリを同期してください。Crowdに登録されているユーザーやグループの数によっては、同期処理に時間のかかることがあります。

Confluenceと他のアプリケーションを連携させたときのための設定もこのタイミングで行います。ConfluenceのリモートAPI機能を使って、リンク先アプリケーションが情報を取得できるように設定します。
Confluenceの管理画面から「詳細設定」を開きます。最初は「リモートAPI」にチェックがついていない状態になっているので、「編集」リンクをクリックします。

一般設定画面の内容が編集できるようになるので「リモートAPI」のチェックをオンにします。 その後、画面下部の「保存」ボタンをクリックしてください。

権限の設定を行なってください

CrowdのユーザーがConfluenceを利用できるようにするため、グローバル権限、スペース権限などの設定を行なってください。 

  • グローバル権限 Confluence管理画面より、「ユーザー&セキュリティ」の「グローバル権限」より、Crowdのユーザーやグループに対して、Confluenceのログインなど、各操作の権限を付与することができます。
  • スペース権限  ユーザー&セキュリティ」の「スペース権限」より、Crowdのユーザーやグループに対するスペース権限の既定値を設定することができます。 既存のスペースについては、各スペースのスペースツールで権限を付与します。

1-3.JIRAでCrowd連携の設定をする

(赤い星) 以下の手順はJIRAで実施します。

JIRAについても同様に、ログインにCrowdを使用するように設定します。

JIRAの歯車アイコンより、「ユーザ管理」を開き、「ユーザーディレクトリ」を選択します。

ユーザーディレクトリ画面では、最初は「JIRA Internal Directory」しか表示されていません。Crowdのユーザーディレクトリを使うようにするため、「ディレクトリの追加」ボタンをクリックします。

ディレクトリタイプを選択するドロップダウンリストがポップアップして表示されるので、リストから「Atlassian Crowd」を選択してください。選択できたら「次へ」ボタンをクリックします。

使用するCrowdサーバーの設定を行います。
名前」テキストボックスにはCrowdサーバーを識別するための名前を入力します。他と区別できる名前を入力してください。「サーバーURL」にはCrowdのベースURLを指定します。「アプリケーション名」と「アプリケーションのパスワード」はCrowdにJIRAを登録するときに指定したものを入力します。
各項目を入力できたら「設定のテスト」 ボタンをクリックしてCrowdサーバーを利用できるか確認します。

入力した内容でCrowdが利用できると、画面上部に 「接続テストに成功しました。」というメッセージが表示され、「保存およびテスト」ボタンが使用できる状態になります。テストに失敗したときは、代わりにエラーメッセージが表示されます。エラーの内容を確認して、対策を行なってください。

保存およびテスト」ボタンをクリックすると入力した内容が保存されてCrowdのユーザーディレクトリが利用できるようになります。

ユーザーディレクトリの画面に戻り、リストにCrowdのユーザーディレクトリが表示されています。この状態では、まだCrowdの持っている情報をJIRAで取り込めていません。「同期」リンクを押してユーザーディレクトリを同期してください。
Crowdに登録されているユーザーやグループの数によっては、同期処理に時間のかかることがあります。同期できていると、下の画面のように最後に同期した日時が表示されています。

権限の設定を行なってください

Crowdのユーザーディレクトリに登録されているユーザーとグループがJIRAを利用できるようにするため、グローバル権限や各種スキームの設定を行なってください。

  • グローバル権限 JIRAのユーザー管理画面の「グローバル権限」より、Crowdのユーザーやグループに対して、JIRAのログインなど、各操作の権限を付与することができます。
  • 権限スキーム 各プロジェクトの管理画面より権限スキームの設定で、Crowdのユーザーやグループに対して、各操作の権限を付与することができます。

2.ConfuluenceとJIRAのアプリケーションリンク設定

ConfluenceとJIRAの双方から相手側の持っているコンテンツを参照できるように、アプリケーションリンクを設定します。アプリケーションリンクはConfluenceとJIRAのどちらからでも設定できます。ここではConfluenceを使ってアプリケーションリンクを設定します。

2-1.アプリケーションリンクの設定

(青い星) 以下の手順はConfluenceで実施します。

 Confluenceの管理画面を開き、「管理」の「アプリケーションリンク」を選択します。下の画面のように、最初はリンクが設定されていないので、アプリケーションリンクはないというメッセージが表示されています。
今回は、JIRAとのアプリケーションリンクを新規作成しますので、JIRAベースURLを入力し、「新しいリンクを作成」をクリックします。

リンクの設定画面が表示されます。御社の環境に合わせてチェックを入れ、「続行」をクリックします。今回は、下記のようにチェックを入れて設定を行います。

サーバーには、同じセットのユーザとユーザ名がありますリンクするサーバとConfluenceのユーザが同一の場合は、チェックを入れます。
両方のインスタンスの管理者ですConfluenceに現在ログインしている管理者が、リンクするサーバの管理者でもある場合は、チェックを入れます。

 

「両方のインスタンスの管理者です」にチェックを入れた場合は、下記のようにリンク先のサーバの認証画面が表示されます。 「ユーザ名」と「パスワード」を入力し、ログインしてください。

リンク先のアプリケーションからConfluenceへ戻るリンクの確認画面が表示されます。 内容に問題がない場合は、「続行」をクリックします。

アプリケーションリンクの設定が終わると、Confluenceの管理画面にJIRAへのリンクが表示されます。

(赤い星) 以下の手順はJIRAで実施します。

この状態でJIRAの管理画面の「アドオン」から「アプリケーションリンク」を開くと、Confluenceとのリンクが作成されていることを確認できます。

2-2.アプリケーションリンクの認証方法の設定

アプリケーションリンク作成時の認証方法は、「OAuth」認証です。他の認証へ変更する場合は、以下の操作をお願いします。

(青い星) 以下の手順はConfluenceで実施します。

アプリケーションリンクの設定画面で「編集」リンクをクリックします。

 アプリケーションの構成画面が表示されます。
右側メニューの「送信認証」(Confluenceからリンク先アプリケーションへの認証)と「受信認証」(リンク先アプリケーションからConfluenceへの認証)の各画面で、利用する認証方法を一つ選択し、設定します。


認証方法のちがい


認証方法は、「信頼されたアプリケーション」 「OAuth」 「基本アクセス」から1つを設定します。 どれを設定するべきかは、以下をご参考にお願いします。

信頼されたアプリケーション双方で同じユーザを利用する場合(Crowdでユーザを一元管理している場合など)
OAuth双方で異なるユーザを利用する場合
基本アクセス特定のユーザからしかアクセスしない場合

(赤い星) 以下の手順はJIRAで実施します。

JIRAのアプリケーションリンクの設定画面で、「編集」リンクより上記で設定した認証方法の確認ができます。

 

3.シングルサインオンのための設定

ここまでの設定では、アプリケーションリンク機能を使ってJIRAとConfluenceの間を移動したときに、移動先のアプリケーションであらためてログイン操作が必要でした。
操作を簡単にするため、Crowdのユーザーディレクトリを使って一度ログインすれば他のアプリケーションをログイン不要で利用できる(シングルサインオン)ように設定できます。

3-1.Confluenceでの設定

(青い星) 以下の手順はConfluenceで実施します。

シングルサインオンの設定は、設定ファイルを編集して行います。
設定前に、「service confluence stop」コマンドを実行してConfluenceを終了しておきます。 「ps -ef | grep confluence」コマンドでConflluenceのインスタンスが終了していることを確認します。

# service confluence stop
executing using dedicated user
If you encounter issues starting up Confluence Standalone, please see the Installation guide at http://confluence.atlassian.com/display/DOC/Confluence+Installation+Guide
Server startup logs are located in /opt/atlassian/confluence/logs/catalina.out
Using CATALINA_BASE:   /opt/atlassian/confluence
Using CATALINA_HOME:   /opt/atlassian/confluence
Using CATALINA_TMPDIR: /opt/atlassian/confluence/temp
Using JRE_HOME:        /opt/atlassian/confluence/jre/
Using CLASSPATH:       /opt/atlassian/confluence/bin/bootstrap.jar:/opt/atlassian/confluence/bin/tomcat-juli.jar
Using CATALINA_PID:    /opt/atlassian/confluence/work/catalina.pid
# ps -ef | grep confluence
root     19393  1888  0 14:27 pts/0    00:00:00 grep confluence

編集するファイルは「/opt/atlassian/confluence/confluence/WEB-INF/classes/seraph-config.xml」です。以下のように、「authenticator class」要素をコメントアウト、コメント解除します。

/opt/atlassian/confluence/confluence/WEB-INF/classes/seraph-config.xml
    <!-- Default Confluence authenticator, which uses the configured user management for authentication. -->
    <!-- <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/> -->   ←この行をコメントアウト
 
    <!-- Custom authenticators appear below. To enable one of them, comment out the default authenticator above and uncomment the one below. -->
 
    <!-- Authenticator with support for Crowd single-sign on (SSO). -->
    <authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/>    ←この行をコメント解除
 
    <!-- Specialised version of the default authenticator which adds authenticated users to confluence-users if they aren't already a member. -->
    <!-- <authenticator class="com.atlassian.confluence.user.ConfluenceGroupJoiningAuthenticator"/> -->

続いて、同じディレクトリにある「crowd.properties」も以下のように編集します。

/opt/atlassian/confluence/confluence/WEB-INF/classes/crowd.properties
application.name                        testconfluence                       ←Crowdにアプリを登録したときの名前
application.password                    xxxxxxxx                              ←Crowdにアプリを登録したときのパスワード
application.login.url                   http://192.168.1.17/confluence/    ←ConfluenceのベースURLに変更
 
crowd.server.url                        http://192.168.1.17/crowd/services/    ←CrowdのベースURLに変更
crowd.base.url                          http://192.168.1.17/crowd/             ←CrowdのベースURLに変更
 
session.isauthenticated                 session.isauthenticated
session.tokenkey                        session.tokenkey
session.validationinterval              2
session.lastvalidation                  session.lastvalidation

3-2.JIRAでの設定

(赤い星) 以下の手順はJIRAで実施します。

次に、JIRAでも同様の設定を行います。設定前に、「service jira stop」コマンドを実行してJIRAを終了しておきます。「ps -ef | grep jira」コマンドでJIRAのインスタンスが終了していることを確認します。

# service jira stop
executing using dedicated user
                .....
          .... .NMMMD.  ...
        .8MMM.  $MMN,..~MMMO.
        .?MMM.         .MMM?.
     OMMMMZ.           .,NMMMN~
     .IMMMMMM. .NMMMN. .MMMMMN,
       ,MMMMMM$..3MD..ZMMMMMM.
        =NMMMMMM,. .,MMMMMMD.
         .MMMMMMMM8MMMMMMM,
           .ONMMMMMMMMMMZ.
             ,NMMMMMMM8.
            .:,.$MMMMMMM
          .IMMMM..NMMMMMD.
         .8MMMMM:  :NMMMMN.
         .MMMMMM.   .MMMMM~.
         .MMMMMN    .MMMMM?.
      Atlassian JIRA
      Version : 6.2.5
Detecting JVM PermGen support...
PermGen switch is supported. Setting to 384m
If you encounter issues starting or stopping JIRA, please see the Troubleshooting guide at http://confluence.atlassian.com/display/JIRA/Installation+Troubleshooting+Guide

Server startup logs are located in /opt/atlassian/jira/logs/catalina.out
Using CATALINA_BASE:   /opt/atlassian/jira
Using CATALINA_HOME:   /opt/atlassian/jira
Using CATALINA_TMPDIR: /opt/atlassian/jira/temp
Using JRE_HOME:        /opt/atlassian/jira/jre/
Using CLASSPATH:       /opt/atlassian/jira/bin/bootstrap.jar:/opt/atlassian/jira/bin/tomcat-juli.jar
Using CATALINA_PID:    /opt/atlassian/jira/work/catalina.pid
# ps -ef | grep jira
root     19397  1888  0 14:27 pts/0    00:00:00 grep jira

編集するファイルは「/opt/atlassian/jira/atlassian-jira/WEB-INF/classes/seraph-config.xml」です。以下のように、「authenticator class」要素をコメントアウト、コメント解除します。

/opt/atlassian/jira/atlassian-jira/WEB-INF/classes/seraph-config.xml
        <init-param>
            <param-name>invalidate.session.exclude.list</param-name>
            <param-value>ASESSIONID,jira.websudo.timestamp</param-value>
        </init-param>
    </parameters>
    <!-- CROWD:START - If enabling Crowd SSO integration uncomment the following SSOSeraphAuthenticator and comment out the JiraSeraphAuthenticator below -->
    <authenticator class="com.atlassian.jira.security.login.SSOSeraphAuthenticator"/>    ←この行のコメントを解除
    <!-- CROWD:END -->

    <!-- CROWD:START - The authenticator below here will need to be commented out for Crowd SSO integration -->
    <!-- <authenticator class="com.atlassian.jira.security.login.JiraSeraphAuthenticator"/> -->   ←この行をコメントアウト
    <!-- CROWD:END -->

    <!-- NB: the URL to redirect to is now specified by login.url above -->
    <services>
        <service class="com.atlassian.seraph.service.PathService">
            <init-param>
                <param-name>config.file</param-name>
                <param-value>seraph-paths.xml</param-value>
            </init-param>
        </service>

次に、Confluenceと同様にcrowd.propertiesファイルを編集するのですが、JIRAの場合は雛形となるファイルをCrowdからコピーする必要があります。以下のコマンドを実行してファイルをコピーしてください。

cp /opt/atlassian/crowd/client/conf/crowd.properties /opt/atlassian/jira/atlassian-jira/WEB-INF/classes/

コピーしたファイルは、次のように編集します。

/opt/atlassian/jira/atlassian-jira/WEB-INF/classes/crowd.properties
application.name                        testjira                        ←Crowdにアプリ登録したときの名前
application.password                    xxxxxxxx                        ←Crowdにアプリ登録したときのパスワード
application.login.url                   http://192.168.1.17/jira/    ←JIRAのベースURL

crowd.server.url                        http://192.168.1.17/crowd/services/    ←CrowdのベースURLに変更
crowd.base.url                          http://192.168.1.17/crowd/             ←CrowdのベースURLに変更


session.isauthenticated                 session.isauthenticated
session.tokenkey                        session.tokenkey
session.validationinterval              2
session.lastvalidation                  session.lastvalidation

3-3.連携動作確認

設定が終わったら停止していたアプリケーションを起動し、動作を確認します。ConfluenceのページにJIRAの課題へのリンクを作成するなどして、ConfluenceからJIRAに移動するときに再ログインがいらないことを確認してください。

リックソフト株式会社 は、日本でトップレベルのAtlassian Platinum Solution Partnerです。
大規模ユーザーへの対応実績が認められたEnterpriseの認定をうけ、高度なトレーニング要件をクリアし、小規模から大規模のお客様まで対応可能な実績を示したパートナー企業です。


Copyright © Ricksoft Co., Ltd. プライバシーポリシー お問い合わせ