如何在 Amazon Cognito 使用者集區中設定 Okta 為 OpenID Connect 身分提供者?

2 分的閱讀內容
0

我想在 Amazon Cognito 使用者集區中使用 Okta 作為 SAML 2.0 身分提供者 (IdP)。

簡短說明

Amazon Cognito 使用者集區允許透過第三方 (聯合) 登入,包括透過 Okta 等 IdP 登入。如需詳細資訊,請參閱透過第三方新增使用者集區登入新增 OIDC 身分提供者至使用者集區

與 Okta 整合的使用者集區允許 Okta 應用程式的使用者從 Amazon Cognito 取得使用者集區權杖。如需詳細資訊,請參閱將權杖與使用者集區搭配使用

解決方法

使用應用程式用戶端和網域名稱建立 Amazon Cognito 使用者集區

  1. 建立使用者集區
    注意:在建立期間,依預設會選取標準屬性電子郵件。如需詳細資訊,請參閱設定使用者集區屬性
  2. 在使用者集區建立應用程式用戶端。如需詳細資訊,請參閱新增應用程式以啟用託管 Web UI
  3. 為使用者集區新增網域名稱

註冊 Okta 開發人員帳戶

**注意:**如果您已經擁有 Okta 開發人員帳戶,請登入。

  1. Okta 開發人員註冊網頁輸入個人資訊,然後選擇註冊。Okta 開發人員團隊會向您所提供的電子郵件地址傳送一封驗證電子郵件。
  2. 在驗證電子郵件中,找到您帳戶的登入資訊。選擇啟用,登入並結束建立帳戶。

建立 Okta 應用程式

  1. 開啟 Okta 開發人員主控台。如需有關主控台的詳細資訊,請參閱 Okta 開發人員部落格上的重新設計的 Okta 管理員主控台與儀表板 – 現已於 GA 提供!
  2. 在導覽窗格中,展開應用程式,然後選擇應用程式。應用程式主控台隨即開啟。如需詳細資訊,請參閱 Okta 開發人員網站的 Okta 組織頁面上的管理員主控台
  3. 選擇建立應用程式整合
  4. 建立新應用程式整合頁面上,依次選擇 OpenID ConnectWeb 應用程式下一步

設定 Okta 應用程式的設定

  1. 新 Web 應用程式整合頁面的一般設定項下,輸入您的應用程式名稱。例如,TestApp
  2. 授權類型項下,確認已選取授權碼核取方塊。使用者集區會利用此流程與 Okta OIDC 通訊,進行聯合身分使用者登入。
  3. 針對登入重新導向 URI,輸入 https://myUserPoolDomain/oauth2/idpresponse。Okta 會向此網址傳送驗證回應和 ID 權杖。
    注意:myUserPoolDomain 取代為 Amazon Cognito 使用者集區網域。您可以在使用者集區的網域名稱頁面上的 Amazon Cognito 主控台中找到此網域。
  4. 設定 OPENID CONNECT 項下,針對登入重新導向 URI,輸入 https://myUserPoolDomain/oauth2/idpresponse。Okta 會向此網址傳送驗證回應和 ID 權杖。
    注意:myUserPoolDomain 取代為 Amazon Cognito 使用者集區網域。在使用者集區的網域名稱頁面上的 Amazon Cognito 主控台中找到此網域。
  5. 控制存取中,選擇偏好存取設定,然後選擇儲存
  6. 用戶端憑證中,複製用戶端 ID用戶端機密。您需要上述憑證才能在 Amazon Cognito 使用者集區中設定 Okta。
  7. 選擇登入
  8. 登入頁面的 OpenID Connect ID 權杖中,記下發行者網址。您需要此網址才能在使用者集區中設定 Okta。

在使用者集區中新增 OIDC IdP

  1. Amazon Cognito 主控台選擇管理使用者集區,然後選擇您的使用者集區。
  2. 在左側導覽窗格的聯合項下,選擇身分提供者
  3. 選擇 OpenID Connect
  4. 請執行下列操作:
    針對提供者名稱,輸入 IdP 名稱。此名稱會出現在 Amazon Cognito 託管 Web UI
    注意:在建立提供者之後,無法變更此欄位。如果您打算在應用程式包含此欄位或使用 Amazon Cognito 託管 Web UI,請採用您希望應用程式使用者看見的名稱。
    針對
    用戶端 ID
    ,貼上先前從 Okta 記下的用戶端 ID
    針對用戶端機密 (選用),貼上先前從 Okta 記下的用戶端機密
    針對屬性請求方法,將設定保留為 GET
    針對授權範圍,輸入您要授權的 OIDC 範圍值,並以空格分隔。如需詳細資訊,請參閱 OpenID 網站 OpenID Connect 基本客戶端實作者指南 1.0範圍值
    重要:OIDC IdP 需要 openid 範圍,您可根據使用者集區組態新增其他範圍。例如,如果您在建立使用者集區時,保留電子郵件作為必需屬性,請輸入電子郵件 openid 以包含兩種範圍。您可以稍後在此設定中將電子郵件屬性映射至使用者集區。
    針對發行者,貼上先前從 Okta 複製的發行者網址。
    針對識別符 (選用),您可以選擇性輸入自訂字串,以便稍後用於端點網址,取代 OIDC IdP 名稱。
  5. 選擇執行探索,以擷取 Okta 的 OIDC 組態端點。
  6. 選擇建立提供者

如需詳細資訊,請參閱新增 OIDC IdP 至使用者集區

變更使用者集區的應用程式用戶端設定

  1. Amazon Cognito 主控台選擇管理使用者集區,然後選擇您的使用者集區。
  2. 在左側導覽窗格的應用程式整合項下,選擇應用程式用戶端設定
  3. 在應用程式用戶端頁面上,執行下列操作:
    啟用的身分提供者項下,選擇先前所建立 IdP 的 OIDC 提供者核取方塊。
    (選用) 選擇 Cognito 使用者集區核取方塊。
    針對回呼網址,輸入網址,以便使用者登入後系統將其重新導向至此處。若要進行測試,您可以輸入任何有效網址,例如 https://example.com/
    針對登出網址,輸入網址,以便使用者登出後系統將其重新導向至此處。若要進行測試,您可以輸入任何有效網址,例如 https://example.com/
    允許的 OAuth 流程項下,選取對應授權類型流程,此為經 Cognito 驗證之後您希望應用程式接收的流程。
    注意:您啟用的允許 OAuth 流程會決定您可用哪些值 (代碼權杖) 作為端點網址的 response_type 參數
    允許的 OAuth 範圍項下,至少選取電子郵件openid 核取方塊。
  4. 選擇儲存變更

如需詳細資訊,請參閱應用程式用戶端設定術語

將電子郵件屬性映射至使用者集區屬性

如果您先前已授權電子郵件 OIDC 範圍值,請將其映射至使用者集區屬性。

  1. Amazon Cognito 主控台選擇管理使用者集區,然後選擇您的使用者集區。
  2. 在左側導覽窗格的聯合項下,選擇屬性映射
  3. 在屬性映射頁面上,選擇 OIDC 索引標籤。
  4. 如果使用者集區具多個 OIDC 提供者,請從下拉式清單中選擇新提供者。
  5. 確認 OIDC 屬性子屬性已映射至使用者集區屬性使用者名稱
  6. 選擇新增 OIDC 屬性,然後執行下列操作:
    針對 OIDC 屬性,輸入電子郵件
    針對使用者集區屬性,選擇電子郵件

如需詳細資訊,請參閱為使用者集區指定身分提供者屬性映射

登入以測試設定

使用 Amazon Cognito 託管 Web UI 與 Okta 進行驗證。在成功登入後,系統會將您重新導向至應用程式用戶端回呼網址。授權碼或使用者集區權杖會出現在 Web 瀏覽器網址列的網址。

如需詳細資訊,請參閱使用 Amazon Cognito 託管 UI 來註冊及登入

相關資訊

OIDC 使用者集區 IdP 驗證流程

如何使用 Amazon Cognito 使用者集區設定 Okta 為的 SAML 身分提供者?

AWS 官方
AWS 官方已更新 9 個月前