使用 IAM 設定適用於 Amazon Connect 的 SAML - Amazon Connect

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 IAM 設定適用於 Amazon Connect 的 SAML

Amazon Connect 透過使用 AWS IAM 設定安全性聲明標記語言 (SAML) 2.0 來支援聯合身分,以啟用從您的組織到 Amazon Connect 執行個體的 Web 型的單一登入 (SSO)。這允許您的使用者登入組織中由 SAML 2.0 相容身分提供者 (IdP) 託管的入口網站,並透過單一登入體驗登入 Amazon Connect 執行個體,而無需為 Amazon Connect 提供單獨的憑證。

重要說明

開始之前,請注意下列事項:

  • 這些說明不適用於 Amazon Connect 全球恢復能力部署。如需適用於 Amazon Connect 全球恢復能力的資訊,請參閱 將您的身分提供者 (IdP) 與 Amazon Connect 全球備援 SAML 登入端點整合。

  • 選擇以 SAML 2.0 為基礎的身份驗證作為 Amazon Connect 執行個體的身份管理方法需要 AWS Identity and Access Management 聯合的組態。

  • Amazon Connect 中的使用者名稱必須與身分提供者傳回的 SAML 回應中指定的 RoleSessionName SAML 屬性相符。

  • Amazon Connect 不支援反向聯合。也就是說,您無法直接登入 Amazon Connect。如果您嘗試過,您會收到工作階段已過期訊息。驗證應該從身分提供者 (IdP) 而非服務提供者 (SP) (Amazon Connect) 完成。

  • 預設情況下,大多數身分提供者會使用全域 AWS 登入端點做為應用程式消費者服務 (ACS),該服務託管於美國東部 (維吉尼亞北部)。我們建議您覆寫此值,以使用與執行個體建立 AWS 區域 位置相符的區域端點。

  • 即使在使用 SAML 時,所有 Amazon Connect 使用者名稱都會區分大小寫。

  • 如果您有使用 SAML 設定的舊 Amazon Connect 執行個體,而且您需要更新您的 Amazon Connect 網域,請參閱 個人設定

將 SAML 與 Amazon Connect 搭配使用概述

下圖說明 SAML 請求對使用者進行身份驗證並與 Amazon Connect 聯合的步驟執行順序。它不是威脅模型的流程圖。

SAML 身分驗證請求與 Amazon Connect 的請求流程概觀​。

SAML 請求需經歷以下步驟:

  1. 使用者瀏覽至內有 Amazon Connect 登入連結的內部入口網站。​ 該連結是由身分提供者定義。

  2. 聯合服務要求組織的身分存放區提供身分驗證。

  3. 身分存放區驗證該名使用者,並向聯合服務傳回驗證回應。

  4. 身分驗證成功後,聯合服務會將 SAML 聲明發佈至使用者的瀏覽器。

  5. 使用者的瀏覽器會將 SAML 聲明發佈到 SAML 端點 (https://signin.aws.amazon.com/saml) 中的 AWS 登入。AWS 登入會接收 SAML 請求、處理請求、對使用者進行身份驗證,並使用驗證記號啟動重新導向 Amazon Connect 端點的瀏覽器。

  6. Amazon Connect 會使用來自 AWS 的身分驗證字符來授權使用者並在瀏覽器中開啟 Amazon Connect。

啟用 SAML 型的 Amazon Connect 身分驗證

以下為啟用和設定 SAML 身分驗證來搭配 Amazon Connect 執行個體使用的必要步驟:

  1. 建立 Amazon Connect 執行個體,選擇 SAML 2.0 型身分驗證做為身分管理方式。

  2. 在您的身分提供者與 AWS 之間啟用 SAML 聯合。

  3. 將 Amazon Connect 使用者新增到您的 Amazon Connect 執行個體。使用您在建立執行個體時所建立的管理員帳戶,登入您的執行個體。前往 使用者管理 頁面,然後新增使用者。

    重要
    • 如需使用者名稱中允許的字元清單,請參閱 CreateUser 動作中的 Username 屬性文件。

    • 由於 Amazon Connect 使用者和 AWS IAM 角色的關聯性,使用者名稱必須完全符合透過 AWS IAM 聯合整合設定的 RoleSessionName,這通常最終會成為您目錄中的使用者名稱。使用者名稱的格式應與 RoleSessionNameAmazon Connect 使用者的格式條件交集相符,如下圖所示:

      Rolesessionname 和 Amazon Connect 使用者的文氏圖。
  4. 設定您身分提供者的 SAML 聲明、身分驗證回應並轉送狀態。使用者登入至您的身分提供者。成功後,他們會重新導向到您的 Amazon Connect 執行個體。IAM 角色用於與 AWS 聯合,以允許存取 Amazon Connect。

在執行個體建立期間選擇以 SAML 2.0 為基礎的身分驗證

在建立您的 Amazon Connect 執行個體時,請選擇以 SAML 2.0 為基礎的身分驗證選項以進行身分管理。在第二個步驟中,當您建立一個執行個體管理員時,您指定的使用者名稱必須完全符合現有網路目錄中的使用者名稱。由於密碼是由現有目錄所管理,因此您無法為系統管理員指定密碼。系統管理員建立在 Amazon Connect 中,並指派管理員安全性設定檔。

您可以使用管理員帳戶新增其他使用者,再透過您的 IdP 登入您的 Amazon Connect 執行個體。

在您的身分供應商與 AWS 之間啟用 SAML 聯合

若要為 Amazon Connect 啟用 SAML 為基礎的身分驗證,您必須在 IAM 主控台建立一個身分提供者。如需詳細資訊,請參閱讓 SAML 2.0 聯合身分使用者存取 AWS 管理主控台

該程序會為 AWS 建立身分提供者,相同於 Amazon Connect 所使用的建立程序。上述圖表的步驟 6 顯示用戶端會傳送到您的 Amazon Connect 執行個體,而非 AWS Management Console。

以 AWS 啟用 SAML 聯合的必要步驟包括:

  1. 在 AWS 中建立 SAML 提供者。如需詳細資訊,請參閱建立 SAML 身分提供者

  2. 使用 AWS Management Console​ 為 SAML 2.0 聯合建立 IAM 角色。只為聯合身分建立一個角色 (聯合只需要使用一個角色)。IAM 角色決定了透過身分提供者登入的使用者在 AWS 中有哪些許可。在這種情況下,許可是用來存取 Amazon Connect 的。您可使用 Amazon Connect 中的安全性設定檔來控制 Amazon Connect 功能的許可。如需詳細資訊,請參閱建立適用於 SAML 2.0 聯合的角色 (主控台)

    在步驟 5 中,選擇允許程式化和 AWS 管理主控台存取。依照準備建立用於 SAML 2.0 聯合身分的角色程序中主題所述,建立信任政策。然後,建立可為您的 Amazon Connect 執行個體指派許可的政策。許可會在程序為 SAML 為基礎的聯合身分建立角色的步驟 9 啟動。

    為 SAML 聯合身分的 IAM 角色建立指派許可的政策
    1. 連接許可政策 頁面上,選擇 建立政策

    2. 建立政策頁面上,選擇 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. 建立政策之後,選擇 下一步:檢閱。然後回到為 SAML 2.0 共同建立角色 (主控台) 主題中的為 SAML 型聯合建立角色程序中的步驟 10。

  3. 將網路設定為適用於 AWS 的 SAML 提供者。如需詳細資訊,請參閱讓 SAML 2.0 聯合身分使用者存取 AWS 管理主控台

  4. 為身分驗證回應設定 SAML 聲明。如需詳細資訊,請參閱為身分驗證回應設定 SAML 聲明

  5. 對於 Amazon Connect,請將應用程式啟動 URL 保留空白。

  6. 覆寫身分提供者中的應用程式消費者服務 (ACS) URL,以使用與 Amazon Connect 執行個體的 AWS 區域 一致的區域端點。如需更多詳細資訊,請參閱 將身分提供者設定為使用區域性 SAML 端點

  7. 設定身分提供者的轉送狀態以指向您的 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 執行個體,網址為 https://console.amazonaws-us-gov.com/

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

    注意

    您可透過選擇 Amazon Connect 主控台中的執行個體別名找到您執行個體的 ID。執行個體 ID 是概觀頁面上顯示之執行個體 ARN 中 '/instance' 之後的一組數字和字母。例如,下列執行個體 ARN 的執行個體 ID 為 178c75e4-b3de-4839-a6aa-e321ab3f3770

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

將身分提供者設定為使用區域性 SAML 端點

為了提供最佳可用性,我們建議使用與 Amazon Connect 執行個體一致的區域性 SAML 端點,而非使用預設的全域端點。

下列步驟與 IdP 無關;它們適用於任何 SAML IdP (例如,Okta、Ping、OneLogin、Shibboleth、ADFS、AzureAD 等)。

  1. 更新 (或覆寫) 聲明消費者服務 (ACS) URL。您有兩種方法可以執行此操作:

    • 選項 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。對於像 Okta 這樣提供預製 AWS 整合的 IdP,您可以在 AWS 管理主控台中覆寫 ACS URL。使用相同的格式來覆寫您選擇的區域 (例如,https://region-id.signin.aws.amazon.com/saml)。

  2. 更新關聯角色信任政策:

    1. 需要對信任指定身分提供者的每個帳戶中的每個角色執行此步驟。

    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 登入程序會將使用者轉送至相同區域內的主控台登入頁面。此步驟依身分提供者而異,但有一個部落格 (例如,如何使用 SAML 自動將聯合身分使用者導向至特定 AWS 管理主控台頁面),顯示使用轉送狀態來實現深度連結。

    2. 使用適合您 IdP 的技術/參數,將轉送狀態設定為符合的主控台端點 (例如,https://region-id.console.aws.amazon.com/connect/federate/instance-id)。

注意
  • 請確定您的其他區域未停用 STS。

  • 確保沒有 SCP 阻止 STS 在其他區域中操作。

在您的轉送狀態 URL 中使用目的地

當您為身分提供者設定轉送狀態時,您就可以在 URL 中使用目的地引數,將使用者導引至 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 的另一個範例是:

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

對於 GovCloud 執行個體,網址為 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://您的自訂網站.com 新增到您核准的來源。如需說明,請參閱 使用整合應用程式的允許清單

  2. 在您的身分提供者中將轉送狀態設定為 https://your-region.console.aws.amazon.com/connect/federate/instance-id?destination=https%3A%2F%2Fyour-custom-website.com

  3. 當您的客服人員登入時,他們會直接存取 https://您的自訂網站.com。

將使用者新增到您的 Amazon Connect 執行個體。

新增使用者至您的連接執行個體,確認使用者名稱與現有目錄中的使用者名稱完全相符。如果名稱不相符,則使用者可登入至身分提供者,但不能登入至 Amazon Connect,因為 Amazon Connect 中不存在該使用者名稱的使用者帳戶。您可以在 使用者管理 頁面上手動新增使用者,或是以 CSV 範本大量上傳使用者。在新增使用者至 Amazon Connect 後,您可以指派安全性設定檔和其他使用者設定。

當使用者登入至身分提供者,但在 Amazon Connect 未找到相同使用者名稱的帳戶,則會顯示以下存取遭拒訊息。

當使用者試圖透過其身分提供者登入至 Amazon Connect,但該使用者名稱並不在 Amazon Connect 中時,將會顯示錯誤訊息。
使用範本以大量上傳使用者

您可以將使用者新增到 CSV 檔案,完成使用者匯入。然後,您就可以將該 CSV 檔案匯入到您的執行個體,藉此將所有使用者新增到檔案。如果您是上傳 CSV 檔案來新增使用者,請確保您使用的範本適用於 SAML 使用者。您可以在 Amazon Connect 的使用者管理頁面上找到。以 SAML 為基礎的身分驗證使用了不同的​範本。如果您之前已下載了範本,則在將執行個體設為使用 SAML 為基礎的身分驗證後,您應該於 使用者管理​ 頁面上下載可用的版本。範本不應包含電子郵件或密碼欄位。

SAML 使用者登入與工作階段持續時間

當您在 Amazon Connect 中使用 SAML 時,使用者必須透過您的身分提供者 (IdP) 登入 Amazon Connect。您的 IdP 可設定成與 AWS 整合。通過身分驗證之後,其工作階段的字符隨即建立。使用者接著會重新導向到您的 Amazon Connect 執行個體,並使用單一登入自動登入到 Amazon Connect。

根據最佳實務,當使用者結束使用 Amazon Connect 時,您也應該定義 Amazon Connect 使用者登出的程序。他們應同時從 Amazon Connect 和您的身分提供者登出。如果不這麼做,下一個登入相同電腦的人,便可不用密碼來登入 Amazon Connect,因為上一個工作階段期間的符記仍然有效。它的有效期為 12 小時。

關於工作階段過期

Amazon Connect 工作階段會在使用者登入 12 小時後過期。12 小時後,即使使用者目前還在進行通話,也將被自動登出。​ 如果您的客服人員登入已超過 12 個小時,則其必須在字符逾期之前重新整理工作階段。若要建立新的工作階段,客服人員必須登出 Amazon Connect 和您的 IdP,然後重新登入。此程序將會重設該符記的計時器,因此在與客戶接通的聯絡期間,客服人員便不會被登出。若使用者已登入而工作階段過期,將顯示以下訊息。若要再次使用 Amazon Connect,使用者必須登入至您的身分提供者。

以 SAML 為基礎的使用者工作階段過期時會顯示錯誤訊息。
注意

如果您在登入時看到工作階段過期訊息,則可能只需要重新整理工作階段記號。前往身分提供者並登入。重新整理 Amazon Connect 頁面。如果您仍然收到此訊息,請聯絡您的 IT 團隊。