我想使用第三方身分提供者 (IdP) 為 Amazon Cognito 使用者集區設定 AWS IAM Identity Center(AWS 單一登入的繼承者)。
簡短描述
Amazon Cognito 使用者集區允許透過第三方 IDP 登入。使用者可以使用 IAM Identity Center 透過安全性宣告標記語言版本 2.0 (SAML 2.0) IdP 進行聯合。如需詳細資訊,請參閱 Amazon Cognito 使用者集區中聯合登入的運作方式。
與 IAM Identity Center 整合的使用者集區允許使用者從 Amazon Cognito 獲取使用者集區權杖。如需詳細資訊,請參閱搭配使用者集區使用權杖。
解決方法
若要將 Amazon Cognito 使用者集區與 IAM Identity Center 整合,請執行下列步驟。
**注意:**如果您已經擁有應用程式用戶端的使用者集區,請跳過下列部分。
使用應用程式用戶端和網域名稱建立 Amazon Cognito 使用者集區
1. 建立使用者集區。
2. 新增應用程式用戶端並設定託管的 Web UI。
3. 為使用者集區新增網域名稱。
**注意:**如果您已經有工作的 IAM Identity Center 環境,請跳過下列部分。
啟動 IAM Identity Center 並新增使用者
1. 在啟用 IAM Identity Center 之前,請檢閱先決條件和注意事項。
2. 啟用 IAM 身份中心。
3. 選擇您的身分來源並建立使用者。
從 IAM Identity Center 主控台設定 SAML 應用程式
1. 開啟 IAM Identity Center 主控台,然後從導覽窗格中選擇應用程式。
2. 選擇新增應用程式和新增自訂 SAML 2.0 應用程式,然後選擇下一步。
3. 在設定應用程式頁面上,輸入顯示名稱和描述。
4. 複製 IAM Identity Center SAML 中繼資料檔案的 URL,或選擇下載超連結。您可以在以後步驟中使用這些資源在使用者集區中建立 IdP。
5. 在應用程式中繼資料下,選擇手動輸入中繼資料值。然後提供以下值。
**重要:**請確保將 domain-prefix、region 和 userpool-id 值替換為您的環境特定的資訊。
應用程式斷言使用者服務 (ACS) URL:https://<domain-prefix>.auth.<region>.amazoncognito.com/saml2/idpresponse
應用程式 SAML 對象:urn:amazon:cognito:sp:<userpool-id>
6. 選擇提交。然後,移至您新增的應用程式的詳細資訊頁面。
7. 選取動作下拉式清單,然後選擇編輯屬性對應。然後,提供下列屬性。
應用程序中的使用者屬性:subject
注意: subject 已預填。
對應至 IAM Identity Center 中的此字串值或使用者屬性:${user:subject}
格式: **持續 **
應用程式中的使用者屬性:email
對應至 IAM Identity Center 中的此字串值或使用者屬性:${user:email}
格式: 基本
登入時,對應的屬性會傳送至 Amazon Cognito。請確定您的所有使用者集區的必要屬性都已在此對應。若要進一步了解可用於對應的屬性,請參閱支援的 IAM Identity Center 屬性。
8. 儲存您的變更。
9. 選擇指派使用者按鈕,然後將您的使用者指派給應用程式。
將 IAM Identity Center 設定為使用者集區中的 SAML IdP
1. 在使用者集區中設定 SAML IdP。檢查下列設定:
在中繼資料文件下,提供中繼資料 URL 或上傳您在上一節步驟 4 中下載的檔案。如需詳細資訊,請參閱將第三方 SAML 身分提供者與 Amazon Cognito 使用者集區整合。
輸入您的 SAML 提供者名稱。如需詳細資訊,請參閱選擇 SAML 身分提供者名稱。
(選擇性) 輸入任何 SAML 識別碼。
2. 設定 SAML 提供者屬性對應。檢查下列設定:
在 SAML 屬性欄位中,提供與上一節步驟 7 中提供的使用者屬性值相符的電子郵件值。在使用者集區屬性欄位中,從下拉式清單中選取電子郵件。
**注意:**新增上一節步驟 7 在 IAM Identity Center 設定的任何其他屬性。
3. 儲存您的變更。
將 IdP 與使用者集區應用程式客戶端整合
1. 登入新的 Amazon Cognito 主控台。
2. 選擇使用者集區,然後選取適當的使用者集區。
3. 選擇應用程式整合標籤,然後選擇應用程式用戶端清單。
4. 選取適當的應用程式用戶端。
5. 從託管 UI區段中選擇編輯。
6. 選取適當的 IdP。
7. 儲存您的變更。
測試設定
1. 啟動託管的 UI 或使用下列命名模式建構登入端點 URL:
https://example_domain_prefix.auth.example_region.amazoncognito.com/login?response_type=token&client_id=example_client_id&redirect_uri=example_redirect_url
例如:https://my-user-pool.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=a1b2c3d4e5f6g7h8i9j0k1l2m3&redirect_uri=https://example.com
對於 OAuth 2.0 授權類型,請選擇授權代碼授予,以使登入端點在使用者登入時提示 Amazon Cognito 傳回授權代碼。對於 OAuth 2.0 授權類型,為 Amazon Cognito 選擇隱含授權,以便在使用者登入時傳回存取權杖。然後,將 URL 中的 response_type=code 替換為 response_type=token。
2. 選擇 IAM IdC。
如果您被重新導向到應用程式用戶端的回呼 URL,則表示您已經以使用者身分登入瀏覽器。使用者集區權杖會直接顯示在網頁瀏覽器網址列的 URL 中。
注意:若要跳過此步驟,請使用下列命名模式建立授權端點 URL:
https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes
3. 輸入使用者憑證,然後選擇登入。
4. 當您重新導向到瀏覽器的地址列中包含來自 Amazon Cognito 的代碼或權杖的回呼 URL 時,設定即告完成。
**注意:**Amazon Cognito 僅支援服務供應商 (SP) 啟動的登入。您必須使用登入端點或授權端點來測試設定。使用 IAM 身分中心的 AWS 存取入口網站啟動 IDP 起始的登入無法運作。