[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