【SAML】Amazon ConnectにサテライトオフィスからSSOしてみた

はじめに

こんにちは植木和樹@上越オフィスです。本日2018年12月11日、いよいよTokyoリージョンでAmazon Connectが利用可能になりました。

Amazon Connectにサテライトオフィス・シングルサインオン for G Suiteからシングルサインオンする設定をしてみました。本日はその備忘録です。

前提

対象読者

  • Amazon Connectの設定をして電話着信までしたことある方
  • SAMLによるシングルサインオンの流れをある程度把握している方
  • (サテライトオフィス管理者画面をご存知の方)

今回の設定

  • IAM IDプロバイダー: SateraitoSSO
  • IAM Role名: cm-awsconnectuser

全体的な流れ

  • Amazon Connectのインスタンスを作成する
  • サテライトオフィスで外部システム連携を新規作成する
  • IAM IDプロバイダーとIAM Roleを作成する
  • Amazon Connectでユーザーを作成する
  • サテライトオフィスのエンドポイントURLにアクセスする

詳しくは Amazon Connect での ID 管理用に SAML を設定する - Amazon Connect を参照してください。

Amazon Connectのインスタンスを作成する

まずはAmazon Connectのコンソールから新しいインスタンスを作成します。 インスタンスを作成する際にID管理SAML 2.0 ベースの認証を選択してください。

細かい作成手順は省きますので、各種ドキュメントを参考にしてください。

サテライトオフィスで外部システム連携を新規作成する

サテライトオフィスに管理者権限でログインし、外部システム連携管理から連携設定の追加します。

連携ID管理タイトルを入力し、連携サービスプロバイダーにAmazon Web Servicesを選択します。

連携ユーザーIDは「社員ID」を選択します。Amazon Web Services ロールには後ほど作成するIDプロバイダーとIAM RoleのARNをカンマで区切って指定します。 今回はIAM IDプロバイダーを「SateraitoSSO」、IAM Role名を「cm-awsconnectuser」としたので、下記のような文字列になります。

arn:aws:iam::123456789012:saml-provider/SateraitoSSO,arn:aws:iam::123456789012:role/cm-awsconnectuser

設定を一度保存したらSSO用証明書ファイルの作成&取得をクリックします。その後IdPメタデータXMLをダウンロードをクリックしてファイルを保存しておいてください。後ほどIDプロバイダーを作成する際に利用します。

IAM IDプロバイダーとIAM Roleを作成する

IAMマネージメントコンソールを開き、IDプロバイダーの作成を行います。

SAMLでIDプロバイダーを作成します。

次にSAML用のIAM Roleを作成します。

IAM RoleにAmazon Connectを利用する権限を与えます。

設定するポリシーのサンプルは Amazon Connect での ID 管理用に SAML を設定する - Amazon Connect に記載されています。 またAmazon ConnectのインスタンスARNは概要ページで確認することが可能です。

Amazon Connectでユーザーを作成する

Amazon Conect側にユーザーを作成します。このユーザー名はIdPのユーザーID(サテライトオフィスでいう「社員ID」)と一致している必要があります。

サテライトオフィスのエンドポイントURLにアクセスする

冒頭に書いたとおり、AWSでは "IdP initiated SSO" のみ対応しています。そのため認証の開始はIdPであるサテライトオフィス側からになります。

まずサテライトオフィス側のURLは「外部システム連携管理」画面に表示されている

https://sateraito-apps-sso.appspot.com/a/(ドメイン名)/sso/login/(連携ID)

になります。ここにリレーステート(RelayState)として遷移先となるAmazon ConnectのログインURLを付与してアクセスします。 リレーステートは Amazon Connect での ID 管理用に SAML を設定する - Amazon Connect に説明がある通り下記のURLとなっています。

https://(region-id).console.aws.amazon.com/connect/federate/(instance-id)

そのためアクセスするURLは下記のようになります(Tokyoリージョンの場合)。

https://sateraito-apps-sso.appspot.com/a/(ドメイン名)/sso/login/(連携ID)?RelayState=https://ap-northeast-1.console.aws.amazon.com/connect/federate/(インスタンスID)

このURLにブラウザからアクセスしてみてください。Amazon Connectのダッシュボード画面が表示されればログインに成功です!

まとめ

本日はSAMLを利用したAmazon Connectへのログイン設定について書いてみました。 これでエンタープライズな組織でも、既存ユーザー認証を利用しつつ Amazon Connect を利用することができますね! 簡単!

なお"IdP initiated SSO"(IdP側から認証を開始する方式) はサテライトオフィスさんに2018年3月に追加していただいた機能です。(AWSはIdP initiated SSOでないとSAML認証が使えなかったので)

ところでSAMLの設定は結構難しく、グーグル検索してもMicrosoft ADFSを利用したサンプルか解説ページがほとんどです。私は3年ほど関係する文書を何度何度も見返して、試してみて、ようやく最近全体の流れと設定すべき勘所がわかるようになり大変苦労しました。 今回の備忘録がAWSマネージメントコンソールにSAMLを用いたSSOをしたい方の参考になれば幸いです。