[SAML]Amazon ConnectにAzureADからSSOしてみた
Amazon Connectに対してシングルサインオンを設定したのでその備忘録です。
シングルサインオンすると何が嬉しいのか
- ユーザ側
- 普段ログインしているID/PASSでログインできる。
- 管理者側
詳細
①AzureAD側作業 その1:SSO用のアプリケーション作成
- Azure Portalにログインして、 「アプリケーションの追加」を選び、「ギャラリーから追加する」からAWSを選ぶ。
- 適当な名前をつけて「追加」と選択する。
- シングルサインオン - SAML を選択する。
- 任意の(なんでもいい)識別子を設定する。
- 証明書(フェデレーション メタデータXMLの方)をダウンロードする。
- ユーザーの追加で、SSOアクセスさせたいユーザ名、もしくは、グループ名を選択しておく。
②AWS側作業その1: Amazon Connectインスタンスの用意
- Amazon Connectを開き、「インスタンスを追加する」を選択し、「SAML2.0~」を選択する。
- ユーザーは後で作るので、一旦スキップにしておく。
- 以降はデフォルトのまま選択し、インスタンスを作成する。
- 「今すぐ始める」でAmazon Connectインスタンスに一旦ログインし、ユーザ作成画面を開き、「Add New User」でSSO連携したいユーザを登録しておく。
- 一旦、Amazon Connectインスタンスからはログアウト。Amazon Connectを再び開き、インスタンス一覧から作成したインスタンスを選択し、概要を確認。あとで使うので、「インスタンスARN」の値を控えておく
③AWS側作業 その2:SSO用設定
- IAM画面から「ID プロバイダー」を選択する。
- プロバイダーのタイプを「SAML」にして、AzureADからダウンロード済みのXMLをアップロードする。
- IAM Roleを作りたいので、「ロール」を選択する。
- SAML2.0フェデレーションを選び、SAMLプロバイダーには上記で作成したIDプロバイダ名を指定して、「プログラムによるアクセスとAWSマネジメントコンソール~」を選択する。
- 何も設定せず、「次のステップ」へ。
- ロール名にわかりやすい名前をつけて、ロールの作成をする。
- 作成したロールに対してAmazon Connectを利用する権限を付与する。
- 「JSON」タブを選択して、下記のように記載。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "connect:GetFederationToken", "Resource": [ "<AWSを側作業その一で事前に確認したARN値>/user/${aws:userid}" ] } ] }
- 下記のように表示されるので「Create policy」する。
- 作成したIDプロバイダとロールのARNをあとで使うので控えておく。
④AzureAD側作業 その2:Azure側にAWS側に施したSSO用の設定を追加。
- 再び、Azure Active Dirctoryを選択して、「シングルサインオン」 - 「ユーザ属性と要求」を選択して、下記のような値を入力する。 ※基本的にはRoleとRoleSessionNameだけ追加すればいいだけのはず。
名前 | 名前空間 | ソース属性 |
---|---|---|
nameidentifier | http://schemas.xmlsoap.org/ws/2005/05/identity/claims | user.userprincipalname |
emailaddress | http://schemas.xmlsoap.org/ws/2005/05/identity/claims | user.mail |
givenname | http://schemas.xmlsoap.org/ws/2005/05/identity/claims | user.givenname |
name | http://schemas.xmlsoap.org/ws/2005/05/identity/claims | user.userprincipalname |
surname | http://schemas.xmlsoap.org/ws/2005/05/identity/claims | user.surname |
Role | https://aws.amazon.com/SAML/Attributes | [AWS側作業その2のロールのARN],[AWS側作業その2のID ProviderのARN] |
RoleSessionName | https://aws.amazon.com/SAML/Attributes | user.userprincipalname |
- 続いて「基本的な SAML 構成」を選択して、リレー状態に下記URLを入力する。
- 入力するURLは
https://ap-northeast-1.console.aws.amazon.com/connect/federate/<インスタンスID>
を入力する。 インスタンスIDはAWS側作業その1で確認したAmazon Connect インスタンスのARNから「instance/」以降の値を入力する。(例:arn:aws:connect:ap-northeast-1:276429087547:instance/hogepiyoの場合、hogepiyoがインスタンスID)
アクセス先を制限するため、「条件付きアクセス」を選択。要件に合ったアクセス条件を設定する。
参考にさせて頂いたURL
Single Sign-On With Amazon Connect And Azure Active Directory - Perficient Blogs