SAML 使用 設定 IAM Amazon Connect - Amazon Connect

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

SAML 使用 設定 IAM Amazon Connect

Amazon Connect 透過使用 設定安全宣告標記語言 (SAML) 2.0 AWS IAM 來支援身分聯合,以啟用從組織到 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 中的使用者名稱必須符合 RoleSessionName SAML身分提供者傳回的SAML回應中指定的屬性。

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

  • 根據預設,大多數身分提供者會使用全域 AWS 登入端點作為 Application Consumer Service (ACS),該服務託管在美國東部 (維吉尼亞北部)。我們建議您覆寫此值,以使用與執行個體建立 AWS 區域 位置相符的區域端點。

  • 所有 Amazon Connect 使用者名稱都區分大小寫,即使使用 也是如此SAML。

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

SAML 搭配 Amazon Connect 使用 的概觀

下圖顯示SAML對請求進行身分驗證使用者和與 Amazon Connect 聯合的順序。它不是威脅模型的流程圖。

使用 Amazon Connect 進行SAML身分驗證請求的請求流程概觀。

SAML 請求會執行下列步驟:

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

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

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

  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型身分驗證

需要下列步驟才能啟用和設定與 Amazon Connect 執行個體搭配使用的SAML身分驗證:

  1. 建立 Amazon Connect 執行個體,並選取身分管理的 SAML 2.0 型身分驗證。

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

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

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

    • 由於 Amazon Connect 使用者與 AWS IAM角色的關聯,使用者名稱必須與聯合整合 RoleSessionName 設定的 AWS IAM 完全相符,後者通常會是您目錄中的使用者名稱。使用者名稱的格式應與 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 執行個體。

啟用身分提供者與 SAML 之間的聯合 AWS

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

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

啟用 SAML 聯合所需的步驟 AWS 包括:

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

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

    在步驟 5 中,選擇允許程式設計 AWS 和管理主控台存取 。建立程序中主題所述的信任政策 準備為 SAML2.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" } } } ] }

      使用此政策為多個執行個體啟用聯合。請注意所列執行個體 周圍的括號IDs。

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

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

  4. 設定身分驗證回應的 SAML Assertions。如需詳細資訊,請為身分驗證回應 設定 SAML Assertions

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

  6. 覆寫身分提供者URL中的 Application Consumer Service (ACS),以使用與 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 for US East (維吉尼亞北部)。取代 instance-id 執行個體 ID。

    對於 GovCloud 執行個體, URL是 https://console.amazonaws-us-gov.com/

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

    注意

    您可透過選擇 Amazon Connect 主控台中的執行個體別名找到您執行個體的 ID。執行個體 ID 是概觀頁面上顯示之執行個體ARN中 '/instance' 後面的一組數字和字母。例如,下列執行個體中的執行個體 ID ARN為 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. 更新 (或覆寫) Assertion Consumer Service (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 URL中的 AssertionConsumerService (ACS)。對於提供預先烘焙 AWS 整合的 IdPs Okta,您可以在 AWS 管理員主控台ACSURL中覆寫 。使用相同的格式覆寫您選擇的區域 (例如 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 未在其他 區域中停用。

  • 確保沒有 SCPs 阻止其他區域中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 執行個體, 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 至您核准的原始伺服器。如需說明,請參閱 在 Amazon Connect 中使用整合式應用程式的允許清單

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

  3. 當您的客服人員登入時,系統會直接將他們帶至 https://your-custom-website.com。

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

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

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

名稱不在 Amazon Connect 中的使用者的存取遭拒錯誤。
使用範本以大量上傳使用者

您可以將使用者新增至 CSV 檔案,以匯入使用者。然後,您可以將CSV檔案匯入執行個體,以新增檔案中的所有使用者。如果您透過上傳CSV檔案來新增使用者,請務必使用範本給SAML使用者。您可以在 Amazon Connect 的使用者管理頁面上找到。以 SAML為基礎的身分驗證會使用不同的範本。如果您先前已下載過範本,您應該在使用 SAML型身分驗證設定執行個體後,下載使用者管理頁面上可用的版本。範本不應包含電子郵件或密碼欄位。

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

當您SAML在 Amazon Connect 中使用 時,使用者必須透過身分提供者 (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 團隊。