使用 Auth0 和 實作 Amazon WorkSpaces 的 SAML 2.Auth0驗證 AWS Managed Microsoft AD - AWS 方案指引

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

使用 Auth0 和 實作 Amazon WorkSpaces 的 SAML 2.Auth0驗證 AWS Managed Microsoft AD

Siva Vinnakota 和 Shantanu Padhye,Amazon Web Services

Summary

此模式會探索如何整合 Auth0 與 AWS Directory Service for Microsoft Active Directory ,為您的 Amazon WorkSpaces 環境建立強大的 SAML 2.0 身分驗證解決方案。它說明如何在它們之間建立聯合 AWS 服務 ,以啟用進階功能,例如多重要素驗證 (MFA) 和自訂登入流程,同時保留無縫桌面存取 AWS Managed Microsoft AD。無論您是只管理少數使用者還是數千個使用者,此整合都有助於為您的組織提供靈活性和安全性。此模式提供設定程序的步驟,讓您可以在自己的環境中實作此解決方案。

先決條件和限制

先決條件

  • 作用中 AWS 帳戶

  • AWS Managed Microsoft AD

  • Amazon WorkSpaces Personal 中與 相關聯的佈建桌面 AWS Managed Microsoft AD

  • Amazon Elastic Compute Cloud (Amazon EC2) 執行個體

  • Auth0 帳戶

限制

有些 AWS 服務 完全無法使用 AWS 區域。如需區域可用性,請參閱AWS 服務 依區域。如需特定端點,請參閱服務端點和配額頁面,然後選擇服務的連結。

架構

WorkSpaces 用戶端應用程式的 SAML 2.0 身分驗證程序包含五個步驟,如下圖所示。這些步驟代表典型的登入工作流程。您可以在遵循此模式中的指示後,使用此分散式方法進行身分驗證,以協助提供結構化且安全的使用者存取方法。

WorkSpaces 用戶端應用程式的 SAML 2.0 身分驗證程序工作流程。

工作流程:

  1. 註冊。使用者啟動 WorkSpaces 的用戶端應用程式,並為其已啟用 SAML 的 WorkSpaces 目錄輸入 WorkSpaces 註冊碼。WorkSpaces 會將 Auth0 身分提供者 (IdP) URL 傳回至用戶端應用程式。

  2. 登入。 WorkSpaces 用戶端會使用 Auth0 URL 重新導向至使用者的 Web 瀏覽器。 使用者使用其使用者名稱和密碼進行身分驗證。Auth0 會將 SAML 聲明傳回至用戶端瀏覽器。SAML 聲明是可宣告使用者身分的加密字符。

  3. 驗證。用戶端瀏覽器會將 SAML 聲明發佈至 AWS 登入 端點以進行驗證。 AWS 登入 允許發起人擔任 AWS Identity and Access Management (IAM) 角色。這會傳回包含 IAM 角色臨時登入資料的字符。

  4. WorkSpaces 登入。WorkSpaces 用戶端會將權杖呈現給 WorkSpaces 服務端點。WorkSpaces 會交換工作階段字符,並使用登入 URL 將工作階段字符傳回給 WorkSpaces 用戶端。當 WorkSpaces 用戶端載入登入頁面時,使用者名稱值會填入在 SAML 回應中傳遞NameId的值。

  5. 串流。使用者輸入其密碼並對 WorkSpaces 目錄進行驗證。身分驗證之後,WorkSpaces 會將權杖傳回給用戶端。用戶端會重新導向回 WorkSpaces 服務,並呈現權杖。這會代理 WorkSpaces 用戶端和 WorkSpace 之間的串流工作階段。

注意

若要設定不需要密碼提示的無縫單一登入體驗,請參閱 WorkSpaces 文件中的憑證型身分驗證和 WorkSpaces Personal。 WorkSpaces

工具

AWS 服務

其他工具

  • Auth0 是一種身分驗證和授權平台,可協助您管理對應用程式的存取。

史詩

任務描述所需的技能

使用 在 Auth0 中安裝 Active Directory LDAP 連接器 AWS Managed Microsoft AD。

  1. 登入 Auth0 儀表板,然後選擇身分驗證企業Active Directory/LDAP。選擇建立連線

  2. 提供 Active Directory 連線的名稱,然後選擇建立

  3. 設定索引標籤上,下載作業系統的代理程式。

    安裝完成時,您的預設瀏覽器會顯示票證 URL 的提示。

  4. 輸入佈建票證 URL,這對於您的連線字串應該是唯一的,然後選擇繼續

  5. AD LDAP 組態對話方塊中,針對使用者名稱和密碼,輸入您的管理員登入資料,然後選擇儲存

    建立與 Auth0 的連線後,組態日誌會顯示所有檢查的報告狀態為 OK

雲端管理員、雲端架構師

在 Auth0 中建立應用程式,以產生 SAML 中繼資料清單檔案。

  1. 登入 Auth0 儀表板,並遵循 Auth0 文件中的指示建立新的應用程式。

  2. 在 Auth0 儀表板上,選擇應用程式名稱以存取其組態設定。在 AddOns 索引標籤上,選擇 SAML2 Web 應用程式

  3. 在附加元件的設定索引標籤上,針對應用程式回呼 URL,輸入 https://signin.aws.amazon.com/saml。這是 SAML 字符將傳送POST請求的位置。

  4. 設定索引標籤的設定方塊中,以 JSON 格式貼上下列 SAML 組態碼:

    { "audience": "https://signin.aws.amazon.com/saml", "mappings": { "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sAMAccountName", "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" }, "createUpnClaim": false, "passthroughClaimsWithNoMapping": false, "mapUnknownClaimsAsIs": false, "mapIdentities": false, "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "nameIdentifierProbes": [ "http://schemas.auth0.com/sAMAccountName" ] }
  5. 儲存,然後選擇啟用

  6. 選擇用量索引標籤,然後下載身分提供者的中繼資料資訊清單檔案。後續步驟需要此資訊。

  7. 關閉 SAML2 Web 應用程式視窗。

  8. 在應用程式畫面上,選擇連線。在企業下,選取正確的 Active Directory/LDAP 連接器並啟用它。

雲端管理員、雲端架構師
任務描述所需的技能

在 IAM 中建立 SAML 2.0 IdP。

若要將 SAML 2.0 設定為 IdP,請遵循 IAM 文件中在 IAM 中建立 SAML 身分提供者中所述的步驟。

雲端管理員

建立 SAML 2.0 聯合的 IAM 角色和政策。

  1. 為 SAML 2.0 聯合建立 IAM 角色。如需說明,請參閱 WorkSpaces 文件中設定 WorkSpaces Personal 專用 SAML 2.0 的說明中的 WorkSpaces步驟 2

  2. 建立 IAM 政策,並將其與您在上一個步驟中建立的角色建立關聯。如需說明,請參閱 WorkSpaces 文件中設定 WorkSpaces Personal 專用 SAML 2.0 的說明中的 WorkSpaces步驟 3

雲端管理員
任務描述所需的技能

設定 Auth0 和 SAML 聲明。

您可以使用 Auth0 動作在 SAML 2.0 回應中設定宣告。SAML 聲明是可宣告使用者身分的加密字符。

  1. 登入 Auth0 儀表板。選擇動作程式庫建立動作從頭開始建置

  2. 提供下列值,然後選擇建立

    名稱:指定動作的名稱

    觸發:選擇登入/登入後

    執行時間:選擇節點 18

  3. 在下一個畫面上,輸入下列程式碼:

    exports.onExecutePostLogin = async (event, api) => { if (event.client.name === "Workspace_Saml") { const awsRole = 'arn:aws:iam::030784294031:role/Workspace_Auth0,arn:aws:iam::030784294031:saml-provider/Auth0'; const awsRoleSession = event.user.sAMAccountName; const email = event.user.emails[0]; api.samlResponse.setDestination('https://signin.aws.amazon.com/saml'); api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/Role', awsRole) api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/RoleSessionName', awsRoleSession) api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email', email) } return; };
  4. 選擇部署

如此即完成 WorkSpaces Personal 桌面的 SAML 2.0 身分驗證設定。架構區段說明設定後的身分驗證程序。

雲端管理員

故障診斷

問題解決方案

WorkSpaces 中的 SAML 2.0 身分驗證問題

如果您在實作 WorkSpaces Personal 的 SAML 2.0 身分驗證時遇到任何問題,請遵循 AWS re:Post 文章中關於對 SAML 2.0 身分驗證進行疑難排解的步驟和連結。

如需有關在存取 WorkSpaces 時調查 SAML 2.0 錯誤的其他資訊,請參閱:

相關資源