AWS とのシングルサインオンを試してみる – 設定 前編

はじめに

前回、OpenAM をインストールして、SSO の準備をしました。
今回はその環境を使って実際にAWSとのSSOを設定していきます。

設定方法など、こちらの記事を参考にさせていただきました。
http://yomon.hatenablog.com/entry/2015/10/01/051604

設定を始める前に、簡単な用語説明をしておきます。

SAMLは、一方が認証し、一方が認証したユーザの識別子などの情報を受け取ることで連携をします。
このとき、
・認証する側を「アイデンティティプロバイダ(IdP)」
・情報を受け取る側を「サービスプロバイダ(SP)」
と呼びます。
今回はローカルの OpenAM が IdP、 AWSが SP ですね。

それでは設定をしていきましょう。

1. メタデータの取得

SAMLで連携するためには、事前に信頼関係を結んでおく必要があります。
これをトラストサークル(Circle of Trust)と呼びます。

トラストサークルを構築するには、お互いのメタデータを交換する必要があります。
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 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」と「信頼されたエンティティ」は後ほど使うので控えておきます。

あと少しというところですが、今回はここまでにしておきます。
次回は残りの設定と、いよいよ実際に動かしてみたいと思います。

APN Consulting Partner
スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。