概要
OpenAMを使って、AWSマネジメントコンソール ( AMC ) にIdP-InitiatedなSingle-Sign-On(SSO)をする手順を書きます。
前提
- OpenAMのインストールが完了していること(まだの場合は、[こちら]
(http://qiita.com/Tom3/items/4f5634244efc20196928))
手順
ざっくりな手順は以下のとおり。
- Circle of Trust ( CoT ) を構成する
- ID連携を行う
CoTを構成する
まず最初に、IdPとSP間でメタデータの交換(相互設定)を行います。
- OpenAMに管理者アカウントでログインして、[Top Level Realm]>[Create SAMLv2 Providers]>[Create Hosted Identity Provider]の順で選択したら、以下の値を入力して「Configure」をクリックする。
- Signing Key = test
- New Circle of Trust = AWSSSO
なお、metadataは [title](http://~)[こちら](https://signin.aws.amazon.com/static/saml-metadata.xml)より入手して、アップロードしてください。"Your Identity Provider has been configured"と表示されたら、「register a service provider」リンクをクリックします。
- OpenAMへAMCのメタデータを登録する AMCにログインしてIAMの「IDプロバイダ」画面にアクセスし、「プロバイダの作成」をクリックします。「プロバイダの設定」画面では以下の値を設定して「次のステップ」をクリックします。
- プロバイダーのタイプ=SAML
- プロバイダ名=OpenAM
- メタデータドキュメント=http://sso.xxxx.com:8080/openam/saml2/jsp/exportmetadata.jspよりダウンロードしアップロードする。(拡張子をXMLにする)
「プロバイダー情報の検証」画面に遷移するので、「作成」をクリックすればSAMLプロバイダーの作成が完了します。
ID連携を行う
- IAMロールを作成する
-
ここでは「SAMLRole」というロールを作成します。
- ロール画面で「新しいロールの作成」をクリックする。
- ロール名に「SAMLRole」と入力し「次のステップ」をクリックする。
- ロールタイプの選択で「IDロールプロバイダアクセス用のロール」>「SAMLプロバイダへのWebSSOアクセスを付与」を選択する。
- 追加したIDプロバイダを選択して「次のステップ」をクリックする。
- ポリシードキュメントを確認して「次のステップ」をクリックする。
- ポリシー「ReadOnlyAccess」をアタッチして「次のステップ」をクリックする。
- 内容を確認して「ロールの作成」をクリック。
- 作成したロールの概要を開き、「ロールARN」「信頼されたエンティティ」を控えます。
- ~~SSOするIAMユーザを作成する~~
- ~~ここでは「samluser」というIAMユーザを作成します。パスワード設定は不要です。~~
- OpeAMに対応するユーザを作成する
- 「Top Level Realm」>「Subjects」の順に選択し、「New」をクリックする。
- 以下の値を入力して「OK」をクリックする。 ID: samluser First Name: samluser Last Name: samluser Full Name: samluser test Password: samluser3 User Status: Active
- 「samluser」のカスタム属性「Employee Number」に「ロールARN」と「信頼されたエンティティ」をカンマで繋げた値を入力して、「Save」をクリックする。
- SP「urn:amazon:web service」の設定画面を開き、「Assertion Processing」タブの「Attribute Map」に以下を追加して「Save」をクリックする。 https://aws.amazon.com/SAML/Attributes/Role=employeeNumber https://aws.amazon.com/SAML/Attributes/RoleSessionName=uid (Emailを連携したい場合は、https://aws.amazon.com/SAML/Attributes/RoleSessionName=mail)
動作確認
次のURLにアクセスして、「samluser」でログインします。
http://sso.xxxx.com:8080/openam/idpssoinit?metaAlias=/idp&spEntityID=urn:amazon:webservices
訂正
- 2016.4.4 AWS側にSSO用のユーザー作成の必要はありません。