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

4 分钟阅读
0

我想使用 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. 从控制台控制面板中,选择 Launch Instance(启动实例)以启动 Launch Instance(启动实例)向导。
  3. Choose an Amazon Machine Image (AMI)(选择一个 Amazon 系统映像 (AMI))页面上,选择用于 Windows Server 的 AMI,如 Microsoft Windows Server 2016 Base AMI。有关更多信息,请参阅查找 Windows AMI
  4. Configure Security Group (配置安全组) 页面上,为您的实例创建安全组,然后向安全组中添加以下规则: **类型:**RDP **来源:**采用 CIDR 表示法(a.b.c.d/z)的 IP 地址或 CIDR 块 注意: 对于您在 Source (来源) 中指定的 IP 地址或数据块,最佳实践是使用一组已知允许的 IP 地址。 类型:HTTP 来源:任何位置
    类型:HTTPS
    来源:任何位置
    有关更多信息,请参阅 Windows 实例的 Amazon EC2 安全组向安全组添加规则
  5. Review Instance Launch (核查实例启动) 页面上,选择 Launch (启动)
  6. Select an existing key pair or create a new key pair (选择现有密钥对或创建新密钥对) 对话框中,按照说明选择现有密钥对或创建新密钥对。有关更多信息,请参阅 Amazon EC2 密钥对和 Linux 实例。 **重要提示:**保存密钥对的私有密钥 .pem 文件。您可以使用此文件连接到 EC2 Windows 实例。
  7. 选择 Launch Instances (启动实例)

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

  1. 如果您尚未执行此操作,请为您的 AWS 账户分配弹性 IP 地址
  2. 将弹性 IP 地址与 EC2 Windows 实例相关联,这样您便会拥有适用于此实例的持久性公有 IP 地址。

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

用于 Active Directory 域服务(AD DS)的域必须具有 A(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 网站上的安装或卸载角色、角色服务或功能

在您的 EC2 Windows 实例上配置 AD DS

  1. 在服务器管理器中,使用 Active Directory 域服务配置向导配置 AD DS。有关更多信息,请参阅 Microsoft Docs 网站上的使用服务器管理器安装 AD DS。按照使用服务器管理器安装 AD DS 下的说明执行操作(从第 9 步开始)。 **注意:**在此向导中,在 Deployment Configuration (部署配置) 页面上,输入您的域(例如 example.com)
  2. 配置安装完毕后,Windows 会通知您即将退出。这是正常的。等待几分钟让服务器重新启动,然后再次连接到 EC2 Windows 实例

在 IIS 中配置 http 站点绑定

在 Server Manager 中,使用 IIS 编辑网站的 http 站点绑定。有关更多信息,请参阅 Microsoft Docs 网站上的如何为站点添加绑定信息

**重要提示:**在 IIS 中编辑 http 绑定时,对于 Host name (主机名),输入您的域名(例如 example.com)。但是,请勿更改 IP address (All Unassigned) (IP 地址(全部未分配))Port (80) (端口(80))

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

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

请求域的数字证书

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

有关更多信息,请参阅 Microsoft 网站上的选择证书

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

如果您使用的证书创建工具未在 IIS 中自动添加hTTPS 站点绑定,请自行添加该站点绑定,具体操作与上述 http 站点绑定类似。

有关更多信息,请参阅 Microsoft 网站上的创建 SSL 绑定

在您的 EC2 Windows 实例上配置 AD FS

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

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

在 Active Directory 中创建用户

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

有关更多信息,请参阅 Microsoft 网站上的创建用户并添加到组

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

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

有关更多信息,请参阅 Microsoft 网站上的常规属性页面

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

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

在服务器管理器中,使用 Add Relying Party Trust Wizard(添加信赖方信任向导)添加声明感知信赖方信任。
在向导的 Configure URL(配置 URL)页面上,选中Enable support for the SAML 2.0 WebSSO protocol(启用对 SAML 2.0 WebSSO 协议的支持)复选框。对于 Relying party SAML 2.0 SSO service URL(信赖方 SAML 2.0 SSO 服务 URL),输入断言用户终端节点 URL,格式如下所示:https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
**注意:**将 yourDomainPrefix 替换为 Amazon Cognito 用户池的域前缀。将 region 替换为该用户池的 AWS 区域(例如,“us-east-1”)。

在向导的 Configure Identifiers(配置标识符)页面上,对于Relying party trust identifier(信赖方信任标识符),输入以下 URN:urn:amazon:cognito:sp:yourUserPoolID
**注意:**将 yourUserPoolID 替换为您的 Amazon Cognito 用户池的 ID(例如,“us-east-1_g2zxiEbac”)。

有关更多信息,请参阅 Microsoft 网站上的手动创建声明感知信赖方信任

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

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

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

有关更多信息,请参阅 Microsoft 网站上的为 Windows Server 2016 中的信赖方信任创建规则,以声明的形式发送 LDAP 属性

**注意:**要在 SAML 响应的 SAML 断言中将电子邮件 ID 和名称 ID 声明作为用户的电子邮件地址显示,请将传入的电子邮件地址从 Active Directory 映射到传出的名称 ID 声明。如果使用此方法,请创建规则,以声明的形式发送 LDAP 特性。有关更多信息,请参阅 Microsoft 网站上的为 Windows Server 2012 R2 创建规则,以声明的形式发送 LDAP 属性

测试服务器的 SAML IdP 元数据 URL

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

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

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

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

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


相关信息

通过第三方添加用户池登录

教程:Amazon EC2 Windows 实例入门

AWS 官方
AWS 官方已更新 3 年前