跳至內容

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

3 分的閱讀內容
0

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

解決方法

建立 Amazon Cognito 使用者集區

在 Amazon Cognito 主控台中建立新的應用程式

建立 Google API 主控台專案

使用您的 Google 帳戶登入 Google API 主控台,然後建立 Google Cloud 專案。如需步驟,請參閱 Google Identity 網站上的使用 Google 網頁版登入和 Google Workspace 網站上的建立 Google Cloud 專案

設定 OAuth 同意畫面

請完成下列步驟:

  1. 開啟 Google API 主控台。
  2. 在導覽窗格中,選擇 OAuth consent screen (OAuth 同意畫面)。
  3. 在同意表單上設定以下必填欄位:
    Application name (應用程式名稱) 中,輸入名稱。
    Authorized domains (授權網域) 中,輸入 amazoncognito.com
    **重要:**建立 OAuth 用戶端 ID 時,您必須輸入此網域才能使用您的 Amazon Cognito 網域
  4. 選擇 Save (儲存)。

取得 OAuth 2.0 用戶端憑證

請完成下列步驟:

  1. 開啟 Google API 主控台。
  2. Credentials (憑證) 頁面上,選擇 Create credentials (建立憑證)。
  3. 選擇 OAuth 用戶端 ID
  4. Create OAuth client ID (建立 OAuth 用戶端 ID) 頁面的 Application type (應用程式類型) 中,選擇 Web application (Web 應用程式)。
  5. 設定下列設定:
    對於名稱,輸入您的 OAuth 用戶端 ID。
    對於授權的 JavaScript 來源,請輸入您的 Amazon Cognito 網域,例如 https://yourDomainPrefix.auth.region.amazoncognito.com
    注意:yourDomainPrefix 替換為您的使用者集區的網域,並將 region 替換為您使用者集區的 AWS 區域。 
    若要尋找您使用者集區的網域首碼和區域,請完成以下步驟:
    開啟 Amazon Cognito console (Amazon Cognito 主控台)。
    從左側導覽中選取 User Pools (使用者集區)。
    選擇您的使用者集區。
    在左側導覽功能表中,選擇 App integration (應用程式整合)。捲動到 Domain (網域) 區段以尋找您的網域首碼和區域。
    對於
    授權重新導向 URI
    ,輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse
    **注意:**將 yourDomainPrefixregion 替換為您使用者集區的值。
  6. OAuth client (OAuth 用戶端) 對話方塊中,記下用戶端 ID 和用戶端密碼。

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

使用 Amazon Cognito 主控台為您的使用者集區設定社交 IdP,並設定以下設定:

  • Add an identity provider (新增身分提供者),選擇 Google
  • Map attributes between Google and your user pool (Google 與使用者集區之間的對應屬性) 下,將 email (電子郵件) 的 User pool attribute (使用者集區屬性) 對應至 email. (電子郵件) 的 Google attribute (Google 屬性)。

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

**注意:**在應用程式用戶端設定中,已對應的使用者集區屬性必須是可寫入的。如需詳細資訊,請參閱將 IdP 屬性對應到設定檔和權杖

請完成下列步驟:

  1. 開啟 Amazon Cognito console (Amazon Cognito 主控台)。
  2. 選擇 User pools (使用者集區),然後選擇您的使用者集區。
  3. 選擇 App integration (應用程式整合) 索引標籤。
  4. App client list (應用程式用戶端清單) 下,選擇 Create app client (建立應用程式用戶端)。
  5. 設定下列設定:
    應用程式類型中,選擇公有用戶端,然後輸入您的應用程式用戶端名稱。
    對於驗證流程,請選取ALLOW_USER_PASSWORD_AUTHALLOW_REFRESH_TOKEN_AUTH
    Allowed Callback URL(s), (允許的回呼網址) 中,輸入使用者登入後要重新導向的網址。若要測試,請輸入有效的網址,例如 https://www.example.com/
    Sign out URL(s) (登出網址) 中,輸入使用者登出後要重新導向的網址。若要測試,請輸入有效的網址,例如 https://www.example.com/
    Identity providers (身分提供者),選擇 Cognito user pool (Cognito 使用者集區) 和 Google
    OAuth 2.0 grant type (OAuth 2.0 授權類型),選擇 Implicit grant (隱式授權)。
    對於 OpenID Connect 範圍,請選擇電子郵件openid設定檔
    **重要:**隱含授與 OAuth 流程僅用於測試目的。最佳實務是對生產系統使用授權碼授與類型。
  6. 選擇 Create app client (建立應用程式用戶端)。

如需應用程式用戶端設定的詳細資訊,請參閱應用程式用戶端條款

建構端點網址

若要建構 Amazon Cognito 託管 Web UI 的登入端點網址,請使用下列格式:

https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

**注意:**將 yourDomainPrefix 替換為您的使用者集區的網域,並將 region 替換為您使用者集區的區域。將 yourClientId 替換為您的 Amazon Cognito 應用程式用戶端的 ID,並將 redirectUrl 替換為您的應用程式用戶端的回呼網址。

若要尋找您使用者集區的網域首碼和區域,請完成以下步驟:

  1. 開啟 Amazon Cognito console (Amazon Cognito 主控台)。
  2. 從左側導覽中選取 User Pools (使用者集區)。
  3. 選取您的使用者集區。
  4. 在左側導覽功能表中,選擇 App integration (應用程式整合)。
  5. 捲動到 Domain (網域) 區段以尋找您的網域首碼和區域。

若要尋找您的 ClientID 和 redirectUrl,請完成以下步驟:

  1. 開啟 Amazon Cognito console (Amazon Cognito 主控台)。
  2. 從左側導覽中選擇 User Pools (使用者集區)。
  3. 選取您的使用者集區。
  4. 在左側導覽功能表中,選擇 App integration (應用程式整合)。
  5. 捲動到 App clients (應用程式用戶端) 以尋找您的 ClientId 和 redirectUrl。
    **注意:**選取應用程式用戶端,以查看其詳細資訊,包括已設定的重新導向網址。

測試端點網址

請完成下列步驟:

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

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

相關資訊

將社交身分提供者與使用者集區搭配使用

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

在 Google 說明網站上的 API 主控台中管理 API