ずっと気になっていたManagement ConsoleのSSOにようやく成功した。手順はこのサイトの情報に従って、ほぼその通りにやったのになかなか上手く行かず、結局問題はWindows認証だった。。。

1. ADサーバの準備

使用したのはWindows Server 2008 R2のEnterprise Edition。ADはひとまず何も考えずに導入すれば問題ない。

ホスト名 adfs-test.adfs.local

2.  ADにグループとユーザを作成

最後にIAMロールと名前でマッピングして利用するだけなので、AD側の権限は考慮する必要はなし。下記のようにユーザとグループを作れば問題なし。グループ名は最後にマッピングするので「AWS-」を必ずつけること。

【テスト用アカウント】

ユーザ bob
メールアドレス bob@adfs.local
所属グループ AWS-Production、AWS-Dev

※メールアドレス設定を忘れないように

【ADFS2.0サービス実行アカウント】

ユーザ ADFSSVC

3.  ADFSのインストール

今回はADサーバ上にADFSも導入した。MicrosoftのサイトからADFS2.0をダウンロードしてインストール。サーバマネージャから導入できるADFSではおそらくダメなのだと思う。手順は英語だが、画面付きの親切手順なのでほとんど迷うところは無い。

4.  オレオレ証明書作成

手順にもリンクがあるが、IISマネージャから自己署名入り証明書の作成をしておく。

5. フェデレーションサービス作成

インストール後に起動されたADFS2.0の管理画面から、こちらも手順の通りに。証明書が作成済であれば自動的に選択される。サービスの実行アカウントは先程作成したADFSSVCを設定する。

WS000000

今のところ毎回「サービス設定の構成」で警告が出る。既知事例とのことなので、下記のコマンドを実行する。

C:\>setspn -a host/localhost adfssvc
CN=ADFSSVC,CN=Users,DC=adfs,DC=local の ServicePrincipalNames を登録しています
 host/localhost
更新されたオブジェクト

6. SAMLメタデータ取得

ADFSサーバ上でSAMLメタデータ(xmlファイル)を取得しておく。下記URLから取得できる。IEはセキュリティ設定がうるさいので、ブラウザはここで既にFirefoxを使った。この時点で「セキュリティ例外」に追加して証明書をインストールしてしまおう。

https://adfs-test.adfs.local/FederationMetadata/2007-06/FederationMetadata.xml

※ホスト名の部分は環境により変更する

7. SAMLプロバイダー作成

ここでAWSに。IAMからIdentity Providerを選択し、Create SAML Providerから作成。先程ダウンロードしたメタデータファイルを利用する。

Provider名 ADFS

8. IAMロール作成

手順の通りIAMからロール作成。Select Role Typeで「Grant Web Single Sign-On (WebSSO) access to SAML providers」を選択。Permissionはそれっぽく設定しておく。ロール名は最後にマッピングするので、「ADFS-」を必ずつけること。

ロール SAML Provider Permissions
ADFS-Production ADFS Administrator Access
ADFS-Dev ADFS Amazon S3 Read Only Access

9. 証明書利用者信頼の追加

またADFS管理画面に戻り、証明書利用者信頼の追加を行う。要求規則を計4件設定する作業が面倒だが、手順の通り丁寧に設定する。AWSアカウントのIDは環境により変更する。

10. Windows認証設定

IISマネージャからWindows認証設定を行う。詳細設定から「拡張保護」をオフにする。設定が完了したら、IISとADFSを再起動しておこう。

11. いよいよテスト

下記のURLから接続テスト。先程メタデータをダウンロードしたときに証明書をインストールしてあれば問題なく動作するはず。ここでもFirefoxから接続したが、IEや Chromeでは証明書管理が別となる為、もう少し手順が必要かもしれない。

https://adfs-test.adfs.local/adfs/ls/IdpInitiatedSignOn.aspx

※ホスト名の部分は環境により変更する

WS000002 WS000003

ここで散々上手く行かなかったので毎度緊張する。

WS000004

WS000005

上手く行った!あとは先程設定したロールで動作するかきちんと確認してみよう。

Windows認証のデバッグ方法やIE、Chrome用の手順もまとめておきたい。余裕があればpowershell手順も。

 

TOP