跳至内容

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

3 分钟阅读
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 服务器和域控制器。要完成设置,您必须拥有一个包含应用程序客户端和域名的 Cognito 用户池。如果您没有自己的域,您可以使用 Amazon Route 53 或其他 DNS 服务注册新域

有关详细信息,请参阅如何在 Amazon Cognito 用户池中将 AD FS 设置为 SAML 身份提供者?

配置和启动 Windows 实例

完成以下步骤:

  1. 打开 EC2 控制台
  2. 选择 Launch instance(启动实例)。
  3. Choose an Amazon Machine Image (AMI)(选择亚马逊机器映像 (AMI))页面上,选择适用于 Windows Server 的 AMI,例如 Microsoft Windows Server 2025 Base AMI。
  4. 选择您的实例类型
  5. 对于 Keypairs(密钥对),从下拉列表中选择现有密钥对,或创建新的密钥对。
    **重要事项:**保存密钥对的私钥 .pem 文件以连接您的 Windows 实例。
  6. 在导航窗格中,选择 Create security group(创建安全组),然后选择 Allow RDP traffic(允许 RDP 流量)。
    **注意:**要将远程桌面协议 (RDP) 仅限于特定的 IP 地址访问您的实例,请将源 IP 地址从 Anywhere(任何位置)更改为 My IP(我的 IP)或 Custom(自定义)。
  7. 选择 Launch(启动)。

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

为您的 AWS 账户分配弹性 IP 地址。然后,将您的弹性 IP 地址与您的 Windows 实例相关联

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

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

在 Windows 实例上安装 AD DS、IIS 和 AD FS

使用您的 RDP 客户端连接到您的 Windows 实例

在 Windows 中打开服务器管理器,然后使用“添加角色和功能”向导安装以下角色:

  • Active Directory 域服务
  • Active Directory 联合身份验证服务
  • Internet Information Services (IIS)

有关详细信息,请参阅 Microsoft 网站上的安装或卸载角色、角色服务或功能

在您的 Windows 实例上配置 AD DS

要配置 AD DS,请使用服务器管理器中的 Active Directory 域服务配置向导。在 Deployment Configuration(部署配置)页面上,输入您的域,例如 example.com。配置安装完成后,Windows 会通知您即将注销。服务器重新启动时,使用您的 RDP 客户端连接到您的 Windows 实例

有关详细信息,请参阅 Microsoft 网站上的安装 Active Directory 域服务

在 IIS 中配置 HTTP 站点绑定

在服务器管理器中,使用 IIS 编辑您网站的 HTTP 站点绑定。有关详细信息,请参阅 Microsoft 网站上的如何将绑定信息添加到站点

重要事项:在 IIS 中编辑 HTTP 绑定时,输入您的域名作为主机名,例如 example.com。不要更改 IP 地址(全部未分配)或端口 (80)。

将您的 Windows 实例配置为允许文件下载

请参阅我如何配置 EC2 Windows 实例以允许通过 Internet Explorer 下载文件?

为您的域申请数字证书

HTTPS 绑定需要 SSL/TLS 服务器证书。要为您的域申请第三方证书,请使用可信的第三方证书创建工具。

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

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

如果您使用的证书创建工具未自动在 IIS 中添加 HTTPs 站点绑定,请手动添加站点绑定。

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

在您的 Windows 实例上配置 AD FS

要将 Windows 实例配置为联合身份验证服务器,请使用服务器管理器中的 AD FS 联合身份验证服务器配置向导。

有关详细信息,请参阅 Microsoft 网站上的准备和部署 Active Directory 联合身份验证服务 - 本地证书信任

Specify Service Account(指定服务账户)页面上,对于 Select User or Service Account(选择用户或服务账户),选择名为 Administrator(管理员)的用户。然后,输入您用于 RDP 连接到 Windows 实例的密码。

在 Active Directory 中创建用户

要在 Active Directory 中创建新用户,请使用 Active Directory 用户和计算机工具。将新用户添加到 Administrators 组。

有关详细信息,请参阅 Microsoft 网站上的创建用户并将其添加到组

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

完成以下步骤:

  1. 在 Active Directory 用户和计算机工具中,打开(双击)Users(用户)以查看用户列表。
  2. 在用户列表中,找到您创建的用户。打开(右键单击)用户以查看上下文菜单,然后选择 Properties(属性)。
  3. Properties(属性)窗口中,对于 user name(用户名)输入有效的用户电子邮件地址。该电子邮件地址包含在 SAML 断言中。

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

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

在服务器管理器中,导航到工具 AD FS 管理。要添加声明感知信赖方信任,请使用添加信赖方信任向导。

在向导的 Configure URL page(配置 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 替换为 Cognito 用户池的域前缀。将 Region 替换为用户池的 AWS 区域。

在向导的 Configure Identifiers(配置标识符)页面上,对于 Relying party trust identifier(信赖方信任标识符),输入 URN urn:amazon:cognito:sp:yourUserPoolID。将 yourUserPoolID 替换为您的 Cognito 用户池 ID。

有关详细信息,请参阅将 SAML 身份提供者与用户池配合使用以及 Microsoft 网站上的 To create a claims aware Relying Party Trust manually(手动创建声明感知信赖方信任)

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

使用“添加信赖方信任”向导向信任添加规则,将 LDAP 属性作为声明发送。

Configure Rule(配置规则)页面上,完成以下步骤:

  1. 对于 Claim rule name(声明规则名称),输入 Email(电子邮件)。
  2. 对于 Attribute store(属性存储),选择 Active Directory
  3. 对于 LDAP Attribute(LDAP 属性),选择 E-Mail-Addresses(电子邮件地址)。
  4. 对于 Outgoing Claim Type(外发声明类型),选择 E-Mail Address(电子邮件地址)。

有关详细信息,请参阅 Microsoft 网站上的在 Windows Server 2016 中创建规则以将 LDAP 属性作为信赖方信任的声明发送

**注意:**将来自 Active Directory 的传入电子邮件地址映射到外发的名称 ID 声明。然后,电子邮件 ID 和名称 ID 声明将作为用户的电子邮件地址显示在 SAML 响应的 SAML 断言中。然后,创建一条规则,改为将 LDAP 属性作为声明发送。

有关详细信息,请参阅 Microsoft 网站上的创建规则,以将 LDAP 属性转化为声明发送至 Windows Server 2012 R2

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

在带有您的域的 Web 浏览器中输入 https://example.com/federationmetadata/2007-06/federationmetadata.xml 元数据文档端点 URL。

如果系统提示您下载 federationmetadata.xml 文件,则说明您已正确配置所有内容。记下您使用的 URL,或下载 .xml 文件。必须使用 URL 或文件在 Cognito 控制台中配置 SAML。

有关详细信息,请参阅配置第三方 SAML 身份提供者

在 Cognito 中将 AD FS 配置为 SAML IdP

有关如何在 Cognito 中将 AD FS 配置为 SAML IdP 的说明,请参阅步骤 4: 完成 Amazon Cognito 配置Simplify web app authentication: A guide to AD FS federation with Amazon Cognito user pools(简化 Web 应用程序身份验证:AD FS 与 Amazon Cognito 用户池联合指南))。

相关信息

使用第三方身份提供者登录用户池

开始使用 Amazon EC2

Amazon EC2 密钥对和 Amazon EC2 实例

EC2 实例的 Amazon EC2 安全组

不同用例的安全组规则

AWS 官方已更新 5 个月前