2012年10月11日木曜日

OpenAM を使ってシングルサインオンを構築する (Google Apps 連携編)

こんにちは。サイオステクノロジーの小川です。

前回まで OpenDJ と Tomcat を使用して LDAP サーバとアプリケーションサーバの構築を行いました。


今回はこれらを利用して OpenAM のインストールから Google Apps との連携までの設定をしていきます。以下に手順を記載します。



・OpenAM のインストール


1. ForgeRock社のページから OpenAM の WAR ファイルを ダウンロード する。

2. Tomcat Manager にログインし、「WARファイルの配備」の「選択」から openam.war を選び「配備」ボタンを押してアップロードを行う。なお、今回は openam_10.0.0.war のファイル名を openam.war に名前を変更したものをアップロードしている。


OpenSSO Services が起動されていることを確認する。


3. OpenAM にアクセス (http://ホスト名:8080/openam/) する。

以下の画面のようなエラーが表示された場合は /usr/share/tomcat6/ ディレクトリ以下の所有グループを tomcat に変更する。

# chown -R root:tomcat /usr/share/tomcat6/


4. 設定オプションの画面に移るので、カスタム設定の「新しい設定の作成」を選択する。

5. デフォルトユーザー amadmin のパスワードを設定し、「次へ」ボタンを押す。


6. OpenAM のサーバ設定を行う。


サーバURL
 OpenAM サーバの URL を指定。(例: http://openam.example.com:8080)

cookie ドメイン
 Cookie ドメインを指定。(例: .example.com)

プラットフォームのロケール
 en_US を指定。

設定ディレクトリ
 OpenAM の設定ディレクトリを指定。(例: /usr/share/tomcat6/openam)


7. OpenAM の設定情報が保存されるデータストアを指定する。既存の OpenAM インスタンスは存在しないため、「最初のインスタンス」を選択する。


設定データストア
 「OpenAM」を指定。

ポート
 OpenDJ が接続を受け付けるポート番号 50389 番を指定。

Admin Port
 OpenDJ の管理者コントロールパネルで使用するポート番号 4444 番を指定。

JMX port
 JMX が使用するポート番号 1689 番を指定。

ルートサフィックス
 ルートサフィックスを指定。(例. dc=osstc,dc=example, dc=com)


8. ユーザーデータストアの設定を行う。今回は自前で用意した OpenDJ の LDAP サーバを利用するため、「その他のユーザーストア」を選択する。


ユーザーストアタイプ
 「OpenDJ」を選択。

ディレクトリ名
 OpenDJ サーバのホスト名を指定。(例: ldap.example.com)

ポート
 389 番を指定。

ルートサフィックス
 ルートサフィックスを指定。(例. dc=osstc,dc=example,dc=com)

ログイン ID
 cn=Directory Manager を指定。

パスワード
 Directory Manager のパスワードを指定。


9. サイト設定は「いいえ」を選択し、「次へ」ボタンをクリックする。


10. ポリシーエージェントユーザーのパスワードの設定を行う。デフォルトユーザーとポリシーエージェントユーザーのパスワードは異なる必要があり、同じものを指定した場合はエラーとなる。


11.「設定ツールの概要と詳細」の画面で設定内容の確認を行う。問題がなければ「設定の作成」ボタンをクリックする。


12.「設定が完了しました」のウインドウが表示され設定が完了する。「ログインに進む」のリンクをクリックする。


13. OpenAM のログイン画面が表示されるので、ユーザー名 amadmin と手順 5. で決めたパスワードでログインする。


14. OpenAM の管理者コンソールにアクセスする。



以上で OpenAM のインストールは完了です。




・シングルサインオンの設定をして Google Apps と連携させる


いよいよ Google Apps との連携を行います。OpenAM と Google Apps でそれぞれシングルサインオンの設定をします。なお、Google Apps を未だ導入されていないという方は こちら から登録を行なって下さい。導入の仕方については、Google のヘルプページや以前書いたブログを参考にしてみて下さい。

1. OpenAM をアイデンティティープロバイダ (IdP) として機能させる為、OpenAM の管理者コントロールパネルの「ホストアイデンティティープロバイダの作成」から設定を行う。


2. 「メタデータ」と「トラストサークル」を設定し、「設定」ボタンを押す。


メタデータ
 名前: サーバのプロトコル、ホスト名、ポート番号、および配備 URI を指定。
 署名鍵: キーストアの鍵を選択。(※1)

トラストサークル
 新しいトラストサークル: ID 連携を行うトラストサークル (COT) 名を入力する。


(※1)
デフォルトで選択できる鍵は OpenAM にて提供される「test」のみですが、keytool コマンドで新しく作成することができます。

以下に新たな署名鍵を作成する手順を記載します。

2.1. keystore.jks があるディレクトリに移動する。

# cd /usr/share/tomcat6/openam/openam

2.2. -alias オプションで KeyStore 内で識別する鍵の名前を決める。ここでは「mykey」としている。

# keytool -genkey -keyalg RSA -alias mykey -keystore keystore.jks

[設定例]
Enter keystore password:changeit
What is your first and last name?
  [Unknown]: Yorozu Taro
What is the name of your organizational unit?
  [Unknown]: OSSTC
What is the name of your organization?
  [Unknown]: Yorozu Team
What is the name of your City or Locality?
  [Unknown]: Tokyo
What is the name of your State or Province?
  [Unknown]: Minatoku
What is the two-letter country code for this unit?
  [Unknown]: JP
Is CN=Yorozu Taro, OU=OSSTC, O=Yorozu Team, L=Tokyo, ST=Minatoku, C=JP correct?
  [no]: yes

Enter key password for 
 (RETURN if same as keystore password): パスワードを入力。 
Re-enter new password: パスワードを再入力。

2.3. keystore.jks の有効期限を 365 日に設定する。

# keytool -selfcert -alias mykey -keystore keystore.jks -validity 365 -storepass changeit
Enter key password for パスワードを入力

3. 「Google Apps を設定する」のリンクをクリックする。


4.「シングルサインオン用の Google Apps の設定」の画面に移るので、「新しい値」のフォームに
Google Apps で登録したプライマリドメイン名を入力して「追加」をクリックし、「作成」を押す。



5. 「メタデータは正常に設定されました。」というウインドウが開くので「了解」をクリックする。

6.「Google Apps のシングルサインオンの設定」画面に移るので、「ダウンロードするには、ここをクリックします。」ボタンを押して検証証明書をダウンロードする。



なお、この画面で表示された URL は Google Apps のシングルサインオンの設定で使用するので、メモ帳などにコピーしておいてください。

「終了」ボタンをクリックする。


7. Google Apps の管理者コントロールパネル (https://www.google.com/a/example.com) にログインし、「高度なツール」の「シングルサインオン (SSO) の設定」をクリックする。

8. 「シングル サインオン (SSO) の設定」画面に移るので以下の設定を行い、「変更を保存」を押す。


シングル サインオンを有効にする
 チェックを入れる。

ログイン ページの URL
 手順 6. の画面で「サインインページの URL:」に表示された URL を入力する。

ログアウト ページ URL
 手順 6. の画面で「サインインページの URL:」に表示された URL を入力する。

パスワード変更 URL
 手順 6. の画面で「パスワード変更の URL:」に表示された URL を入力する。

認証の確認
 「ファイルを選択」をクリックし、手順 6. の画面でダウンロードした証明書ファイルを選択して「アップロード」する。(※2)

ドメイン固有の発行元を使用
 チェックを入れる。

ネットワーク マスク
 本記事では何も設定しない。

(※2)
ダウンロードした証明書の「-----END CERTIFICATE-----」の文字列を以下のように改行する必要があります。

この作業をしないと Google Apps にアップロードしたときに「無効な証明書または公開キー」というエラーが表示されます。

問題なくアップロードが完了した場合は、「認証ファイルのアップロードが完了しました」と表示されます。



9. OpenAM のコントロールパネルの アクセス制御 > / (最上位のレルム) > 対象 > 新規... でユーザの登録を行う。



10. 「新しい ユーザー」の画面で以下の項目を入力し「了解」をクリックする。これでユーザー登録が完了する。


ID
 認証で使用するユーザーの ID を指定する。

姓 / 名 / フルネーム
 登録するユーザーの名前を指定する。

パスワード
 認証で使用する ID のパスワードを指定する。


11. OpenAM のログイン画面から手順 11. で作成したユーザーの ID とパスワードでログインができるか確認する。


12. ログイン後、ユーザー情報の確認画面に移る。この画面で登録した情報の変更ができる。今回は「パスワード:」の項目の「編集」からパスワードの変更を行う。


13.「新しいパスワード:」と「パスワードの再入力:」に新しいパスワードの入力をし「了解」ボタンをクリックする。


正常にパスワードが変更されれば画面上に「パスワードが変更されました。」と表示される。


14. ユーザーをログアウトし OpenAM のログアウトの画面に移る事を確認する。


15. Google Apps のサービスにアクセスし OpenAM のログイン URL にリダイレクトするか確認する。ここでは Gmail の URL (https://mail.google.com/a/ドメイン名) にアクセスしている。


16. 手順 11. で登録したユーザーの ID とパスワードで Google Apps のサービスにログインができるかどうか確認する。


17. Gmail にログインできる事を確認する。


Gmail からログアウトした場合は、OpenAM のログイン画面 (手順 11. の画面) の URL にリダイレクトされる。




以上で OpenAM と Google Apps のシングルサインオンの設定は完了です。お疲れさまでした。


最後に ForgeRock 社より提供されている OpenAM 10.0.0 に関するドキュメントの URL を掲載します。興味のある方は確認してみてください。


0 件のコメント:

コメントを投稿