はじめに
前回、OpenAMをインストールしてSSOの準備まで行いました。
今回はその環境を使って実際にAWSとのSSOを設定していきます。
シングルサインオンやOpenAMについてはこちらをご覧ください。
また、設定方法についてはこちらの記事を参考にさせていただきました。
http://yomon.hatenablog.com/entry/2015/10/01/051604
設定を始める前に、まずは簡単な用語説明をしておきます。
SAMLは、一方が認証し、一方が認証したユーザの識別子などの情報を受け取ることで連携をします。
このとき、以下のような名称で呼ばれます。
- 認証する側
- IdP(Identify Provider)
- 情報を受け取る側
- SP(Service Provider)
今回はローカルのOpenAMがIdP、AWSがSPとなりますね。
それでは設定をしていきましょう。
1. メタデータの取得
SAMLで連携するためには、事前に信頼関係を結んでおく必要があります。
これをトラストサークル(Circle of Trust)と呼びます。
SAMLトラストサークルを構築するには、お互いのメタデータを交換する必要がありますので、OpenAMとAWSのメタデータを以下から取得しておきましょう。
AWSのSAML用メタデータ
https://signin.aws.amazon.com/static/saml-metadata.xml
OpenAMのSAML用メタデータ
http://localhost:8080/AM-eval-5.0.0/saml2/jsp/exportmetadata.jsp
上記URLにアクセスすると、XML形式のメタデータが表示されます。
適当な名称で保存しておきます。
2. OpenAM側の設定
OpenAMに管理ユーザとしてログインします。
デフォルトの場合はamAdminです。
IdPの設定
以下のように画面を進めましょう。
「Top Level Realm」→「Configure SAMLv2 Providers」→「Create Hosted Identity Provider」
署名鍵には「test」を選択し、トラストサークル名は任意の名前(例ではaws)とします。
最後に右上の「設定」を押下して完了です。
SPの設定
次にSPの設定をします。TOPから以下のように進みましょう。
「Top Level Realm」→「Configure SAMLv2 Providers」→「Configure Remote Service Provider」
ここで1で用意しておいたAWSのメタデータをアップロードしましょう。
このときOpenAMのメタデータと間違えないように注意してください。
前段で作成したトラストサークルに追加するようにします。
「設定」を押下して完了です。
3. AWS側の設定
次にAWS側の設定をしていきましょう。
AWSのマネジメントコンソールにログインします。
IDプロバイダーの作成
IAMに遷移し、IDプロバイダーから「プロバイダの作成」を選択します。
プロバイダーのタイプは「SAML」、プロバイダー名は任意の名前。
メタデータドキュメントにはOpenAMから取得したメタデータを選択します。
無事作成が完了すればOKです。
ロールの作成
次にSAMLでログインしたユーザ用のロールを作成します。
ロールタイプは「IDプロバイダアクセス用のロール」から、中段の「SAMLプロバイダへの〜」を選択します。
ポリシーの内容を確認した後、ロールにアタッチするポリシーを選択します。
ここでSAMLユーザに許可する操作を決めましょう。
今回はS3の権限だけ渡しておきます。
ロール名に任意な値を入れて作成完了です。
今回はsaml_usersという名前にしました。
作成したロールを確認しましょう。
赤枠箇所「ロールARN」と「信頼されたエンティティ」は後ほど使うので控えておきます。
あと少しというところですが、今回はここまでにしておきますね。
次回は残りの設定といよいよ実際に動かしてみたいと思います。