如何在 Amazon Cognito 使用者集區中將 Google 設定為聯合身分提供者?

2 分的閱讀內容
0

我想在 Amazon Cognito 使用者集區中使用 Google 作為聯合身分提供者 (IdP)。

解決方法

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

請完成下列步驟:

  1. 建立新的使用者集區
    **注意:**建立使用者集區時,依預設會選取標準屬性電子郵件
  2. 在使用者集區中建立應用程式用戶端
  3. 為使用者集區新增網域名稱

建立 Google API 主控台專案

請完成下列步驟:

  1. 使用您的 Google 帳戶登入 Google API 主控台。如需詳細資訊,請參閱 Google 說明網站上的 Manage APIs in the API console
  2. 儀表板 (API 和服務) 上,選擇建立
  3. 新專案下,輸入專案名稱
  4. 對於位置,選擇瀏覽,然後選取位置。
  5. 選擇建立

如需詳細資訊,請參閱 Google Identity 網站上的使用 Google 帳戶登入網頁版

設定 OAuth 同意畫面

請完成下列步驟:

  1. 開啟 Google API 主控台,然後左側導覽窗格中,選擇 OAuth 同意畫面
  2. 填寫同意表單上的以下必填欄位:
    對於應用程式名稱,輸入名稱。
    對於授權網域,輸入 amazoncognito.com
    **重要事項:**您必須輸入此網域,才能在建立 OAuth 用戶端 ID 時使用 Amazon Cognito 網域
  3. 選擇儲存

如需詳細資訊,請參閱 Google Workspace 網站上的完成 OAuth 同意畫面

取得 OAuth 2.0 用戶端憑證

請完成下列步驟:

  1. 開啟 Google API 主控台,然後在憑證頁面上,選擇建立憑證
  2. 選擇 OAuth 用戶端 ID
  3. 建立 OAuth 用戶端 ID 頁面中,對於應用程式類型,選擇 Web 應用程式
  4. 輸入下列資訊:
    對於名稱,輸入您的 OAuth 用戶端 ID。
    對於授權的 JavaScript 來源,輸入您的 Amazon Cognito 網域,例如:
    注意:yourDomainPrefixregion 取代為您的使用者集區值。若要尋找這些值,請開啟 Amazon Cognito 主控台,然後瀏覽至使用者集區的網域名稱頁面。
    對於
    授權重新導向 URI**,輸入 **
    **注意:**將 yourDomainPrefixregion 取代為您的使用者集區值。
  5. OAuth 用戶端對話方塊中,記下用戶端 ID 和用戶端密碼,以在稍後的步驟中使用。

如需詳細資訊,請參閱 Google Identity 網站上的使用 OAuth 2.0 存取 Google API

將 Google 設定為使用者集區中的聯合 IdP

請完成下列步驟:

  1. 開啟 Amazon Cognito 主控台,然後選擇使用者集區
  2. 選取您的使用者集區。
  3. 選擇登入體驗索引標籤。
  4. 聯合身分提供者登入下方,選擇新增身分提供者
  5. 選取 Google
  6. 使用此使用者集區設定 Google 聯合下方,輸入下列資訊:
    對於用戶端 ID,輸入您記下的用戶端 ID。
    對於用戶端密碼,輸入記下的用戶端密碼。
    對於授權範圍,輸入設定檔電子郵件 OpenID。
  7. Google 與使用者集區之間的映射屬性下方,將電子郵件使用者集區屬性映射至電子郵件Google 屬性
  8. 選擇新增其他屬性,然後將使用者名稱使用者集區屬性映射至使用者名稱Google 屬性
  9. 選擇新增身分提供者

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

**注意:**在應用程式用戶端設定中,映射的使用者集區屬性必須是可寫入的。如需詳細資訊,請參閱 Specifying identity provider attribute mappings for your user pool

請完成下列步驟:

  1. 開啟 Amazon Cognito 主控台,然後選取您的使用者集區。
  2. 選擇應用程式整合標籤。
  3. 應用程式用戶端清單下,選擇建立應用程式用戶端
  4. 輸入下列資訊:
    應用程式類型中,選擇公有用戶端,然後輸入您的應用程式用戶端名稱。
    對於驗證流程,請選取ALLOW_USER_PASSWORD_AUTHALLOW_REFRESH_TOKEN_AUTH
    對於允許的****回呼 URL,輸入您希望使用者在登入後被重新導向的目標 URL。若要測試,請輸入有效的 URL,例如
    對於
    登出 URL**,輸入您希望使用者在登出後被重新導向的目標 URL。若要測試,請輸入任何有效的 URL,例如
    對於
    身分提供者**,選擇 Cognito 使用者集區Google
    對於 OAuth 2.0 授權類型,請選擇隱含授與
    對於 OpenID Connect 範圍,請選擇電子郵件openid設定檔
    **重要事項:**隱含授與 OAuth 流程僅用於測試目的。最佳實務是對生產系統使用授權碼授與類型。
  5. 選擇建立應用程式用戶端

如需詳細資訊,請參閱 App client terms

建構端點 URL

若要建構 Amazon Cognito 託管 Web UI 的登入端點 URL,請使用使用者集區中的值。

網址範例:

注意:yourDomainPrefixregion 取代為您的使用者集區值。若要尋找這些值,請開啟 Amazon Cognito 主控台,然後瀏覽至使用者集區的網域名稱頁面。將 yourClientId 取代為您的 Amazon Cognito 應用程式用戶端 ID,並將 redirectUrl 取代為您的應用程式用戶端的回呼 URL。在使用者集區的應用程式用戶端設定頁面上尋找這些值。

如需詳細資訊,請參閱如何為 Amazon Cognito 設定託管 Web UI?Login endpoint

測試端點 URL

請完成下列步驟:

  1. 在您的 Web 瀏覽器中輸入登入端點 URL。
  2. 在登入端點網頁上,選擇使用 Google 繼續
    **注意:**如果您已被重新導向 Amazon Cognito 應用程式用戶端的回呼 URL,則表示您已在瀏覽器登入至您的 Google 帳戶。使用者集區權杖會顯示在 Web 瀏覽器網址列的 URL 中。
  3. 使用 Google 登入下方,選擇您的 Google 帳戶並登入。

驗證後,系統會將您重新導向到 Amazon Cognito 應用程式用戶端的回呼 URL。使用者集區發行的 JSON Web 權杖 (JWT) 會顯示在 Web 瀏覽器的網址列的 URL 中。

**注意:**JavaScript SDK 會產生登入端點的 URL。SDK 也會剖析 URL 中的 JWT 權杖。

相關資訊

在使用者集區中使用社交身分提供商

透過第三方新增使用者集區登入

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