我想使用 Active Directory Federation Services (AD FS) 作為 SAML 2.0 身分提供者 (IdP),與 Amazon Cognito 使用者集區整合。
解決方法
**先決條件:**您必須擁有一個網域才能使用 Amazon Cognito 使用者集區設定 AD FS。如果您沒有網域,則可以使用 Amazon Route 53 或其他 DNS 服務註冊新網域。
使用受管登入建立 Amazon Cognito 使用者集區
建立 Amazon Cognito 使用者集區,然後設定受管登入。
設定 Amazon EC2 Windows 執行個體
請完成下列步驟:
- 啟動 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體。
- 在 Amazon EC2 Windows 執行個體上設定 AD FS 伺服器和網域控制器。
如需說明,請參閱如何在 Amazon EC2 Windows 執行個體上設定 AD FS,以與 Amazon Cognito 使用者集區聯合使用?
在 Amazon Cognito 中將 AD FS 設定為 SAML IdP
請完成下列步驟:
- 在您的使用者集區中設定 SAML 2.0 IdP。您可以貼上中繼資料文件端點網址,或上傳 .xml 中繼資料檔案。
- 將 SAML IdP 屬性對應到使用者集區中的使用者設定檔。請務必在屬性對應中包含所有必需的屬性。
更新應用程式用戶端設定
請完成下列步驟:
- 開啟 Amazon Cognito console (Amazon Cognito 主控台)。
- 在 Applications (應用程式) 下,選擇 App clients (應用程式用戶端)。然後,從清單中選擇使用者集區設定程序所產生的應用程式用戶端。
- 瀏覽至 Login pages (登入頁面) 索引標籤,選擇 Edit (編輯),然後選擇以下選項:
在 Callback URLs (回呼網址) 中,輸入使用者登入後要重新導向的網址。
在 Sign out URLs (登出網址) 中,輸入使用者登出後要重新導向的網址。
在 Identity providers (身分提供者) 中,從下拉式清單中選擇您的 SAML IdP。
在 OAuth 2.0 grant types (OAuth 2.0 授權類型) 中,選取 Authorization code grant (授權代碼授予) 和 Implicit Grant (隱含授予) 核取方塊。
在 OpenID Connect scopes (OpenID Connect 範圍),從下拉式清單中選擇所有 OIDC 範圍。
在 Custom scopes (自訂範圍) 中,選取您設定的自訂範圍。
- 選擇 Save changes (儲存變更)。
如需應用程式用戶端術語的資訊,請參閱應用程式用戶端設定術語。
測試您的設定
請完成下列步驟:
- 在您的網頁瀏覽器中輸入以下網址:https://domainNamePrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=appClientId&redirect_uri=https://www.example.com
- 開啟 Amazon Cognito console (Amazon Cognito 主控台)。
- 在導覽窗格中,選擇 Branding (品牌),然後選擇您的網域。
- 複製網域的網址。
**注意:**將 domainNamePrefix.auth.region.amazoncognito.com 替換為您的網域網址。
- 在導覽窗格中的 Applications (應用程式) 下,選擇 App clients (應用程式用戶端)。然後,複製您的應用程式用戶端 ID。
**注意:**將 appClientId 替換為您的應用程式用戶端 ID。
- 選取您的應用程式用戶端,然後選擇 Login pages (登入頁面) 索引標籤。
- 複製 Login pages (登入頁面) 索引標籤上顯示的回呼網址。
**注意:**將 https://www.example.com 替換為回呼網址。
- 在瀏覽器中輸入修改後的網址。Amazon Cognito 會將您重新導向到 Cognito 驗證頁面。
- 在登入頁面上,選擇您的 SAML IdP。
- 選擇使用您的組織帳戶登入,然後輸入您 Active Directory 使用者的使用者名稱和密碼。
- 選擇 Sign in (登入)。
**注意:**當您成功登入後,AD FS 會向 Amazon Cognito 傳送 SAML 回應。Amazon Cognito 會驗證 SAML 回應。如果 SAML 回應有效,Amazon Cognito 會將您重新導向至帶有權杖的應用程式頁面。如果 SAML 回應無效,Amazon Cognito 會將您重新導向至應用程式頁面,並在網址中顯示錯誤訊息。SAML 回應必須包含 NameID 屬性。如果 SAML 回應不包含此屬性,則聯合失敗。如需 SAML 回應的資訊,請參閱在瀏覽器中查看 SAML 回應。
相關資訊
使用 Amazon Cognito 使用者集區,為您的 Web 應用程式建立 ADFS 聯合
設定您的第三方 SAML 身分提供者
在 Amazon Cognito 使用者集區中啟動 SAML 工作階段
如何設定第三方 SAML 身份提供者,使其與 Amazon Cognito 使用者集區搭配使用?
了解使用者集區 JSON 網路權杖 (JWT)