如何在 Amazon Cognito 使用者集區中將 Google 設定為聯合身分提供者?
我想在 Amazon Cognito 使用者集區中使用 Google 作為聯合身分提供者 (IdP)。
解決方法
Amazon Cognito 使用者集區允許透過第三方 (聯合) 登入。這包括透過 Google 或 Facebook 等社交 IdP。如需詳細資訊,請參閱將社交身分提供者新增至使用者集區。
使用應用程式用戶端和網域名稱建立 Amazon Cognito 使用者集區
- 建立使用者集區。
注意:建立時,依預設會選取標準屬性電子郵件。如需詳細資訊,請參閱使用者集區屬性。 - 在使用者集區中建立應用程式用戶端。如需詳細資訊,請參閱新增應用程式以開啟託管 Web UI。
- 為使用者集區新增網域名稱。
建立 Google API 主控台專案
如果您已具有專案,請建立新專案:
- 使用您的 Google 帳戶登入 Google API 主控台。如需詳細資訊,請參閱 Google 說明網站上的 在 API 主控台中管理 API。
- 在儀表板 (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 網域。例如:https://yourDomainPrefix.auth.region.amazoncognito.com 。
注意:將 yourDomainPrefix 和 region 取代為您的使用者集區值。在使用者集區網域名稱頁面的 Amazon Cognito 主控台上找到這些值。
對於授權重新導向 URI,輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse。
**注意:**將 yourDomainPrefix 和 region 取代為您的使用者集區值。如需詳細資訊,請參閱上一步。 - 在 OAuth 用戶端對話方塊中,找到用戶端 ID 和用戶端密碼,然後記下它們以供稍後使用。在 Amazon Cognito 使用者集區中設定 Google 時,您需要使用這些資訊。
如需詳細資訊,請參閱 Google Identity 網站上的使用 OAuth 2.0 存取 Google API。
將 Google 設定為使用者集區中的聯合 IdP
- 在 Amazon Cognito 主控台中,選擇使用者集區。
- 選取您要使用的使用者集區。
- 選擇登入體驗索引標籤。
- 在聯合身分提供者登入下方,選擇新增身分提供者。
- 選取 Google。然後,在使用此使用者集區設定 Google 聯合下方:
對於用戶端 ID,貼上您在上一步中記下的用戶端 ID。
對於用戶端密碼,貼上在上一步中記下的用戶端機密。
對於授權範圍,輸入設定檔電子郵件 OpenID。 - 在 Google 與使用者集區之間的映射屬性下方:
對於電子郵件屬性的使用者集區屬性,映射至電子郵件的 Google 屬性。
選擇新增其他屬性,然後將使用者名稱的使用者集區屬性映射至使用者名稱的 Google 屬性。 - 選擇新增身分提供者。
變更使用者集區的應用程式用戶端設定
**注意:**在應用程式用戶端設定中,映射的使用者集區屬性必須是可寫入的。如需詳細資訊,請參閱為使用者集區指定身分提供者屬性對應。
- 在 Amazon Cognito 主控台中,選擇您的使用者集區。
- 選擇應用程式整合標籤。
- 在應用程式用戶端清單下,選取建立應用程式用戶端。
- 對於應用程式類型,請選取公有用戶端。然後,輸入應用程式用戶端的名稱。
對於驗證流程,選取ALLOW_USER_PASSWORD_AUTH 和 ALLOW_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 流程僅用於測試目的。最佳實務是對生產系統使用授權碼授與。 - 選擇建立應用程式用戶端。
如需詳細資訊,請參閱應用程式用戶端設定術語。
建構端點 URL
利用使用者集區的值,為 Amazon Cognito 託管的 Web UI 建構此登入端點 URL:https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
注意:將 yourDomainPrefix 和 region 取代為您的使用者集區值。在使用者集區網域名稱頁面的 Amazon Cognito 主控台上找到這些值。將 yourClientId 取代為您的 Amazon Cognito 應用程式用戶端 ID,並將 redirectUrl 取代為您的應用程式用戶端的回呼 URL。在使用者集區應用程式用戶端設定頁面的 Amazon Cognito 主控台上找到這些項目。
如需詳細資訊,請參閱如何為 Amazon Cognito 設定託管 Web UI?和登入端點。
測試端點 URL
- 在 Web 瀏覽器輸入建構的登入端點 URL。
- 在登入端點網頁上,選擇使用 Google 繼續。
**注意:**如果您已被重新導向 Amazon Cognito 應用程式用戶端的回呼 URL,則表示您已在瀏覽器登入至您的 Google 帳戶。使用者集區權杖會顯示在網頁瀏覽器網址列的 URL 中。 - 在使用 Google 登入下方,選擇您的 Google 帳戶並登入。
驗證成功後,系統會將您重新導向至 Amazon Cognito 應用程式用戶端的回呼 URL。使用者集區發行的 JSON Web 權杖 (JWT) 會顯示在 Web 瀏覽器的網址列的 URL 中。
**注意:**在真實世界的 Web 應用程式中,登入端點的 URL 是由 JavaScript SDK 產生。這也會剖析 URL 中的 JWT 權杖。
相關資訊
相關內容
- 已提問 10 個月前lg...
- 已提問 10 個月前lg...
- 已提問 9 個月前lg...
- 已提問 6 個月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 6 個月前