為您的使用者集區配置身分提供者 - Amazon Cognito

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為您的使用者集區配置身分提供者

透過使用者集區,您可以透過各種外部身分提供者 () 實作登入IdPs。本指南的本節說明如何使用 Amazon Cognito 主控台中的使用者集區來設定這些身分提供者。或者,您可以使用使用者集區API和 AWS SDK以程式設計方式新增使用者集區身分提供者。如需詳細資訊,請參閱 CreateIdentityProvider

支援的身分提供者選項包括 Facebook、Google 和 Amazon 等社交提供者,以及 OpenID Connect (OIDC) 和 SAML 2.0 提供者。開始之前,請先為 IdP 設定管理憑證。針對每種類型的提供者,您需要註冊應用程式、取得必要的憑證,然後在使用者集區中設定提供者詳細資訊。然後,您的使用者可以使用其來自已連線身分提供者的現有帳戶註冊和登入您的應用程式。

聯合身分提供者登入下的登入體驗索引標籤會新增和更新使用者集區 IdPs。如需詳細資訊,請參閱透過第三方新增使用者集區登入

使用社交 IdP 設定使用者登入

您可以使用聯合來整合 Amazon Cognito 使用者集區與社交身分提供者 (例如 Facebook、Google、Login with Amazon)。

若要新增社交身分提供者,請先以身分提供者來建立開發人員帳戶。有了開發人員帳戶之後,再向身分提供者註冊您的應用程式。身分提供者會為您的應用程式建立應用程式 ID 和密碼,您再將這些值設定在您的 Amazon Cognito 使用者集區中。

整合使用者登入與社交 IdP
  1. 登入 Amazon Cognito 主控台。如果出現提示,請輸入您的 AWS 憑證。

  2. 在導覽窗格中,選擇 User Pools (使用者集區),然後選擇您要編輯的使用者集區。

  3. 選擇 Sign-in experience (登入體驗) 索引標籤並找到 Federated sign-in (聯合登入)。

  4. 選擇 Add an identity provider (新增身分提供者),或選擇 FacebookGoogleAmazon 或者 Apple 身分提供者,請找到 Identity provider information (身分提供者資訊),然後選擇 Edit (編輯)。如需有關新增社交身分提供者的詳細資訊,請參閱 搭配使用者集區使用社交身分提供者

  5. 根據您選擇的 IdP,完成下列其中一個步驟,輸入社交身分提供者的資訊:

    Facebook、Google 和 Login with Amazon

    輸入您在建立用戶端應用程式時,所收到的應用程式 ID 和應用程式密碼。

    Sign In with Apple

    輸入您提供給 Apple 的服務 ID,以及您在建立應用程式用戶端時收到的團隊 ID、金鑰 ID 和私有金鑰。

  6. 針對 Authorize scopes (授權範圍),輸入您想要映射至使用者集區屬性的社交身分提供者範圍名稱。範圍可定義您要透過應用程式來存取的使用者屬性 (例如名稱和電子郵件)。輸入範圍時,請根據您選擇的 IdP 使用下列指導方針:

    • Facebook – 以逗號分隔範圍。例如:

      public_profile, email

    • Google、Login with Amazon 和 Sign In with Apple – 使用空格分隔範圍。例如:

      • Google:profile email openid

      • Login with Amazon:profile postal_code

      • Sign in with Apple:name email

        注意

        針對 Sign in with Apple (主控台),請使用核取方塊選擇範圍。

  7. 選擇 Save changes (儲存變更)。

  8. App client integration (應用程式用戶端整合) 索引標籤選擇清單中的 App clients (應用程式用戶端) 之一,然後選擇 Edit hosted UI settings (編輯託管 UI 設定)。將新的社交身分提供者新增至 Identity providers (身分提供者) 下的應用程式用戶端。

  9. 選擇 Save changes (儲存變更)。

如需社交 的詳細資訊 IdPs,請參閱 搭配使用者集區使用社交身分提供者

使用 IdP OIDC 設定使用者登入

您可以將使用者登入與 OpenID Connect (OIDC) 身分提供者 (IdP) 整合,例如 Salesforce 或 Ping Identity。

將OIDC提供者新增至使用者集區
  1. 前往 Amazon Cognito 主控台。如果出現提示,請輸入您的 AWS 憑證。

  2. 從導覽選單中,選擇 Users Pools (使用者集區)。

  3. 從清單中選擇現有的使用者集區,或建立使用者集區

  4. 選擇 Sign-in experience (登入體驗) 索引標籤。找到 Federated sign-in (聯合登入),然後選取 Add an identity provider (新增身分提供者)。

  5. 選擇 OpenID Connect 身分提供者。

  6. Provider name (供應商名稱) 中輸入唯一的名稱。

  7. Client ID (用戶端 ID) 中輸入您從供應商處收到的用戶端 ID。

  8. Client secret (用戶端密碼) 中輸入您從供應商處收到的用戶端密碼。

  9. 輸入此供應商的 Authorized scopes (授權範圍)。範圍會定義您的應用程式從您的供應商請求的使用者屬性群組 (例如 nameemail)。範圍必須依照 OAuth2.0 規格以空格分隔。

    您的使用者必須同意提供這些屬性給應用程式。

  10. 選擇 Attribute 請求方法,為 Amazon Cognito 提供方法 (GET或 POST),Amazon Cognito 會使用該HTTP方法從提供者操作的userInfo端點擷取使用者的詳細資訊。

  11. 選擇設定方法,透過發行者自動填入URL或手動輸入 來擷取 OpenID Connect 端點。 當您的提供者有公有.well-known/openid-configuration端點,Amazon Cognito 可以擷取 authorizationuserInfo、 和 jwks_uri端點URLs的 token時,請使用自動填入發行者URL

  12. URLs 從 IdP authorization token輸入發行者URL或 userInfo、、 和 jwks_uri端點。

    注意

    您只能使用連接埠號碼 443 和 80 搭配探索、自動填入和手動輸入 URLs。如果您的OIDC提供者使用任何非標準TCP連接埠,則使用者登入會失敗。

    發行者URL必須以 開頭https://,且不得以/字元結尾。例如,Salesforce 使用此 URL:

    https://login.salesforce.com

    與發行者相關聯的openid-configuration文件URL必須提供HTTPSURLs下列值:authorization_endpointuserinfo_endpointtoken_endpointjwks_uri。同樣地,當您選擇手動輸入 時,您只能輸入 HTTPS URLs。

  13. 根據預設,OIDC宣告會對應至使用者集區屬性使用者名稱。您可以將其他OIDC宣告對應至使用者集區屬性。輸入OIDC宣告,然後從下拉式清單中選取對應的使用者集區屬性。例如,宣告 email 通常對應至使用者集區屬性 Email

  14. 將身分提供者的其他屬性映射至您的使用者集區。如需詳細資訊,請參閱為您的使用者集區指定身分提供者屬性映射

  15. 選擇 Create (建立)。

  16. App client integration (應用程式用戶端整合) 索引標籤選取清單中的 App clients (應用程式用戶端) 之一,和 Edit hosted UI settings (編輯託管 UI 設定)。將新的OIDC身分提供者新增至身分提供者 下的應用程式用戶端。

  17. 選擇 Save changes (儲存變更)。

如需 的詳細資訊OIDC IdPs,請參閱 將OIDC身分提供者與使用者集區搭配使用

使用 IdP SAML 設定使用者登入

您可以使用聯合 Amazon Cognito 使用者集區與SAML身分提供者 (IdP整合。您可以上傳檔案或輸入中繼資料文件端點 來提供中繼資料文件URL。如需取得第三方 中繼資料文件的資訊SAML IdPs,請參閱 設定您的第三方SAML身分提供者

在使用者集區中設定 SAML 2.0 身分提供者
  1. 前往 Amazon Cognito 主控台。如果出現提示,請輸入您的 AWS 憑證。

  2. 選擇 User Pools (使用者集區)。

  3. 從清單中選擇現有的使用者集區,或建立使用者集區

  4. 選擇 Sign-in experience (登入體驗) 索引標籤。找到 Federated sign-in (聯合登入),然後選取 Add an identity provider (新增身分提供者)。

  5. 選擇SAML身分提供者。

  6. 輸入以逗號分隔的 Identifiers (識別符)。識別符指示 Amazon Cognito 檢查使用者登入電子郵件地址,然後將使用者導向至與其網域對應的供應商。

  7. 如果您希望 Amazon Cognito 在使用者登出時傳送已簽署的登出請求給您的供應商,則請選擇 Add sign-out flow (新增登出流程)。設定 SAML 2.0 身分提供者,將登出回應傳送至 Amazon Cognito 在您設定託管 UI 時建立的https://mydomain.us-east-1.amazoncognito.com/saml2/logout端點。saml2/logout 端點使用POST繫結。

    注意

    如果您選取此選項,且SAML身分提供者預期會有已簽署的登出請求,則也必須使用 IdP 設定 Amazon Cognito SAML 提供的簽署憑證。

    IdP SAML 將處理已簽署的登出請求,並將您的使用者從 Amazon Cognito 工作階段登出。

  8. 選擇 Metadata document source (中繼資料文件來源)。如果您的身分提供者在公有 提供SAML中繼資料URL,您可以選擇中繼資料文件URL並輸入該公有 URL。否則,請選擇 Upload metadata document (上傳中繼資料文件),然後選取您先前從供應商處下載的中繼資料檔案。

    注意

    如果您的提供者有公有端點,建議您輸入中繼資料文件 URL,而不是上傳檔案。如果您使用 URL,Amazon Cognito 會自動重新整理中繼資料。通常每 6 小時或是在中繼資料過期之前 (取較早的時間) 重新整理中繼資料。

  9. 在SAML提供者和應用程式之間映射屬性,將SAML提供者屬性映射到使用者集區中的使用者設定檔。在屬性對應中包含您的使用者集區必要屬性。

    例如,當您選擇使用者集區屬性email,請輸入出現在身分提供者SAML宣告中的SAML屬性名稱。您的身分提供者可能會提供範例SAML聲明以供參考。有些身分提供者使用簡單的名稱,例如 email,而其他身分提供者則使用 URL格式化的屬性名稱,類似於:

    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  10. 選擇 Create (建立)。

注意

如果您在建立具有HTTPS中繼資料端點 的 SAML IdP InvalidParameterException時看到 URL,請確定中繼資料端點已SSL正確設定,且具有與其相關聯的有效SSL憑證。這種例外狀況的一個範例是「從 擷取中繼資料時發生錯誤 <metadata endpoint>".

若要設定 SAML IdP 以新增簽署憑證
  • 若要取得包含 IdP 用來驗證簽署登出請求之公有金鑰的憑證,請在聯合主控台頁面的身分提供者SAML對話方塊下,選擇在作用中SAML提供者顯示簽署憑證

如需詳細資訊,SAML IdPs 請參閱 將SAML身分提供者與使用者集區搭配使用