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

3 分的閱讀內容
0

我想要在 Amazon Cognito 使用者集區利用 Okta 作為安全性聲明標記語言 2.0 (SAML 2.0) 身分提供者 (IdP)。

簡短說明

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

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

解決方法

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

  1. 建立使用者集區
    注意:在建立期間,依預設會選取標準屬性電子郵件。如需詳細資訊,請參閱使用者集區屬性
  2. 在使用者集區建立應用程式用戶端。如需詳細資訊,請參閱新增應用程式用戶端與設定託管 UI
    注意:當新增應用程式用戶端時,請清除產生用戶端密碼核取方塊。在某些授權流程 (例如授權碼授與流程和權杖重新整理流程) ,授權伺服器會利用應用程式用戶端密碼來授權用戶端代表使用者發出請求。對於此設定使用的隱含授與流程,不需要應用程式用戶端密碼。
  3. 為使用者集區新增網域名稱

註冊 Okta 開發人員帳戶

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

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

在 Okta 建立 SAML 應用程式

  1. 開啟 Okta 開發人員主控台。如需詳細資訊,請參閱 Okta 網站的 Okta 上重新設計的管理主控台和儀表板
  2. 在導覽功能表展開應用程式,然後選擇應用程式
  3. 選擇建立應用程式整合
  4. 建立新的應用程式整合功能表選擇 SAML 2.0 作為登入方法
  5. 選擇下一步

如需詳細資訊,請在 Okta 開發人員網站參閱建置單一登入 (SSO) 整合手冊的準備 SAML 整合

為 Okta 應用程式設定 SAML 整合

  1. 建立 SAML 整合頁面的一般設定項下,輸入應用程式名稱。
  2. (選擇性) 上傳一個標誌,並選擇應用程式的可見度設定。
  3. 選擇下一步
  4. 一般項下,針對單一登入 URL輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
    注意:yourDomainPrefixregion 取代為您的使用者集區的值。在使用者集區網域名稱頁面的 Amazon Cognito 主控台找到這些值。
  5. 對象 URI (SP 實體 ID) 輸入 urn:amazon:cognito:sp:yourUserPoolId
    注意:yourUserPoolId 取代為您的 Amazon Cognito 使用者集區 ID。在使用者集區一般設定頁面的 Amazon Cognito 主控台找到這個值。
  6. 屬性陳述式 (選擇性) 項下,新增包含以下資訊的陳述式:
    名稱 輸入 SAML 屬性名稱 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    輸入 user.email
  7. 對於頁面的所有其他設定,請將它們保留為預設值,或根據您的偏好設定予以設定。
  8. 選擇下一步
  9. 選擇 Okta Support 的意見回應。
  10. 選擇結束

如需詳細資訊,請在 Okta 開發人員網站參閱建置單一登入 (SSO) 整合手冊的建立您的整合

將使用者指定給 Okta 應用程式

  1. 在 Okta 應用程式的指派索引標籤,對於指定選擇指定給人員
  2. 選擇您要指定的使用者旁邊的指定
    注意: 如果這是新帳戶,則唯一可用的選項是選擇自己 (管理員) 作為使用者。
  3. (選擇性) 在使用者名稱輸入使用者名稱,或者根據需要保留為使用者的電子郵件地址。
  4. 選擇儲存並返回。您的使用者已指定。
  5. 選擇完成

如需詳細資訊,請在 Okta 開發人員網站參閱建置單一登入 (SSO) 整合手冊的指定使用者

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

在 Okta 應用程式的登入索引標籤找到身分提供者中繼資料超連結。在超連結上按一下滑鼠右鍵,然後複製 URL。

如需詳細資訊,請在 Okta 開發人員網站參閱建置單一登入 (SSO) 整合手冊的指定您的整合設定

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

  1. Amazon Cognito 主控台選擇管理使用者集區,然後選擇您的使用者集區。
  2. 在左側導覽窗格的聯合項下,選擇身分提供者
  3. 選擇 SAML
  4. 中繼資料文件項下,貼上您複製的身分提供者中繼資料 URL。
  5. 提供者名稱輸入 Okta。如需詳細資訊,請參閱選擇 SAML 身分提供者名稱
  6. (選擇性) 輸入任何 SAML 識別碼 (識別碼 (選擇性)),並在使用者登出使用者集區時啟用從 IdP (Okta) 登出。
  7. 選擇建立提供者

如需詳細資訊,請參閱為使用者集區建立和管理 SAML 身分提供者 (AWS 管理主控台)

將 IdP 屬性的電子郵件地址映射至使用者集區屬性

  1. Amazon Cognito 主控台選擇管理使用者集區,然後選擇您的使用者集區。
  2. 在左側導覽窗格的聯合項下,選擇屬性映射
  3. 在屬性映射頁面選擇 SAML 索引標籤。
  4. 選擇新增 SAML 屬性
  5. SAML 屬性輸入 SAML 屬性名稱 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  6. 使用者集區屬性從清單選擇電子郵件

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

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

  1. Amazon Cognito 主控台選擇管理使用者集區,然後選擇您的使用者集區。
  2. 在左側導覽窗格的應用程式整合項下,選擇應用程式用戶端設定
  3. 在應用程式用戶端頁面上,執行下列操作:
    啟用的身分提供者項下,選取 OktaCognito 使用者集區核取方塊。
    回呼 URL 輸入您希望使用者在登入後被重新導向的目標 URL。若要進行測試,請輸入任何有效的 URL,例如 https://www.example.com/
    登出 URL,輸入您希望使用者在登出後被重新導向的目標 URL。若要進行測試,請輸入任何有效的 URL,例如 https://www.example.com/
    允許的 OAuth 流程項下,請務必至少選取隱含授權核取方塊。
    允許的 OAuth 範圍項下,請務必至少選取電子郵件openid 核取方塊。
  4. 選擇儲存變更

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

建構端點 URL

利用使用者集區的值,建構此登入端點 URL:https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

請務必執行以下動作:

  • yourDomainPrefixregion 取代為您的使用者集區的值。在使用者集區網域名稱頁面的 Amazon Cognito 主控台找到這些值。
  • yourClientId 取代為您的應用程式用戶端 ID,並將 redirectUrl 取代為您的應用程式用戶端的回呼 URL。在使用者集區應用程式用戶端設定頁面的 Amazon Cognito 主控台找到這些值。

如需詳細資訊,請參閱如何為 Amazon Cognito 設定託管 Web UI?登入端點

測試端點 URL

  1. 在網頁瀏覽器輸入建構的登入端點 URL。
  2. 在您的登入端點網頁選擇 Okta
    **注意:**如果您已被重新導向應用程式用戶端的回呼 URL,則表示您已在瀏覽器登入至您的 Okta 帳戶。使用者集區權杖會顯示在網頁瀏覽器網址列的 URL。
  3. 在 Okta 登入頁面輸入您指定給應用程式的使用者的使用者名稱和密碼。
  4. 選擇登入

登入之後,您會被重新導向應用程式用戶端的回呼 URL。使用者集區權杖會顯示在網頁瀏覽器網址列的 URL。

(選擇性) 略過 Amazon Cognito 託管 UI

如果您希望使用者在登入應用程式時略過 Amazon Cognito 託管 Web UI,請改用此端點 URL:

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

請務必執行以下動作:

  • yourDomainPrefixregion 取代為您的使用者集區的值。在使用者集區網域名稱頁面的 Amazon Cognito 主控台找到這些值。
  • samlProviderName 取代為您的使用者集區 (Okta) 的 SAML 提供者的名稱。
  • (選擇性) 如果您先前已在識別碼 (選擇性)」欄位新增了 SAML IdP 的識別碼,請將 identity_provider=samlProviderName 取代為 idp_identifier=idpIdentifier,並將 idpIdentifier 取代為您的自訂識別碼字串。
  • yourClientId 取代為您的應用程式用戶端 ID,並將 redirectUrl 取代為您的應用程式用戶端的回呼 URL。在使用者集區應用程式用戶端設定頁面的 Amazon Cognito 主控台找到這些值。
  • allowedOauthScopes 取代為您希望 Amazon Cognito 應用程式用戶端請求的特定範圍。例如,scope=email+openid

如需詳細資訊,請參閱如何為 Amazon Cognito 設定託管 Web UI?授權端點

相關資訊

SAML 使用者集區 IdP 驗證流程

如何為 Amazon Cognito 使用者集區設定第三方 SAML 身分提供者?

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

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