概要
前回までで、Single-Roleの場合についてはOpenAMのダッシュボードよりAWSマネジメントコンソール(以降、AMC)へのSSOができるようになった。今回は、Multi-Roleの場合についても同様にSSOできるようにするための手順を書きます。
設定
-
OpenAM側の対象ユーザの編集画面を開き[User Alias List]に、AWSロールの"Role ARN"と"Trusted Entities"をカンマで繋げた値を追加する。
-
SP[urn:amazon:webservices]の[Assertion Processing]のページへ行き、[Attribute Map]へhttps://aws.amazon.com/SAML/Attributes/Role=iplanet-am-user-alias-listを追加する。(https://aws.amazon.com/SAML/Attributes/Role=employeeNumberがあれば削除)。
以上で完了。
動作

↑↑ログインユーザにAWSロールである「Administrator」「OpenAMSAML」を関連付けた場合
まとめ
たったこれだけです。ですが、複数ロールをSAMLResponseに乗せてAMC側へどのように渡せばいいのかでかなり悩みました。
最初は、Groupにて設定するのが管理的にも綺麗かと思ったのですがAssertionに余計なタグが出てしまったりしてうまくいかず。
最終的に[User Alias List]を使うことにしたのですが、もっと良い方法ありそうに思います。OktaやOneLogin、Pingfederateでは簡単に設定できるようです。
参考
- Chapter 4. Configuring Realms
- CONFIGURING SAML MULTI-ROLE FOR AMAZON WEB SERVICE (AWS)
- How to Set Up SSO to the AWS Management Console for Multiple Accounts by Using AD FS and SAML 2.0
- Configure Amazon Web Services SSO for multiple roles and accounts
- Mapping user roles/groups from LDAP to SAML assertions in OpenAM
- Configuring SAML Assertions for the Authentication Response