Amazon Connect での IAM を使用した SAML の設定 - Amazon Connect

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Connect での IAM を使用した SAML の設定

Amazon Connect は、AWS を使用した Security Assertion Markup Language (SAML) 2.0 の設定による ID フェデレーションをサポートすることで、自組織から Amazon Connect インスタンスへのウェブベースのシングルサインオン (SSO) を可能にします。これにより、ユーザーは、SAML 2.0 互換 ID プロバイダー (IdP) によってホストされた組織内のポータルにサインインすると、Amazon Connect 用の別の認証情報を入力する必要なくシングルサインオンで Amazon Connect インスタンスにログインすることができます。

重要な注意事項

開始する前に、以下の点に注意してください。

  • この手順は、Amazon Connect Global Resiliency のデプロイには適用されません。Amazon Connect Global Resiliency に適用される情報については、「ID プロバイダー (IdP) を Amazon Connect Amazon Connect グローバルレジリエンシー SAML サインインエンドポイントと統合する」を参照してください。

  • Amazon Connect インスタンスの ID 管理方法として SAML 2.0 ベースの認証を選択するには、AWS Identity and Access Management フェデレーション の設定が必要です。

  • Amazon Connect のユーザー名は、ID プロバイダーによって返された SAML レスポンスで指定された RoleSessionName SAML 属性と一致する必要があります。

  • Amazon Connect は、リバースフェデレーションをサポートしていません。つまり、Amazon Connect に直接ログインすることはできません。試してみると、「セッションが期限切れになりました」というメッセージが表示されます。認証は、サービスプロバイダー (SP) ではなく ID プロバイダー (IdP) から行う必要があります (Amazon Connect)。

  • ほとんどの ID プロバイダーは、デフォルトでグローバル AWS サインインエンドポイントをアプリケーションコンシューマーサービス (ACS) として使用し、これは米国東部 (バージニア北部) でホストされています。この値をオーバーライドして、インスタンスが作成された AWS リージョン に一致するリージョンのエンドポイントを使用することをお勧めします。

  • SAML を使用する場合でも、すべての Amazon Connect ユーザー名は大文字と小文字が区別されます。

  • SAML で設定された古い Amazon Connect インスタンスがあり、Amazon Connect ドメインを更新する必要がある場合は、「個人用設定」を参照してください。

Amazon Connect での SAML の使用の概要

次の図は、ユーザーを認証して Amazon Connect とのフェデレーションを行う際の SAML リクエストのステップが実行される順序を示しています。これは脅威モデルのフロー図ではありません。


                Amazon Connect を使用した SAML 認証リクエストのフローの概要

SAML リクエストは、次のようなステップを通過します。

  1. ユーザーは、Amazon Connect にログインするためのリンクが含まれている内部ポータルにアクセスします。リンクは、ID プロバイダーで定義されたものです。

  2. フェデレーションサービスが組織の ID ストアからの認証をリクエストします。

  3. ID ストアはユーザーを認証し、フェデレーションサービスに認証レスポンスを返します。

  4. 認証が成功すると、フェデレーションサービスはユーザーのブラウザに SAML アサーションを送信します。

  5. ユーザーのブラウザは SAML アサーションを AWS サインイン SAML エンドポイント (https://signin.aws.amazon.com/saml) にポストします。AWS サインインでは、SAML リクエストの受信、リクエストの処理、ユーザーの認証を行い、認証トークンを使用して Amazon Connect エンドポイントへのブラウザのリダイレクトを開始します。

  6. Amazon Connect は、AWS からの認証トークンを使用してユーザーを認証し、ユーザーのブラウザで Amazon Connect を開きます。

Amazon Connect に対して SAML ベースの認証を有効にする

SAML 認証を使用するには、以下の手順で Amazon Connect インスタンスを有効化し、設定する必要があります。

  1. Amazon Connect インスタンスを作成し、ID 管理のための SAML 2.0 ベースの認証を選択します。

  2. ID プロバイダーと AWS の間での SAML フェデレーションを有効にします。

  3. Amazon Connect インスタンスに Amazon Connect ユーザーを追加します。インスタンスを作成したときに作成した管理者アカウントを使用して、インスタンスにログインします。[ユーザー管理] ページに移動し、ユーザーを追加します。

    重要
    • ユーザー名で使用できる文字のリストについてはCreateUserUsername アクションのプロパティのドキュメントを参照してください。

    • Amazon Connect ユーザーと AWS IAM ロールの関連付けのために、ユーザー名は AWS IAM フェデレーションの統合で設定されている RoleSessionName と正確に一致する必要があります。通常は、ディレクトリ内のユーザー名になります。ユーザー名の形式は、次の図に示すように、RoleSessionNameAmazon Connect ユーザーの形式のどちらにも一致する必要があります。

      
                                    rolesessionname と Amazon Connect ユーザーのベン図。
  4. SAML アサーション、認証レスポンス、リレーステートに向けて ID プロバイダーを設定します。ユーザーが ID プロバイダーにログインします。ログインできたら、Amazon Connect インスタンスにリダイレクトされます。IAM ロールを使用して、AWS と連携します。これで、Amazon Connect にアクセスできるようになります。

インスタンスの作成時に SAML 2.0 ベースの認証を選択する

Amazon Connect インスタンスを作成する際、ID 管理用に SAML 2.0 ベースの認証オプションを選択します。2 番目のステップでインスタンスの管理者を作成するとき、指定するユーザー名が既存のネットワークディレクトリ内のユーザー名と完全に一致しなければなりません。既存のディレクトリを通じてすでにパスワードが管理されているため、管理者ユーザーのパスワードを指定するオプションはありません。管理者は、Amazon Connect で作成され、管理者 セキュリティプロファイルが割り当てられます。

ユーザーを追加するには、管理者アカウントを使用して IdP から Amazon Connect インスタンスにログインします。

ID プロバイダーと AWS の間で SAML フェデレーションを有効にする

Amazon Connect に対して SAML ベースの認証を有効化するには、IAM コンソールで ID プロバイダーを作成する必要があります。詳細については、「SAML 2.0 フェデレーティッドユーザーが AWS Management Console にアクセス可能にする」を参照してください。

AWS の ID プロバイダーを作成するためのプロセスは、Amazon Connect と同じです。上記のフロー図のステップ 6 で、クライアントは、AWS Management Console ではなく Amazon Connect インスタンスに送信されます。

AWS との SAML フェデレーションを有効にするには、次のような手順が必要です。

  1. AWS で SAML プロバイダーを作成します。詳細については、「SAML ID プロバイダーの作成」を参照してください。

  2. AWS Management Console と SAML 2.0 フェデレーションを行うための IAM ロールを作成します。フェデレーション用に 1 つのロールのみを作成します (必要なロールは 1 つのみで、フェデレーションに使用されます)。IAM ロールによって、ID プロバイダーを通じてログインするユーザーが AWS でどのアクセス許可を得るかが決まります。この例では、Amazon Connect にアクセスするためのアクセス許可が与えられます。Amazon Connect の機能へのアクセス許可を制御するには、Amazon Connect 内のセキュリティプロファイルを使用します。詳細については、「SAML 2.0 フェデレーション用のロールの作成 (コンソール)」を参照してください。

    ステップ 5 では、[プログラムによるアクセスと AWS マネジメントコンソールによるアクセスを許可する] を選択します。手順のトピック (SAML 2.0 フェデレーション用のロールを作成する準備をするには) に示されている信頼ポリシーを作成します。次のアクセス許可を Amazon Connect インスタンスに割り当てるポリシーを作成します。アクセス許可は、「SAML ベースのフェデレーション用のロールを作成するには」の手順のステップ 9 で始まります。

    SAML フェデレーションに向けて IAM ロールにアクセス権限を割り当てるポリシーを作成するには
    1. [Attach permissions policy (アクセス許可ポリシーをアタッチする)] ページで、[ポリシーの作成] を選択します。

    2. [Create policy] (ポリシーの作成) ページで [JSON] を選択します。

    3. 以下のサンプルポリシーのいずれかをコピーして JSON ポリシーエディタに貼り付け、既存のテキストを置き換えます。いずれかのポリシーを使用して SAML フェデレーションを有効化することも、特定の要件に合わせてポリシーをカスタマイズすることもできます。

      このポリシーを使用すると、特定の Amazon Connect インスタンス内のすべてのユーザーに対してフェデレーションが有効化されます。SAML ベースの認証の場合、作成したインスタンスの Resource の値を ARN に置き換えます。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "connect:GetFederationToken", "Resource": [ "arn:aws:connect:us-east-1:361814831152:instance/2fb42df9-78a2-2e74-d572-c8af67ed289b/user/${aws:userid}" ] } ] }

      このポリシーを使用すると、特定の Amazon Connect インスタンスへのフェデレーションが有効化されます。connect:InstanceId の値をインスタンスのインスタンス ID に置き換えます。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement2", "Effect": "Allow", "Action": "connect:GetFederationToken", "Resource": "*", "Condition": { "StringEquals": { "connect:InstanceId": "2fb42df9-78a2-2e74-d572-c8af67ed289b" } } } ] }

      このポリシーを使用すると、複数のインスタンスに対してフェデレーションを有効化することができます。リストされたインスタンス ID が括弧で囲まれていることに注意してください。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement2", "Effect": "Allow", "Action": "connect:GetFederationToken", "Resource": "*", "Condition": { "StringEquals": { "connect:InstanceId": [ "2fb42df9-78a2-2e74-d572-c8af67ed289b", "1234567-78a2-2e74-d572-c8af67ed289b"] } } } ] }
    4. ポリシーを作成したら、[Next: Review] を選択します。その後、「SAML 2.0 フェデレーション用のロールの作成 (コンソール)」トピックの「SAML ベースのフェデレーション用のロールを作成するには」プロシージャの手順 10 に戻ります。

  3. ネットワークを AWS 用の SAML プロバイダーとして設定します。詳細については、「SAML 2.0 フェデレーティッドユーザーが AWS Management Console にアクセス可能にする」を参照してください。

  4. 認証レスポンス用の SAML アサーションを設定します。詳細については、「認証レスポンスの SAML アサーションを設定する」を参照してください。

  5. Amazon Connect の場合は、[アプリケーション開始 URL] を空白のままにします。

  6. ID プロバイダーのアプリケーションコンシューマーサービス (ACS) の URL をオーバーライドして、Amazon Connect インスタンスの AWS リージョン に一致するリージョンのエンドポイントを使用します。詳細については、「リージョンの SAML エンドポイントを使用するように ID プロバイダーを設定する」を参照してください。

  7. ID プロバイダーのリレーステートを、Amazon Connect インスタンスをポイントするように設定します。リレーステートに使用する URL は、次のとおりです。

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

    region-id を、Amazon Connect インスタンスを作成したリージョン名 (例えば、米国東部 (バージニア北部) を指す us-east-1) で置き換えます。instance-id をインスタンスのインスタンス ID で置き換えます。

    GovCloud インスタンスの場合、URL はhttps://console.amazonaws-us-gov.com/:

    • https://console.amazonaws-us-gov.com/connect/federate/instance-id

    注記

    インスタンスのインスタンス ID を検索するには、Amazon Connect コンソールでインスタンスエイリアスを選択します。インスタンス ID は、[概要] ページに表示されるインスタンス ARN の中の「/instance」の後にある数字と文字のセットです。例えば、以下のインスタンス ARN では、178c75e4-b3de-4839-a6aa-e321ab3f3770 の部分がインスタンス ID です。

    arn:aws:connect:us-east-1:450725743157:instance/178c75e4-b3de-4839-a6aa-e321ab3f3770

リージョンの SAML エンドポイントを使用するように ID プロバイダーを設定する

最高の可用性を実現するには、デフォルトのグローバルエンドポイントの代わりに Amazon Connect インスタンスに一致するリージョン SAML エンドポイントを使用することをお勧めします。

以下のステップは IdP に依存しません。すべての SAML IdP (Okta、Ping、OneLogin、Shibboleth、ADFS、AzureAD など) で機能します。

  1. アサーションコンシューマーサービス (ACS) の URL を更新 (またはオーバーライド) します。これを行うには 2 つの方法があります。

    • オプション 1: AWS SAML メタデータをダウンロードして、Location を任意のリージョンに更新します。この新しいバージョンの AWS SAML メタデータを IdP にロードします。

      以下に、リビジョンの例を示します。

      <AssertionConsumerService index="1" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://region-id.signin.aws.amazon.com/saml"/>

    • オプション 2: IdP の AssertionConsumerService (ACS) URL をオーバーライドします。プリベイク AWS 統合を提供する Okta などの IdP の場合、AWS 管理コンソールで ACS URL をオーバーライドできます。同じ形式を使用して、任意のリージョンにオーバーライドします (例えば、https://region-id.signin.aws.amazon.com/saml)。

  2. 関連付けられたロールの信頼ポリシーを更新します。

    1. このステップは、特定の ID プロバイダーを信頼するすべてのアカウントのすべてのロールに対して実行する必要があります。

    2. 信頼関係を編集し、単一の SAML:aud 条件を多値条件に置き換えます。例:

      • デフォルト: "SAML:aud": "https://signin.aws.amazon.com/saml"。

      • 変更後: "SAML:aud": [ "https://signin.aws.amazon.com/saml", "https://region-id.signin.aws.amazon.com/saml" ]

    3. 信頼関係に対するこれらの変更は、事前に行ってください。インシデント中に計画の一部として実行すべきではありません。

  3. リージョン固有のコンソールページのリレー状態を設定します。

    1. この最後のステップを行わなかった場合、リージョン固有の SAML サインインプロセスによって同じリージョン内のコンソールサインインページにユーザーが転送されるという保証はありません。このステップは ID プロバイダーごとの違いが多いですが、ディープリンクを達成するためのリレー状態の使用を示しているブログがあります (例えば、「How to Use SAML to Automatically Direct Federated Users to a Specific AWS Management Console Page」(SAML を使用してフェデレーティッドユーザーを特定の AWS 管理コンソールページに自動的に転送する方法))。

    2. お使いの IdP に適したテクニック/パラメータを使用して、リレー状態を一致するコンソールエンドポイントに設定します (例えば、https://region-id.console.aws.amazon.com/connect/federate/instance-id)。

注記
  • 追加のリージョンで STS が無効になっていないことを確認します。

  • 追加のリージョンで STS アクションを妨げる SCP がないことを確認します。

リレーステートの URL で送信先を使用する

ID プロバイダーのリレーステートを設定する際、URL で destination 引数を使用すると、ユーザーを Amazon Connect インスタンスの特定のページに移動させることができます。例えば、エージェントのログイン時に直接 CCP を開くリンクを使用します。ユーザーには、インスタンス内の該当ページへのアクセス権限を付与するセキュリティプロファイルが割り当てられていなければなりません。例えば、エージェントを CCP に送信するには、次のような URL をリレーステートに使用します。URL 内の送信先の値には URL エンコードを使用する必要があります。

  • https://us-east-1.console.aws.amazon.com/connect/federate/instance-id?destination=%2Fccp-v2%2Fchat&new_domain=true

有効な URL のもう 1 つの例は、次のとおりです。

  • https://us-east-1.console.aws.amazon.com/connect/federate/instance-id?destination=%2Fagent-app-v2

GovCloud インスタンスの場合、URL はhttps://console.amazonaws-us-gov.com/: したがって、アドレスは次のようになります。

  • https://console.amazonaws-us-gov.com/connect/federate/instance-id?destination=%2Fccp-v2%2Fchat&new_domain=true

Amazon Connect インスタンス外の URL (独自のカスタムウェブサイトなど) に宛先引数を設定する場合、まずその外部ドメインをアカウントの承認済みオリジンに追加します。例えば、次の順番でステップを実行します。

  1. Amazon Connect コンソールで、承認済みのオリジンに https://your-custom-website.com を追加します。手順については、「統合アプリケーションの許可リストを使用する」を参照してください。

  2. ID プロバイダーで、のリレーステートを https://your-region.console.aws.amazon.com/connect/federate/instance-id?destination=https%3A%2F%2Fyour-custom-website.com に設定します。

  3. エージェントがログインすると、直接 directly to https://your-custom-website.com に移動します。

Amazon Connect インスタンスにユーザーを追加します。

インスタンスにユーザーを追加するときは、ユーザー名が既存のディレクトリ内のユーザー名と完全に一致することを確認してください。名前が一致しない場合、そのユーザー名を持つユーザーアカウントが Amazon Connect に存在しないことになるため、ユーザーは、ID プロバイダーにログインすることはできても Amazon Connect にはログインできません。ユーザーは、[ユーザー管理] ページで手動で追加するか、CSV テンプレートを使って一括アップロードします。ユーザーを Amazon Connect に追加したら、セキュリティプロファイルや、他のユーザー設定を割り当てることができます。

ユーザーが ID プロバイダーにログインしたが、同じユーザー名を持つアカウントが Amazon Connect に存在しない場合は、次のように「Access denied」というメッセージが表示されます。


                ID プロバイダーを通じて Amazon Connect にログインしようとしたユーザーのユーザー名が Amazon Connect に存在しない場合に表示されるエラーメッセージ。
テンプレートを使ってユーザーを一括アップロードする

ユーザーをインポートするには、CSV ファイルに追加します。その後、CSV ファイルをインスタンスにインポートすると、そのファイルにすべてのユーザーが追加されます。CSV ファイルをアップロードしてユーザーを追加する場合は、SAML ユーザーのテンプレートを必ず使用してください。Amazon Connect の [ユーザー管理] ページにあります。SAML ベースの認証用には、別のテンプレートを使用します。テンプレートを以前ダウンロードしたことがある場合も、SAML ベースの認証を使ってインスタンスを設定した後、[ユーザー管理] ページで提供されているバージョンをダウンロードしてください。テンプレートに、E メールやパスワードの列を含めることはできません。

SAML ユーザーログインとセッションの長さ

Amazon Connect で SAML を使用する場合、ユーザーは、ID プロバイダー (IdP) から Amazon Connect にログインする必要があります。IdP は AWS と統合するように構成されています。認証後、セッションのトークンが作成されます。ユーザーは Amazon Connect インスタンスにリダイレクトされ、シングルサインオンを使用して Amazon Connect に自動ログインします。

ベストプラクティスとして、Amazon Connect の使用を終了した Amazon Connect ユーザーがログアウトするプロセスを定義することも大切です。ユーザーは、Amazon Connect と ID プロバイダーの両方からログアウトする必要があります。そうしないと、そのセッションのトークンがセッションの長さにわたって有効であるため、同じコンピュータに次にログインした人物がパスワードなしで Amazon Connect にログインできることになります。12 時間有効です。

セッションの有効期限について

Amazon Connect セッションの有効期限は、ユーザーのログインから 12 時間後です。12 時間後、ユーザーは、通話中であっても自動的にログアウトされます。エージェントが 12 時間以上ログインしたままになっている場合は、期限が切れる前にセッショントークンを更新する必要があります。新しいセッションを作成するには、エージェントは Amazon Connect および IdP からログアウトし、再度ログインします。そうすれば、トークンで設定されているセッションタイマーがリセットされるため、エージェントが顧客との通話中にログアウトされてしまう事態を防ぐことができます。ログインしているユーザーのセッションの有効期限が切れると、次のようなメッセージが表示されます。ユーザーが Amazon Connect を再度使用するためには、ID プロバイダーにログインする必要があります。


                SAML ベースのユーザーに対して表示される、セッションの有効期限が切れたときのエラーメッセージ。
注記

ログイン中に [セッションが有効期限切れです] メッセージが表示される場合は、ほとんどの場合、セッショントークンを更新するだけで解決できます。ID プロバイダーに移動して、ログインします。Amazon Connect ページを更新します。引き続きこのメッセージが表示される場合は、IT チームにお問い合わせください。