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

2 分的閱讀內容
0

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

解決方法

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

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

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

建立 Google API 主控台專案

如果您已具有專案,請建立新專案:

  1. 使用您的 Google 帳戶登入 Google API 主控台。如需詳細資訊,請參閱 Google 說明網站上的 在 API 主控台中管理 API
  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 控制台的憑證頁面上,選擇**建立憑證。**然後,選擇 OAuth 用戶端 ID
  2. 建立 OAuth 用戶端 ID 頁面中,對於應用程式類型,選擇 Web 應用程式
  3. 請執行下列操作:
    輸入 OAuth 用戶端 ID 的名稱
    對於授權的 JavaScript 來源,輸入您的 Amazon Cognito 網域。例如:https://yourDomainPrefix.auth.region.amazoncognito.com
    注意:yourDomainPrefixregion 取代為您的使用者集區值。在使用者集區網域名稱頁面的 Amazon Cognito 主控台上找到這些值。
    對於
    授權重新導向 URI
    ,輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse
    **注意:**將 yourDomainPrefixregion 取代為您的使用者集區值。如需詳細資訊,請參閱上一步。
  4. OAuth 用戶端對話方塊中,找到用戶端 ID 和用戶端密碼,然後記下它們以供稍後使用。在 Amazon Cognito 使用者集區中設定 Google 時,您需要使用這些資訊。

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

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

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

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

**注意:**在應用程式用戶端設定中,映射的使用者集區屬性必須是可寫入的。如需詳細資訊,請參閱為使用者集區指定身分提供者屬性對應

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

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

建構端點 URL

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

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

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

測試端點 URL

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

驗證成功後,系統會將您重新導向至 Amazon Cognito 應用程式用戶端的回呼 URL。使用者集區發行的 JSON Web 權杖 (JWT) 會顯示在 Web 瀏覽器的網址列的 URL 中。
**注意:**在真實世界的 Web 應用程式中,登入端點的 URL 是由 JavaScript SDK 產生。這也會剖析 URL 中的 JWT 權杖。

相關資訊

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

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