Amazon Connect に okta から SAML ログインする
Amazon Connect アドベントカレンダー 2025、16日目の記事です!
クラスメソッドさんとギークフィードさん、ユニフォームネクスト、AWS Japanさんの有志が募ってチャレンジしている企画になります。
(アドベントカレンダーのカレンダー一覧はこちら↓)
はじめに
Amazon Connect では、認証方式として SAML をサポートしています。
今回は、一般的な IDaaS 製品のひとつである okta を経由した Amazon Connect へのシングルサインオンを実装していこうと思います。
設定方法
Amazon Connect インスタンス作成
Amazon Connect インスタンス作成画面で、ID管理に SAML2.0 を指定し、インスタンスを作成します。

okta アプリケーション作成
アプリカタログから「AWSアカウントフェデレーション」を検索して、アプリ統合を追加します。

AWSログインURLに https://console.aws.amazon.com/ と入力して、次へを押します。

サインオン方法で、SAML2.0 を選択し、デフォルトのリレー状態に以下を入力します。
https://{Amazon Connect インスタンスのリージョン}.console.aws.amazon.com/connect/federate/{Amazon Connect インスタンスID}

「IDプロバイダーのメタデータ」を右クリックし、リンク先を別名で保存します。

IAM Policy 作成
以下、2つの IAM Policy を作成します。
- okta 用ロール取得ポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:ListRoles",
"iam:ListAccountAliases"
],
"Resource": "*"
}
]
}
- Amazon Connect フェデレーテッドログイン用許可ポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": "connect:GetFederationToken",
"Resource": [
"arn:aws:connect:ap-northeast-1:{アカウントID}:instance/{インスタンスID}/user/${aws:userid}"
]
}
]
}
※ {アカウントID} は AWS アカウントIDを、 {インスタンスID} は、先ほど作成したAmazon Connect インスタンスのID を入力します。
IAM ユーザー作成
okta からロール一覧を取得するための IAM ユーザーを作成します。

先ほど作成した、「okta 用ロール取得ポリシー」をアタッチします。

さらに、アクセスキーを作成して、控えておきます。

ID プロバイダ追加
IAM の 「ID プロバイダ」をクリックします。

SAML を選択し、メタデータドキュメントで、先ほどダウンロードした「IDプロバイダのメタデータ」を選択します。

IAM Role 作成
SAML2.0 フィデレーション を選択して、IDプロバイダーに、追加した ID プロバイダを指定します。

次へを押して、先ほど作成した IAM ポリシーを選択します。

ロール名を入力して、作成します。

okta 高度なサインオン設定
IDプロバイダーの ARN に、先ほど作成した ID プロバイダー の ARN を入力します。

完了ボタンを押して、アプリケーションを作成します。
okta プロビジョニング設定
プロビジョニングタブで、「APIの有効化」をクリックします。

先ほど作成した、IAM ユーザーのアクセスキーを入力して保存します。

「アプリへ」のユーザー作成を有効化して保存します。

有効化を選択して保存をクリック。
アプリケーションの割り当て
アプリケーションを割り当てたいユーザーやグループを選択して、割り当てを行います。
Role と SAML User Roles の両方で、先ほど作成した IAM ロールを選択して保存します。

Amazon Connect ユーザー追加
Amazon Connect コンソール上で、作成したインスタンスの Emergency access から、Amazon Connect の管理画面にアクセスします。

「ログイン」に、okta で割り当てたユーザーID(メールアドレス)を入力して、ユーザーを追加します。

ログインしてみる
okta ダッシュボードに追加された「Amazon Connect SAML」をクリックします。

ログインできました!

補足
Relay State
okta のアプリケーションの設定で、「デフォルトのリレー状態」の末尾にリダイレクトしたいパスや URL を指定することで、ログイン後の遷移先をコントロールすることが可能です。
https://{Amazon Connect インスタンスのリージョン}.console.aws.amazon.com/connect/federate/{Amazon Connect インスタンスID}?destination=/ccp-v2
上記のように設定すると、Amazon Connect の CCP 画面に遷移できます。
同様に、独自ドメインでホストしている カスタム CCP にも遷移させることができます。
https://{Amazon Connect インスタンスのリージョン}.console.aws.amazon.com/connect/federate/{Amazon Connect インスタンスID}?destination=https://connect.example.com/ccp
さいごに
今回は、okta で SSO を行いましたが、SAML をサポートしている IDaaS であれば、似たような手順で構築できると思います。
なお、SCIM のような自動プロビジョニングは提供されていないため、手動で管理画面からユーザーを追加するか、okta であれば workflows で、ユーザー作成用の Lambda を別途作成してリクエストするといった対応が必要になります。
また、Amazon Connect は IdP initiated のみへの対応となります。
SP initiated(Amazon Connect の画面を開いた際に、自動的に okta に認証しにいく動き)はできないので注意が必要です。
このようにいくつか制約はあるものの、都度 ID/パスワードでのログインから解放されるのは、大変ありがたいですよね。
もし、現在 SAML に対応した IDaaS を利用している場合は、選択肢に入れてみてください!
参考
Discussion