我想使用 Amazon Cognito 用户池将 Active Directory 联合身份验证服务 (AD FS) 设为安全断言标记语言 2.0 (SAML 2.0) 身份提供商 (IdP)。如何在 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例上设置 AD FS?

使用 EC2 Windows 实例上的服务器管理器设置 AD FS 服务器和域控制器。

注意:在开始之前,请参阅如何使用 Amazon Cognito 用户池将 AD FS 设置为 SAML 身份提供商?中的说明 您将需要 Amazon Cognito 用户池和应用程序客户端来完成本文中的设置。

您还需要拥有自己的域名。如果您没有自己的域,可以使用 Amazon Route 53 或其他域名系统 (DNS) 服务注册新域。

配置并启动 EC2 Windows 实例

  1. 打开 Amazon EC2 控制台
  2. 从控制台控制面板中,选择启动实例以启动“启动实例”向导。
  3. 选择一个亚马逊系统映像 (AMI) 页面上,选择用于 Windows Server 的 AMI,如 Microsoft Windows Server 2016 Base AMI。有关更多信息,请参阅查找 Windows AMI
  4. 配置安全组页面上,为您的实例创建安全组,然后向它添加以下规则:
    类型:
    RDP
    来源:
    用 CIDR 表示法表示的 IP 地址 (a.b.c.d/z),或 CIDR 块
    注意:
    对于您在来源中指定的 IP 地址或块,最佳实践是使用一组列入白名单的 IP 地址。

    类型:
    HTTP
    来源:
    Anywhere

    类型:
    HTTPS
    来源:
    Anywhere

    有关更多信息,请参阅 Windows 实例的 Amazon EC2 安全组向安全组添加规则
  5. 核查实例启动页面上,选择启动
  6. 选择现有密钥对或创建新密钥对对话框中,按照说明选择现有密钥对。或者,创建新密钥对。有关更多信息,请参阅 Amazon EC2 密钥对

    重要提示:
    请保存用于您的密钥对的私有密钥 .pem 文件。您可以使用它来连接到您的 EC2 Windows 实例。
  7. 选择启动实例

将弹性 IP 地址与 EC2 Windows 实例关联

  1. 如果您尚未关联,请向您的 AWS 账户分配弹性 IP 地址
  2. 将弹性 IP 地址与 EC2 Windows 实例关联,以便您的实例有一个永久的公有 IP 地址。

使用弹性 IP 地址创建域的记录

用于 Active Directory 域服务 (AD DS) 的域必须具有 (IPv4 地址) 记录,且弹性 IP 地址作为值。使用与 EC2 Windows 实例关联的弹性 IP 地址为您的域创建此记录。

有关更多信息,请参阅使用 Amazon Route 53 控制台创建记录

在 EC2 Windows 实例上安装 AD DS、Web 服务器 (IIS) 和 AD FS

  1. 连接到 EC2 Windows 实例
  2. 在 Windows 中,打开“服务器管理器”,然后使用“添加角色和功能向导”安装以下角色:
    Active Directory 域服务
    Active Directory 联合身份验证服务
    Web 服务器 (IIS)

    有关使用此向导的更多信息,请参阅 Microsoft Docs 网站上的 Install roles, role services, and features by using the add Roles and Features Wizard

在 EC2 Windows 实例上配置 AD DS

  1. 在服务器管理器中,使用“Active Directory 域服务配置向导”配置 AD DS。有关更多信息,请参阅 Microsoft Docs 网站上的 Installing AD DS by using Server Manager。按照使用服务器管理器安装 AD DS 中的说明 (从步骤 9 开始) 操作。

    注意:
    在此向导部署配置页面上,输入您的域。例如,example.com
  2. 配置完成安装后,Windows 会通知您,您即将注销。这是预期行为。等待几分钟让服务器重新启动,然后 再次连接到 EC2 Windows 实例

在 IIS 中配置 http 站点绑定

在服务器管理器中,使用 IIS 编辑适用于您的网站的 http 站点绑定。有关更多信息,请参阅 Microsoft Docs 网站上的 How to add binding information to a site

重要提示:在 IIS 中编辑 http 绑定时,对于主机名,输入您的域名。例如,example.com。但是,不要更改 IP 地址 (所有未分配的)端口 (80)

配置 EC2 Windows 实例以允许下载文件

有关更多信息,请参阅如何配置 EC2 Windows 实例以允许使用 Internet Explorer 下载文件?

请求域的数字证书

您需要用于 IIS 网站的 https 绑定的 SSL 服务器证书。通过下载并使用您喜欢的受信任的第三方证书创建工具,来请求用于您的域的第三方证书。

有关更多信息,请参阅 Microsoft Docs 网站上的 Choosing a Certificate

(可选) 在 IIS 中配置 http 站点绑定

如果您使用的证书创建工具未在 IIS 中自动添加 https 站点绑定,则自行添加站点绑定,就像您之前为 http 添加一样。

有关更多信息,请参阅 Microsoft Docs 网站上的 Create an SSL Binding

在 EC2 Windows 实例上配置 AD FS

在服务器管理器中,使用“AD FS 联合身份验证服务器配置向导”将 EC2 Windows 实例配置为联合身份验证服务器。有关更多信息,请参阅 Microsoft Docs 网站上的 Windows Server 2008 or 2008 R2 Domain Controllers

注意:在向导的指定服务账户页面上,当您转到选择用户或服务账户对话框时,选择名为管理员的用户,然后输入远程桌面连接到 EC2 Windows 实例所用的密码。

在 Active Directory 中创建用户

使用“Active Directory 用户和计算机”工具在 Active Directory 中创建新用户。向管理员组添加新用户。

有关更多信息,请参阅 Microsoft Docs 网站上的 Create a user and add to a group

为 Active Directory 用户添加电子邮件地址

  1. 在创建新用户后,在“Active Directory 用户和计算机”工具中,双击用户以打开用户列表。
  2. 在用户列表中,找到您创建的用户。右键单击用户以打开上下文菜单,然后选择属性
  3. 在用户名的“属性”窗口中,对于电子邮件,输入用户的有效电子邮件地址。此电子邮件地址稍后会包括在 SAML 断言中。

有关更多信息,请参阅 Microsoft Docs 网站上的 General Property Page

在 AD FS 中添加声明感知信赖方信任

注意:对于此部分,您需要来自 Amazon Cognito 控制台Amazon Cognito 用户池的信息。有关更多信息,请参阅向用户池添加 SAML 身份提供商

在服务器管理器中,使用“添加信赖方信任向导”添加声明感知信赖方信任。

在向导的配置 URL 页面上,选中启用对 SAML 2.0 WebSSO 协议的支持复选框。对于信赖方 SAML 2.0 SSO 服务 URL,输入断言用户终端节点 URL,格式如下所示:https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse

注意:yourDomainPrefix 替换为 Amazon Cognito 用户池的域前缀。将 region 替换为用户池的 AWS 区域 (例如,"us-east-1")。

在向导的配置标识符页面上,对于信赖方信任标识符,输入以下 URN:urn:amazon:cognito:sp:yourUserPoolID

注意:请将 yourUserPoolID 替换为您的 Amazon Cognito 用户池 ID。例如,"us-east-1_g2zxiEbac"。

有关更多信息,请参阅 Microsoft Docs 网站上的 To create a claims aware Relying Party Trust manually

在 AD FS 中编辑应用程序的声明颁发策略

向您创建的信任添加规则,以声明的方式发送 LDAP 属性。使用“添加信赖方信任向导”添加该规则。在配置规则页面上,执行以下操作:

  • 对于声明规则名称,输入电子邮件
  • 对于特性存储,选择 Active Directory
  • 对于 LDAP 特性,选择 E-Mail-Addresses
  • 对于传出声明类型,选择电子邮件地址

有关更多信息,请参阅 Microsoft Docs 网站上的 To create a rule to send LDAP attributes as claims for a Relying Party Trust in Windows Server 2016

注意:要同时让电子邮件 ID 和名称 ID 声明在 SAML 响应的 SAML 断言中显示为用户的电子邮件地址,请将来自 Active Directory 的传入的电子邮件地址映射到传出的名称 ID 声明。如果您使用该方法,则请创建规则以改为以声明方式发送 LDAP 属性。有关更多信息,请参阅 Microsoft Docs 网站上的 To create a rule to send LDAP attributes as claims for Windows Server 2012 R2

针对服务器测试 SAML IdP 元数据 URL

在 Web 浏览器中输入此元数据文档终端节点 URL,从而将 example.com 替换为您的域:

https://example.com/federationmetadata/2007-06/federationmetadata.xml

如果系统提示您下载文件 federationmetadata.xml,则表示所有内容均配置正确。请记下此处使用的 URL,或下载 .xml 文件 — 在 Amazon Cognito 控制台中配置 SAML 时需要此 URL 或文件。有关更多信息,请参阅将第三方 SAML 身份提供商与 Amazon Cognito 用户池集成

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

完成本文中的所有步骤后,继续在 Amazon Cognito 控制台设置。有关更多信息,请参阅如何使用 Amazon Cognito 用户池将 AD FS 设置为 SAML 身份提供商?


此页内容对您是否有帮助? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS Support 中心

发布时间:2019 年 2 月 7 日