本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
新增社交登入至使用者集區 (選用)
您可以讓您的應用程式使用者透過社交身分提供者 (如 Facebook、Google、Amazon 和 Apple) 登入 (IdP)。無論您的使用者直接或透過第三方間接登入,所有使用者在使用者集區中都有設定檔。如果您不想新增透過社交登入的身分提供者,請略過此步驟。
使用社交 IdP 註冊
與 Amazon Cognito 建立社交 IdP 之前,您必須將您的應用程式註冊至社交 IdP 以接收用戶端 ID 和用戶端密碼。
-
使用您的 Facebook 憑證登入
。 -
從 My Apps (我的應用程式) 選單中,選擇 Create New App (建立新的應用程式)。
如果您沒有現有的 Facebook 應用程序,則會看到不同的選項。選擇 Create App (建立應用程式)。
-
在建立應用程式頁面上,選擇應用程式的使用案例,然後選擇下一步。
-
輸入您 Facebook 應用程式的名稱,然後選擇建立應用程式 ID。
-
在左側導覽列中,選擇應用程式設定,然後選擇基本。
-
記下 App ID (應用程式 ID) 和 App Secret (應用程式秘密)。您會在下一節中用到它們。
-
從頁面底部選擇 + 新增平台。
-
在 [選取平台] 畫面上,選取您的平台,然後選擇 [下一步]。
-
選擇儲存變更。
-
對於 App Domains (應用程式網域),輸入您的使用者集區網域。
https://
your_user_pool_domain
-
選擇儲存變更。
-
從導覽列選擇「產品」,然後選擇「從 Facebook 登入設定」。
-
從 Facebook 登入、設定選單中,選擇設定。
在 Valid OAuth Redirect URIs (有效的 OAuth 重新引導 URI) 中輸入您的重新導向 URL。重新導向 URL 是由您的使用者集區網域和
/oauth2/idpresponse
端點所組成。https://
your_user_pool_domain
/oauth2/idpresponse -
選擇 Save changes (儲存變更)。
-
使用您的 Amazon 憑證登入
。 -
您需要建立 Amazon 安全性設定檔以便接收 Amazon 用戶端 ID 和用戶端秘密。
從頁面頂端的導覽列選擇「應用程式和服務」,然後選擇「Login with Amazon」。
-
選擇 Create a Security Profile (建立安全性設定檔)。
-
輸入 Security Profile Name (安全設定檔名稱)、Security Profile Description (安全設定檔描述) 和 Consent Privacy Notice URL (同意隱私權聲明 URL)。
-
選擇 Save (儲存)。
-
選擇 Client ID (用戶端 ID) 和 Client Secret (用戶端秘密),以顯示用戶端 ID 和秘密。您會在下一節中用到它們。
-
將滑鼠移到齒輪圖示上方並選擇 Web Settings (Web 設定),然後選擇 Edit (編輯)。
-
在 Allowed Origins (允許的來源) 中輸入您的使用者集區網域。
https://
<your-user-pool-domain>
-
在 Allowed Return URLs (允許的傳回 URL) 中輸入具有
/oauth2/idpresponse
端點的使用者集區網域。https://
<your-user-pool-domain>
/oauth2/idpresponse -
選擇 Save (儲存)。
如需 Google Cloud Platform 中 OAuth 2.0 的詳細資訊,請參閱 Google Workspace for Developers 文件中的瞭解身分驗證和授權
-
在頂端導覽列中,選擇 Select a project (選取專案)。如果您在 Google 平台中已經有專案,則此功能表將改為顯示您的預設專案。
-
選擇 NEW PROJECT (新專案)。
-
輸入專案的名稱,然後選擇 CREATE (建立)。
-
在左側導航欄上,選擇 API 和服務,然後選擇 Oauth 同意屏幕。
-
輸入應用程式資訊、應用程式網域、授權網域和開發人員聯絡資訊。您的授權網域必須包含
amazoncognito.com
自訂網域的根目錄。例如:example.com
。選擇 SAVE AND CONTINUE (儲存並繼續)。 -
1. 在 [範圍] 下,選擇 [新增或移除範圍],然後至少選擇下列 OAuth 範圍。
-
.../auth/userinfo.email
-
.../auth/userinfo.profile
-
openid
-
-
在 Test users (測試使用者) 下方,選擇 Add users (新增使用者)。輸入您的電子郵件地址和任何其他授權測試使用者,然後選擇 [儲存並繼續]。
-
再次展開左側導覽列,選擇 [API 和服務],然後選擇 [認證]。
-
選擇 [建立認證],然後選擇 [OAuth 用戶端識別碼]。
-
選擇 Application type (應用程式類型),並為您的用戶端取一個 Name (名稱)。
-
在 [授權 JavaScript 來源] 下,選擇 [新增 URI]。輸入您的使用者集區網域。
https://
<your-user-pool-domain>
-
在 Authorized redirect URIs (授權的重新導向 URI) 下方,選擇 ADD URI (新增 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 (識別碼) 頁面上,選擇 + 圖示。
-
在 Register a New Identifier (註冊新的識別碼) 頁面上,選擇 App IDs (應用程式 ID),然後選擇 Continue (繼續)。
-
在 [選取類型] 頁面上,選擇 [應用程式],然後選擇 [繼續]。
-
在 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 (編輯)。
-
在 Sign in with Apple: App ID Configuration (Sign in with Apple:應用程式 ID 組態) 頁面上,選擇將應用程式設定為主要應用程式或與其他應用程式 ID 群組,然後選擇 Save (儲存)。
-
選擇繼續。
-
-
在 Confirm your App ID (確認您的應用程式 ID) 頁面上,選擇 Register (註冊)。
-
在 Identifiers (識別碼) 頁面上,選擇 + 圖示。
-
在 Register a New Identifier (註冊新的識別碼) 頁面上,選擇 Services IDs (服務 ID),然後選擇 Continue (繼續)。
-
在 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)。
-
在 Website URLs (網站 URL) 旁邊選擇 + 圖示。
-
在 Domains and subdomains (網域與子網域) 下方,輸入不含
https://
字首的使用者集區網域。<your-user-pool-domain>
-
在 Return URLs (傳回 URL) 下,輸入您使用者集區網域的
/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。選擇儲存。
-
選擇 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 和 Login with 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 (身分提供者) 下的應用程式用戶端。
-
選擇儲存變更。
測試社交 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
」錯誤訊息。