我想在 Amazon Cognito 使用者集區中使用 Google 作為聯合身分提供者 (IdP)。
解決方法
使用應用程式用戶端和網域名稱建立 Amazon Cognito 使用者集區
請完成下列步驟:
- 建立新的使用者集區。
**注意:**建立使用者集區時,依預設會選取標準屬性電子郵件。
- 在使用者集區中建立應用程式用戶端。
- 為使用者集區新增網域名稱。
建立 Google API 主控台專案
請完成下列步驟:
- 使用您的 Google 帳戶登入 Google API 主控台。如需詳細資訊,請參閱 Google 說明網站上的 Manage APIs in the API console。
- 在儀表板 (API 和服務) 上,選擇建立。
- 在新專案下,輸入專案名稱。
- 對於位置,選擇瀏覽,然後選取位置。
- 選擇建立。
如需詳細資訊,請參閱 Google Identity 網站上的使用 Google 帳戶登入網頁版。
設定 OAuth 同意畫面
請完成下列步驟:
- 開啟 Google API 主控台,然後左側導覽窗格中,選擇 OAuth 同意畫面。
- 填寫同意表單上的以下必填欄位:
對於應用程式名稱,輸入名稱。
對於授權網域,輸入 amazoncognito.com。
**重要事項:**您必須輸入此網域,才能在建立 OAuth 用戶端 ID 時使用 Amazon Cognito 網域。
- 選擇儲存。
如需詳細資訊,請參閱 Google Workspace 網站上的完成 OAuth 同意畫面。
取得 OAuth 2.0 用戶端憑證
請完成下列步驟:
- 開啟 Google API 主控台,然後在憑證頁面上,選擇建立憑證。
- 選擇 OAuth 用戶端 ID。
- 在建立 OAuth 用戶端 ID 頁面中,對於應用程式類型,選擇 Web 應用程式。
- 輸入下列資訊:
對於名稱,輸入您的 OAuth 用戶端 ID。
對於授權的 JavaScript 來源,輸入您的 Amazon Cognito 網域,例如:
注意:將 yourDomainPrefix 和 region 取代為您的使用者集區值。若要尋找這些值,請開啟 Amazon Cognito 主控台,然後瀏覽至使用者集區的網域名稱頁面。
對於授權重新導向 URI**,輸入 **
**注意:**將 yourDomainPrefix 和 region 取代為您的使用者集區值。
- 在 OAuth 用戶端對話方塊中,記下用戶端 ID 和用戶端密碼,以在稍後的步驟中使用。
如需詳細資訊,請參閱 Google Identity 網站上的使用 OAuth 2.0 存取 Google API。
將 Google 設定為使用者集區中的聯合 IdP
請完成下列步驟:
- 開啟 Amazon Cognito 主控台,然後選擇使用者集區。
- 選取您的使用者集區。
- 選擇登入體驗索引標籤。
- 在聯合身分提供者登入下方,選擇新增身分提供者。
- 選取 Google。
- 在使用此使用者集區設定 Google 聯合下方,輸入下列資訊:
對於用戶端 ID,輸入您記下的用戶端 ID。
對於用戶端密碼,輸入記下的用戶端密碼。
對於授權範圍,輸入設定檔電子郵件 OpenID。
- 在 Google 與使用者集區之間的映射屬性下方,將電子郵件的使用者集區屬性映射至電子郵件的 Google 屬性。
- 選擇新增其他屬性,然後將使用者名稱的使用者集區屬性映射至使用者名稱的 Google 屬性。
- 選擇新增身分提供者。
變更使用者集區的應用程式用戶端設定
**注意:**在應用程式用戶端設定中,映射的使用者集區屬性必須是可寫入的。如需詳細資訊,請參閱 Specifying identity provider attribute mappings for your user pool。
請完成下列步驟:
- 開啟 Amazon Cognito 主控台,然後選取您的使用者集區。
- 選擇應用程式整合標籤。
- 在應用程式用戶端清單下,選擇建立應用程式用戶端。
- 輸入下列資訊:
在應用程式類型中,選擇公有用戶端,然後輸入您的應用程式用戶端名稱。
對於驗證流程,請選取ALLOW_USER_PASSWORD_AUTH 和 ALLOW_REFRESH_TOKEN_AUTH。
對於允許的****回呼 URL,輸入您希望使用者在登入後被重新導向的目標 URL。若要測試,請輸入有效的 URL,例如
對於登出 URL**,輸入您希望使用者在登出後被重新導向的目標 URL。若要測試,請輸入任何有效的 URL,例如
對於身分提供者**,選擇 Cognito 使用者集區和 Google。
對於 OAuth 2.0 授權類型,請選擇隱含授與。
對於 OpenID Connect 範圍,請選擇電子郵件、openid 和設定檔。
**重要事項:**隱含授與 OAuth 流程僅用於測試目的。最佳實務是對生產系統使用授權碼授與類型。
- 選擇建立應用程式用戶端。
如需詳細資訊,請參閱 App client terms。
建構端點 URL
若要建構 Amazon Cognito 託管 Web UI 的登入端點 URL,請使用使用者集區中的值。
網址範例:
注意:將 yourDomainPrefix 和 region 取代為您的使用者集區值。若要尋找這些值,請開啟 Amazon Cognito 主控台,然後瀏覽至使用者集區的網域名稱頁面。將 yourClientId 取代為您的 Amazon Cognito 應用程式用戶端 ID,並將 redirectUrl 取代為您的應用程式用戶端的回呼 URL。在使用者集區的應用程式用戶端設定頁面上尋找這些值。
如需詳細資訊,請參閱如何為 Amazon Cognito 設定託管 Web UI?和 Login endpoint。
測試端點 URL
請完成下列步驟:
- 在您的 Web 瀏覽器中輸入登入端點 URL。
- 在登入端點網頁上,選擇使用 Google 繼續。
**注意:**如果您已被重新導向 Amazon Cognito 應用程式用戶端的回呼 URL,則表示您已在瀏覽器登入至您的 Google 帳戶。使用者集區權杖會顯示在 Web 瀏覽器網址列的 URL 中。
- 在使用 Google 登入下方,選擇您的 Google 帳戶並登入。
驗證後,系統會將您重新導向到 Amazon Cognito 應用程式用戶端的回呼 URL。使用者集區發行的 JSON Web 權杖 (JWT) 會顯示在 Web 瀏覽器的網址列的 URL 中。
**注意:**JavaScript SDK 會產生登入端點的 URL。SDK 也會剖析 URL 中的 JWT 權杖。
相關資訊
在使用者集區中使用社交身分提供商
透過第三方新增使用者集區登入