跳至內容

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

4 分的閱讀內容
0

我想在我的使用者集區中設定 Okta 作為 SAML 2.0 身分提供者 (IdP),讓我的應用程式使用者從 Amazon Cognito 取得權杖。

簡短說明

Okta SAML IdP 與 Amazon Cognito 的整合需要在兩個平台上進行組態。首先,在 Okta 中建立並設定 SAML 應用程式整合。接著,在 Amazon Cognito 使用者集區中新增 Okta 作為 IdP,並設定應用程式用戶端設定以允許 Okta 驗證。完成設定後,最佳實務是測試驗證流程,以確認使用者透過 Okta 登入後,會從 Amazon Cognito 取得權杖

解決方法

在您將 Okta 設定為 SAML IdP 之前,請執行以下動作:

(選用) 註冊 Okta 開發人員帳戶

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

請完成以下步驟:

  1. 在 Okta 開發人員網站上開啟 Okta Developer signup (Okta 開發人員註冊) 頁面。
  2. 輸入所需資訊,然後選擇 Sign up (註冊)。Okta 會將驗證電子郵件傳送至您提供的電子郵件地址。
  3. 在驗證電子郵件中,找到您帳戶的登入資訊。
  4. 選擇 Activate account (啟用帳戶),然後登入以完成帳戶建立。

建立 SAML 應用程式,並為您的 Okta 應用程式設定 SAML 整合

請完成以下步驟:

  1. 開啟 Okta Developer console (Okta 開發人員主控台)。
  2. 在導覽窗格中,展開 Applications (應用程式),然後選擇 Applications (應用程式)。
  3. 選擇 Create app integration (建立應用程式整合)。
  4. Create a new app integration (建立新的應用程式整合) 功能表中,於 Sign-in method (登入方法),選擇 SAML 2.0
  5. 選擇 Next (下一步)。
  6. Create SAML Integration (建立 SAML 整合) 頁面上,在 General Settings (一般設定) 下,為您的應用程式輸入名稱。
  7. (選用) 上傳標誌並為您的應用程式選擇可見性設定。
  8. 選擇 Next (下一步)。
  9. SAML Settings (SAML 設定) 下,於 Single sign on URL (單一登入網址),輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
    **注意:**將 yourDomainPrefixregion 替換為您使用者集區的值。若要尋找這些值,請開啟 Amazon Cognito console (Amazon Cognito 主控台),然後從 Branding (品牌) 區段選擇 Domain (網域)。
  10. Audience URI (SP Entity ID) (對象 URI (SP 實體 ID)),輸入 urn:amazon:cognito:sp:yourUserPoolId
    **注意:**將 yourUserPoolId 替換為您的使用者集區 ID。若要尋找使用者集區 ID,請查看 Amazon Cognito 主控台的 Overview (概觀) 區段。
  11. Attribute Statements (optional) (屬性陳述式 (選用)) 下,新增陳述式並使用以下資訊:
    Name (名稱),輸入 SAML 屬性名稱 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    Value (值),輸入 user.email
    針對頁面上的其他設定,使用預設值或根據您的需求進行調整。
  12. 選擇 Next (下一步)。
  13. 出現提示時,選擇關於應用程式設定體驗的意見回饋回應。
    **注意:**這是 Okta 標準應用程式建立流程的一部分,用於蒐集使用者體驗意見回饋。
  14. 選擇 Finish (完成)。

將使用者指派給您的 Okta 應用程式

請完成以下步驟:

  1. 在您的 Okta 應用程式的 Assignments (指派) 索引標籤上,於 Assign (指派),選擇 Assign to People (指派給人員)。
  2. 在您要指派的使用者旁,選擇 Assign (指派)。
    **注意:**如果這是新帳戶,您只能選擇自己作為使用者。
  3. (選用) 在 User Name (使用者名稱),輸入自訂使用者名稱。如果您未指定,Okta 會使用使用者的電子郵件地址作為使用者名稱。
  4. 選擇 Save and Go Back (儲存並返回) 以完成使用者指派。
  5. 選擇 Done (完成)。

取得您 Okta 應用程式的 IdP 中繼資料

在您的 Okta 應用程式的 Sign On (登入) 索引標籤上,在 Metadata details (中繼資料詳細資料) 下,複製 Metadata URL (中繼資料網址)。

在您的使用者集區中將 Okta 設定為 SAML IdP

請完成以下步驟:

  1. 開啟 Amazon Cognito console (Amazon Cognito 主控台)。
  2. 選擇您的使用者集區。
  3. 在導覽窗格中,在 Authentication (驗證) 下,選擇 Social and external providers (社交與外部提供者)。
  4. 選擇 Add identity provider (新增身分提供者),然後選取 SAML
  5. Register your app with your SAML provider (向您的 SAML 提供者註冊應用程式) 下,於 Provider name (提供者名稱),輸入 Okta
  6. (選用) 新增 SAML identifiers to route sign-in and sign-out requests (SAML 識別碼以路由登入與登出請求) 至 Okta。
  7. (選用) 啟用 single logout (單一登出),當使用者從您的使用者集區登出時,將其從 Okta 登出。
  8. Metadata document source (中繼資料文件來源) 下,選擇 Enter metadata document endpoint URL (輸入中繼資料文件端點網址),然後貼上您從 Okta Sign On (登入) 索引標籤複製的中繼資料網址
  9. Map attributes between your SAML provider and your user pool (在您的 SAML 提供者與使用者集區之間對應屬性) 下,為 SAML attribute (SAML 屬性) 指定電子郵件
  10. 選擇 Add identity provider (新增身分提供者)。

如需詳細資訊,請參閱在使用者集區中新增和管理 SAML 身分提供者

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

請完成以下步驟:

  1. Amazon Cognito 主控台中,於 App clients (應用程式用戶端) 下,選擇您的使用者集區。
  2. 在導覽窗格中,在 Applications (應用程式) 下,選擇 App clients (應用程式用戶端)。
  3. 在應用程式用戶端頁面上,前往 Login pages (登入頁面) 區段。接著,在 Managed login pages configuration (受管登入頁面組態) 下,選擇 Edit (編輯)。
  4. Identity Providers (身分提供者) 下拉式清單中,選取 OktaCognito User Pool (Cognito 使用者集區)。
    Callback URL(s) (回呼網址),指定使用者成功登入後的目的地網址。
    Sign out URL(s) (登出網址),指定使用者登出後的目的地網址。
    注意:如果您想測試整合,請使用預留位置網址,例如 https://www.example.com/。您之後可以將此預留位置更新為應用程式的網址。
    Allowed OAuth Flows (允許的 OAuth 流程) 下,選取 Implicit grant (隱含授權)。
    Allowed OAuth Scopes (允許的 OAuth 範圍) 下,選取
    電子郵件
    openid
  5. 選擇 Save changes (儲存變更)。

如需更多資訊,請參閱應用程式用戶端條款

存取登入頁面以測試 SAML 驗證流程

您可以透過 Amazon Cognito 主控台存取登入頁面,或建立登入端點網址。

  1. Amazon Cognito 主控台中,於 App clients (應用程式用戶端) 下,選擇您的使用者集區。
  2. 選擇 Login pages (登入頁面) 索引標籤,然後選擇 View login page (檢視登入頁面)。
    -或-
    建立登入端點網址。若要建立登入端點,請使用以下命名模式:
    https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
    **注意:**將 yourDomainPrefixregion 替換為您使用者集區的值。若要在 Amazon Cognito 主控台中尋找這些值,請選擇 Domain name (網域名稱) 頁面。
  3. 在登入端點網頁上,選擇 Okta
    **注意:**如果系統將您重新導向至應用程式用戶端的回呼網址,表示您已登入 Okta 帳戶。繼續執行步驟 5。
  4. 在 Okta 的 Sign In (登入) 頁面上,輸入您指派給應用程式之使用者的使用者名稱與密碼。
  5. 選擇 Sign in (登入)。
  6. 在瀏覽器的網址列中查看使用者集區權杖。

(選用) 略過 Amazon Cognito 託管 UI

若要略過 Amazon Cognito 託管 Web UI 並將使用者直接傳送至 Okta 進行登入,請使用以下 /oauth2/authorize endpoint (/oauth2/authorize 端點) 網址:

https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes

**注意:**將 yourDomainPrefixregionsamlProviderNameyourClientIdredirectUrlallowedOauthScopes 替換為您的值。若要尋找 yourDomainPrefixregion,請在Amazon Cognito 主控台中,於 Branding (品牌) 區段選擇 Domain (網域)。對於 yourClientIdredirectUrl,請在 Amazon Cognito 主控台中選擇 App client (應用程式用戶端) 設定頁面。

(選用) 如果您新增了 SAML 識別碼,請將預留位置 identity_provider=samlProviderName 替換為 idp_identifier=idpIdentifier。將 idpIdentifier 替換為您的自訂識別碼字串。

相關資訊

在 Amazon Cognito 使用者集區中啟動 SAML 工作階段

如何設定第三方 SAML 身份提供者,使其與 Amazon Cognito 使用者集區搭配使用?

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

透過第三方身分提供者登入使用者集區

AWS 官方已更新 5 個月前