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 |
サービス稼働ユーザー |
|
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 Type | Crowdと連携させるアプリケーションの種類を選択します。 |
---|---|
Name | Crowdがアプリケーションを識別するための名前を入力します。 他のアプリケーションと区別できる名前を指定してください。 のちに、連携するアプリケーション側でも設定します。 |
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
」要素をコメントアウト、コメント解除します。
<!-- 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
」も以下のように編集します。
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
」要素をコメントアウト、コメント解除します。
<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/
コピーしたファイルは、次のように編集します。
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. プライバシーポリシー お問い合わせ