本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將社交登入新增至您的使用者集區
為使用者提供透過現有公有或社交登入應用程式的能力,身分提供者可以改善其身分驗證體驗。Amazon Cognito 使用者集區與 Facebook、Google、Amazon 和 Apple 等常用的社交身分提供者 (IdPs) 整合,為您的使用者提供他們已經熟悉的便捷登入選項。
當您設定社交登入時,您會為使用者提供建立專用帳戶的替代方案,但僅限為應用程式建立專用帳戶。這可以提高轉換率,並讓註冊程序更順暢。從使用者的角度來看,他們可以套用現有的社交登入資料來快速驗證,而不需要記住另一個使用者名稱和密碼。
在使用者集區中設定社交 IdP 需要幾個關鍵步驟。您必須向社交提供者註冊應用程式,才能取得用戶端 ID 和秘密。然後,您可以將社交 IdP 組態新增至使用者集區,指定您要請求的範圍,以及您要從 IdP 屬性映射的使用者集區屬性。在執行階段,Amazon Cognito 會處理與提供者的權杖交換、映射使用者屬性,並以共用使用者集區格式將權杖發佈至您的應用程式。
使用社交 IdP 註冊
與 Amazon Cognito 建立社交 IdP 之前,您必須將您的應用程式註冊至社交 IdP 以接收用戶端 ID 和用戶端密碼。
-
使用您的 Facebook 憑證登入
。 -
從 My Apps (我的應用程式) 選單中,選擇 Create New App (建立新的應用程式)。
如果您沒有現有的 Facebook 應用程式,您會看到不同的選項。選擇 Create App (建立應用程式)。
-
在建立應用程式頁面上,選擇應用程式的使用案例,然後選擇下一步。
-
輸入您 Facebook 應用程式的名稱,然後選擇建立應用程式 ID。
-
在左側導覽列中,選擇應用程式設定,然後選擇基本。
-
記下 App ID (應用程式 ID) 和 App Secret (應用程式秘密)。您會在下一節中用到它們。
-
從頁面底部選擇 + 新增平台。
-
在選取平台畫面上,選取您的平台,然後選擇下一步。
-
選擇 Save changes (儲存變更)。
-
對於 App Domains (應用程式網域),輸入您的使用者集區網域。
https://
your_user_pool_domain
-
選擇 Save changes (儲存變更)。
-
從導覽列中,選擇產品 ,然後選擇從 Facebook 登入 設定。
-
從 Facebook 登入、設定選單中,選擇設定。
將重新導向輸入URL有效的OAuth重新導向 URIs。重新導向URL由使用者集區網域與
/oauth2/idpresponse
端點組成。https://
your_user_pool_domain
/oauth2/idpresponse -
選擇 Save changes (儲存變更)。
-
使用您的 Amazon 憑證登入
。 -
您需要建立 Amazon 安全性設定檔以便接收 Amazon 用戶端 ID 和用戶端秘密。
從頁面頂端的導覽列中選擇應用程式和服務,然後選擇使用 Amazon 登入。
-
選擇 Create a Security Profile (建立安全性設定檔)。
-
輸入安全設定檔名稱 、安全設定檔描述 和同意隱私權聲明 URL。
-
選擇 Save (儲存)。
-
選擇 Client ID (用戶端 ID) 和 Client Secret (用戶端秘密),以顯示用戶端 ID 和秘密。您會在下一節中用到它們。
-
將滑鼠移到齒輪圖示上方並選擇 Web Settings (Web 設定),然後選擇 Edit (編輯)。
-
在 Allowed Origins (允許的來源) 中輸入您的使用者集區網域。
https://
<your-user-pool-domain>
-
將使用者集區網域與
/oauth2/idpresponse
端點輸入至允許傳回 URLs。https://
<your-user-pool-domain>
/oauth2/idpresponse -
選擇 Save (儲存)。
如需 Google Cloud OAuth 平台中 2.0 的詳細資訊,請參閱 Google Workspace for Developers 文件中的了解身分驗證和授權
-
在頂端導覽列中,選擇 Select a project (選取專案)。如果您在 Google 平台中已經有專案,則此功能表將改為顯示您的預設專案。
-
選取 NEW PROJECT。
-
輸入產品的名稱,然後選擇 CREATE。
-
在左側導覽列中,選擇 APIs 和服務 ,然後選擇 Oauth 同意畫面 。
-
輸入應用程式資訊、應用程式網域 、授權網域 和開發人員聯絡資訊 。您的授權網域必須包含
amazoncognito.com
和自訂網域的根。例如:example.com
。選擇 SAVE AND CONTINUE。 -
1. 在範圍 下,選擇新增或移除範圍 ,然後至少選擇下列OAuth範圍。
-
.../auth/userinfo.email
-
.../auth/userinfo.profile
-
openid
-
-
在 Test users (測試使用者) 下方,選擇 Add users (新增使用者)。輸入您的電子郵件地址和任何其他授權的測試使用者,然後選擇 SAVE AND CONTINUE。
-
再次展開左側導覽列,選擇 APIs 和服務 ,然後選擇憑證 。
-
選擇 CREATE CREDENTIALS,然後選擇OAuth用戶端 ID 。
-
選擇 Application type (應用程式類型),並為您的用戶端取一個 Name (名稱)。
-
在授權 JavaScript 原始伺服器 下,選擇 ADD URI。輸入您的使用者集區網域。
https://
<your-user-pool-domain>
-
在授權重新導向 URIs下,選擇 ADD URI。輸入您使用者集區網域的
/oauth2/idpresponse
端點路徑。https://
<your-user-pool-domain>
/oauth2/idpresponse -
選擇 CREATE。
-
安全地儲存 Google 在您的用戶端 ID和您的用戶端密碼下顯示的值。當您新增 Google IdP 時,請將這些值提供給 Amazon Cognito。
如需設定 Sign of Apple 的詳細資訊,請參閱 Apple Developer 文件中的設定 Sign in with Apple 的環境
-
使用您的 Apple 憑證登入
。 -
在左側導覽列上,選擇 Certificates, Identifiers & Profiles (憑證、識別碼與設定檔)。
-
在左側導覽列上,選擇 Identifiers (識別碼)。
-
在 Identifiers (識別碼) 頁面上,選擇 + 圖示。
-
在註冊新識別碼頁面上,選擇應用程式 IDs,然後選擇繼續 。
-
在選取類型頁面上,選擇應用程式 ,然後選擇繼續 。
-
在 Register an App ID (註冊應用程式 ID) 頁面上,執行下列操作:
-
在 Description (描述) 下方輸入描述。
-
在 App ID Prefix (應用程式 ID 字首) 下方,輸入 Bundle ID (套件 ID)。記下 App ID Prefix (應用程式 ID 字首) 下的值。在 步驟 2:新增社交 IdP 到您的使用者集區 中選擇 Apple 作為您的身分提供者之後,您將會使用此值。
-
在 Capabilities (功能) 下方,選擇 Sign In with Apple,然後選擇 Edit (編輯)。
-
在使用 Apple 登入:應用程式 ID 組態頁面上,選擇將應用程式設定為主要應用程式或與其他應用程式 分組IDs,然後選擇儲存 。
-
選擇繼續。
-
-
在 Confirm your App ID (確認您的應用程式 ID) 頁面上,選擇 Register (註冊)。
-
在 Identifiers (識別碼) 頁面上,選擇 + 圖示。
-
在註冊新識別符頁面上,選擇服務 IDs,然後選擇繼續 。
-
在 Register a Services ID (註冊服務 ID) 頁面上,執行下列操作:
-
在 Description (描述) 下方輸入描述。
-
在 Identifier (識別符) 中,輸入識別符。請記下此服務 ID,因為在 中選擇 Apple 做為身分提供者之後,您需要此值步驟 2:新增社交 IdP 到您的使用者集區。
-
選擇 Continue (繼續),然後選擇 Register (註冊)。
-
-
選擇您剛從識別符頁面建立的服務 ID。
-
選取 Sign In with Apple,然後選擇 Configure (設定)。
-
在 Web Authentication Configuration (Web 身分驗證組態) 頁面上,選取您稍早建立的應用程式 ID 作為 Primary App ID (主要應用程式 ID)。
-
選擇網站 URLs旁的 + 圖示。
-
在 Domains and subdomains (網域與子網域) 下方,輸入不含
https://
字首的使用者集區網域。<your-user-pool-domain>
-
在傳回 URLs下,輸入使用者集區網域
/oauth2/idpresponse
端點的路徑。https://
<your-user-pool-domain>
/oauth2/idpresponse -
選擇下一個 ,然後選擇完成 。您不須驗證網域。
-
選擇 Continue (繼續),然後選擇 Save (儲存)。
-
-
在左側導覽列上,選擇 Keys (金鑰)。
-
在 Keys (金鑰) 頁面上,選擇 + 圖示。
-
在 Register a New Key (註冊新的金鑰) 頁面上,執行下列操作:
-
在 Key Name (金鑰名稱) 下,輸入金鑰名稱。
-
選擇 Sign In with Apple,然後選擇 Configure (設定)。
-
在設定金鑰頁面上,選取您先前建立的應用程式 ID,做為主要應用程式 ID 。選擇 Save (儲存)。
-
選擇 Continue (繼續),然後選擇 Register (註冊)。
-
-
在下載您的金鑰頁面上,選擇下載以下載私有金鑰,記下顯示的金鑰 ID,然後選擇完成。您在 步驟 2:新增社交 IdP 到您的使用者集區 中選擇 Apple 當作身分提供者後,需有此頁面上顯示的私有金鑰和 Key ID (金鑰 ID) 值。
新增社交 IdP 到您的使用者集區
在本節中,您會使用上一節的用戶端 ID 和用戶端密碼,在使用者集區設定社交 IdP。
使用 設定使用者集區社交身分提供者 AWS Management Console
-
前往 Amazon Cognito 主控台
。系統可能會提示您輸入 AWS 憑證。 -
選擇 User Pools (使用者集區)。
-
從清單中選擇現有的使用者集區,或建立使用者集區。
-
選擇 Sign-in experience (登入體驗) 索引標籤。找到 Federated sign-in (聯合登入),然後選取 Add an identity provider (新增身分提供者)。
-
選擇社交身分提供者:Facebook、Google、Login with Amazon 或 Sign in with Apple。
-
根據您選擇的社交身分提供者,從以下步驟中選擇:
-
Google 和使用 Amazon 登入 – 輸入上一節中產生的應用程式用戶端 ID 和應用程式用戶端秘密。
-
Facebook – 輸入上一節中產生的應用程式用戶端 ID 和應用程式用戶端秘密,然後選擇API版本 (例如 2.12 版)。我們建議選擇最新的可能版本,每個 Facebook API 都有生命週期和棄用日期。Facebook 範圍和屬性可能因API版本而異。建議您使用 Facebook 測試您的社交身分登入,以確保聯合使用正常運作。
-
使用 Apple 登入 – 輸入上一節中產生的服務 ID、團隊 ID、金鑰 ID 和私有金鑰。
-
-
輸入您要使用的已授權範圍名稱。範圍可定義您要透過應用程式來存取的使用者屬性 (例如
name
和email
)。若為 Facebook,這些屬性應以逗號分隔。若為 Google 和登入 Amazon,則應以空格分隔。若為 Sign in with Apple,請針對您想要存取的範圍勾選核取方塊。社交身分提供者 範例範圍 Facebook public_profile, email
Google profile email openid
登入 Amazon profile postal_code
使用 Apple 登入 email name
會向您的應用程式使用者提示同意提供這些屬性給應用程式。如需社交供應商範圍的詳細資訊,請參閱 Google、Facebook、Login with Amazon 或 Sign in with Apple 提供的說明文件。
透過 Sign in with Apple,以下是可能未傳回範圍的使用者案例:
-
最終使用者在離開 Apple 的登入頁面後遇到失敗 (這些可能是 Amazon Cognito 的內部失敗或開發人員寫入的任何內容)。
-
服務 ID 識別符會跨使用者集區和/或其他身分驗證服務使用。
-
開發人員在使用者登入後新增額外的範圍。使用者只有在其進行身分驗證與重新整理其權杖時才會擷取新資訊。
-
開發人員會刪除使用者,然後使用者再次登入,而不從其 Apple ID 設定檔中移除應用程式。
-
-
將身分提供者的屬性映射至您的使用者集區。如需詳細資訊,請參閱對應的須知事項。
-
選擇 Create (建立)。
-
從 App client integration (應用程式用戶端整合) 索引標籤選擇清單中的 App clients (應用程式用戶端) 之一,和 Edit hosted UI settings (編輯託管 UI 設定)。將新的社交身分提供者新增至 Identity providers (身分提供者) 下的應用程式用戶端。
-
選擇 Save changes (儲存變更)。
測試社交 IdP 組態
您可以使用前兩個區段URL中的元素來建立登入。用來測試社交 IdP 組態。
https://
mydomain.us-east-1.amazoncognito.com
/login?response_type=code&client_id=1example23456789
&redirect_uri=https://www.example.com
您可以在使用者集區 Domain name (網域名稱) 主控台頁面上尋找您的網域。client_id 位於 App client settings (應用程式用戶端設定) 頁面上。將回呼URL用於 redirect_uri 參數。這是頁面URL的 ,您的使用者將在成功身分驗證後重新導向。
注意
身分驗證請求若未在 5 分鐘內完成,Amazon Cognito 會將該請求取消,並將使用者重新導向至託管的 UI。此頁面人會顯示「Something went wrong
」錯誤訊息。