跳至内容

如何在 Amazon Cognito 用户池中将 AD FS 设置为 SAML 身份提供者?

2 分钟阅读
0

我想使用 Active Directory 联合身份验证服务 (AD FS) 作为拥有 Amazon Cognito 用户池的 SAML 2.0 身份提供者 (IdP)。

解决方案

**先决条件:**您必须拥有一个域才能使用 Amazon Cognito 用户池设置 AD FS。如果您没有自己的域,您可以使用 Amazon Route 53 或其他 DNS 服务注册新域

创建具有托管登录的 Amazon Cognito 用户池

创建 Amazon Cognito 用户池,然后设置托管登录

设置 Amazon EC2 Windows 实例

完成以下步骤:

  1. 启动 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例。
  2. 在 Amazon EC2 Windows 实例上设置 AD FS 服务器和域控制器。

有关说明,请参阅如何在 Amazon EC2 Windows 实例上设置 AD FS,以对 Amazon Cognito 用户池使用联合身份验证?

在 Amazon Cognito 中将 AD FS 配置为 SAML IdP

完成以下步骤:

  1. 在用户池中配置 SAML 2.0 IdP。您可以粘贴元数据文档端点 URL 或上传 .xml 元数据文件。
  2. 将 SAML IdP 属性映射到用户池中的用户个人资料。确保在属性映射中包含所有必需的属性。

更新应用程序客户端设置

完成以下步骤:

  1. 打开 Amazon Cognito 控制台
  2. Applications(应用程序)下,选择 App clients(应用程序客户端)。然后,从列表中选择用户池设置过程生成的应用程序客户端。
  3. 导航到 Login pages(登录页面)选项卡,选择 Edit(编辑),然后选择以下选项:
    对于 Callback URLs(回调 URL),输入您希望用户登录后被重定向到的 URL。
    对于 Sign out URLs(注销 URL),输入您希望用户在注销后被重定向到的 URL。
    对于 Identity providers(身份提供者),从下拉列表中选择您的 SAML IdP。
    对于 OAuth 2.0 grant types(OAuth 2.0 授权类型),选中 Authorization code grant(授权代码授予)和 Implicit Grant(隐式授权)复选框。
    对于 OpenID Connect scopes(OpenID Connect 范围),从下拉列表中选择所有 OIDC scopes(OIDC 范围)。
    对于 Custom scopes(自定义范围),选择您配置的自定义范围。
  4. 选择 Save changes(保存更改)。

有关应用程序客户端术语的信息,请参阅应用程序客户端设置术语

测试您的设置

完成以下步骤:

  1. 在您的 Web 浏览器中输入以下 URL:https://domainNamePrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=appClientId&redirect_uri=https://www.example.com
  2. 打开 Amazon Cognito 控制台
  3. 从导航窗格中,选择 Branding(品牌),然后选择您的域。
  4. 复制域的 URL。
    **注意:**将 domainNamePrefix.auth.region.amazoncognito.com 替换为您的域 URL。
  5. 在导航窗格的 Applications(应用程序)下,选择 App clients(应用程序客户端)。然后,复制您的应用程序客户端 ID。
    **注意:**将 appClientId 替换为您的应用程序客户端 ID。
  6. 选择您的应用程序客户端,然后选择 Login pages(登录页面)选项卡。
  7. 复制 Login pages(登录页面)选项卡上显示的回调 URL。
    **注意:**将 https://www.example.com 替换为回调 URL。
  8. 在浏览器中输入修改后的 URL。Amazon Cognito 将重定向到 Cognito 身份验证页面。
  9. 在登录页面上,选择您的 SAML IdP。
  10. 选择 Sign in with your organizational account(使用组织账户登录),然后输入您的 Active Directory 用户的用户名和密码。
  11. 选择 Sign in(登录)。

**注意:**当您成功登录后,AD FS 会向 Amazon Cognito 发送 SAML 响应。Amazon Cognito 验证 SAML 响应。如果 SAML 响应有效,则 Amazon Cognito 使用令牌将您重定向到应用程序页面。如果 SAML 响应无效,则 Amazon Cognito 会将您重定向到应用程序页面,并在 URL 中显示错误消息。SAML 响应必须包含 NameID 属性。如果 SAML 响应不包含此属性,则联合身份验证失败。有关 SAML 响应的信息,请参阅在浏览器中查看 SAML 响应

相关信息

Building ADFS Federation for your Web App using Amazon Cognito User Pools(使用 Amazon Cognito 用户池为您的 Web 应用程序构建 ADFS 联合身份验证)

配置第三方 SAML 身份提供者

在 Amazon Cognito 用户池中启动 SAML 会话

如何为 Amazon Cognito 用户池设置第三方 SAML 身份提供者?

了解用户池 JSON Web 令牌 (JWT)

AWS 官方已更新 6 个月前