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

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

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

同盟身分提供者登入下的 [登入體驗] 索引標籤中,您可以將身分識別提供者 (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. 選擇儲存變更

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

  9. 選擇儲存變更

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

使用 OIDC IdP 設定使用者登入

您可以使用 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)。範圍必須以空格隔開,遵循 OAuth 2.0 規格。

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

  10. 選擇 Attribute request method (屬性請求方法) 以提供 HTTP 方法 (GET 或 POST) 給 Amazon Cognito,Amazon Cognito 必須使用此方法從您的供應商操作的 userInfo 端點擷取使用者詳細資訊。

  11. 透過 Auto fill through issuer URL (透過發行者 URL 自動填入) 或 Manual input (手動輸入),選擇 Setup method (設定方法) 來擷取 OpenID Connect 端點。您的供應商擁有公有 .well-known/openid-configuration 端點 (Amazon Cognito 可在此處擷取 authorizationtokenuserInfojwks_uri 端點的 URL) 時,請使用 Auto fill through issuer URL (透過發行者 URL 自動填入)。

  12. 輸入發行者 URL 或您 IdP 的 authorizationtokenuserInfojwks_uri 端點 URL。

    注意

    您只能將連接埠號 443 和 80 用於探索、自動填入和手動輸入的 URL。如果您的 OIDC 供應商使用任何非標準 TCP 連接埠,使用者登入將會失敗。

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

    https://login.salesforce.com

    與您的發行者 URL 關聯的 openid-configuration 文件必須為以下值提供 HTTPS URL:authorization_endpointtoken_endpointuserinfo_endpoint,以及jwks_uri。同樣的,當您選擇 Manual input (手動輸入) 時,只能輸入 HTTPS URL。

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

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

  15. 選擇 Create (建立)。

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

  17. 選擇儲存變更

如需 OIDC 的詳細資訊 IdPs,請參閱。使用OIDC身分識別提供者與使用者集區

使用 SAML IdP 設定使用者登入

您可以使用 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 身分提供者,以便將登出回應傳送至您設定託管 UI 時 Amazon Cognito 建立的 https://mydomain.us-east-1.amazoncognito.com/saml2/logout 端點。saml2/logout 端點會使用 POST 繫結。

    注意

    如果選取此選項,您的 SAML 身分提供者預期簽署的登出要求,則您還必須設定由 Amazon Cognito 使用您的 SAML IdP 提供的簽署憑證。

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

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

    注意

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

  9. Map attributes between your SAML provider and your app (在 SAML 供應商與應用程式之間映射屬性),將 SAML 供應商屬性映射至使用者集區中的使用者描述檔。在屬性映射中包含您的使用者集區必要屬性。

    例如,當您選擇 User pool attribute (使用者集區屬性) email 時,隨著身分提供者 SAML 聲明中顯示的 SAML 屬性名稱輸入 SAML 屬性名稱。您的身分提供者可能會提供範例 SAML 聲明以供參考。有些身分供應商會使用簡單的名稱,例如 email,有些則會使用類似以下的 URL 格式屬性名稱:

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

注意

如果您以 HTTPS 中繼資料端點 URL 來建立 SAML IdP 時,看到 InvalidParameterException,請確定中繼資料端點已正確設定 SSL,並且有與其相關聯的有效 SSL 憑證。這種例外狀況的例子之一是「Error retrieving metadata from <metadata endpoint>」(從 <metadata endpoint> 錯誤擷取中繼資料)。

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

如需 SAML 的詳細資訊, IdPs 請參閱使用SAML身分識別提供者與使用者集區