如何将 AWS Client VPN 与 Azure Active Directory 集成

更新时间

作者:Steven Harper,Infinity Works 工程实践负责人

引言

在最近的封锁期间,Infinity Works 的一位客户正在将其呼叫中心迁移到 Amazon Connect。呼叫中心代理需要访问不公开的系统,这些系统运行在 Amazon 虚拟私有云(VPC)的私有子网内。在办公室工作时,他们使用 AWS 的站点对站点 VPN 来获得访问权限,但最近,代理需要从家中访问这些私有 VPN。

IT 部门通常更喜欢将身份验证集成到现有的身份提供者(IdP)中,例如 Azure Active Directory,以减少运营开销和 IT 系统的攻击面。我们需要找到一个既能提供在家访问又能集成到 Active Directory 的解决方案。

2020 年 5 月,亚马逊网络服务(AWS)宣布支持 AWS 客户端虚拟专用网络(VPN)的联合身份验证。该支持需要与 SAML 2.0 提供者(如 Azure Active Directory)集成。我们非常幸运!

在这篇文章中,我将向您展示如何将 AWS Client VPN 与 Azure Active Directory 集成。通过使用 Azure 提供的基于浏览器的身份验证连接到 AWS Client VPN,这种方法使远程用户能够访问 Amazon VPC。这种方法的优势在于可以使用所有 Azure 访问的现有多因素身份验证(MFA)。

Infinity Works 是 AWS 的高级咨询合作伙伴,拥有政府、金融、零售、健康等多个行业的广泛经验。

解决方案概述

如图 1 所示,该解决方案是一个 AWS Control Tower 生成的结构,具有 AWS Transit Gateway 的中心辐射网络,控制附加 VPC 之间的访问。Amazon Route 53 解析器提供与完全递归 DNS 解决方案的外部连接,并具有 AWS 部分的 DNS 区域。

解决方案概述

客户端连接到过渡账户中的单独 VPC。用户所属的 Azure Active Directory 组的 ID 被暴露给 AWS Client VPN。通过在 AWS 控制台中配置的规则,分配路由给连接的客户端,从而授予他们通过 AWS Transit Gateway 访问其他 VPC 的权限。

客户端使用此解决方案作为一个拆分 VPN——仅配置的路由通过此连接提供服务。解析到其他路由的流量使用本地网络访问互联网,所有 DNS 解析都发生在 Route 53 解析器上。

如何设置联合身份验证

本指南将向您展示如何: 1. 在 Azure 中创建一个新的企业应用程序,配置其与 AWS Client VPN 的兼容性,添加用户,并下载联合元数据 XML 文件。 2. 在 AWS 中设置新的 IAM 身份提供者,并继续创建 Client VPN 并进行配置。 3. 下载 VPN 连接配置,连接到新的 VPN,并演示连接和日志的可观察性。

先决条件

  • AWS 账户
  • Amazon VPC,包含一些私有服务
  • 过渡网络(可选)
  • Azure 账户,具有在 Active Directory 中创建新的企业应用程序的权限
  • AWS 控制台的使用经验

Azure 准备步骤

要准备 Azure,请按照以下步骤操作:

步骤 1:创建企业应用程序

Azure 将成为此案例中的身份提供者。登录 Azure 后,在门户中创建一个名为 AWS Client VPN 的新企业应用程序。

步骤 2:修改基本 SAML 配置

按照以下说明,修改基本 SAML 配置为以下值: - 标识符(实体 ID) - urn:amazon:webservices:clientvpn - 回复 URL(断言消费者服务 URL) - https://127.0.0.1:35001

请注意,Azure 仅允许将 HTTPS 作为回复 URL 的值,而 AWS 需要 HTTP。您将在步骤 5 中修复此问题。

步骤 3:更改用户属性和声明

将用户属性和声明更改为以下值。它们创建 AWS Client VPN 软件在身份验证时将传递给 AWS 的 SAML 响应负载。 - nameidentifier - 源属性 : user.userprincipalname - 清除所有声明 - 区分大小写 - 添加新声明 - 名称 : FirstName 源属性 user.givenname - 添加新声明 - 名称 : LastName 源属性 user.surname - 添加组声明 - 名称 : memberOf 源属性 user.groups AllGroups (groupId)

步骤 4:调整 SAML 签名证书中的签名选项

将签名选项更改为签名 SAML 响应和断言。

步骤 5:将回复 URL 更改回 HTTP

将回复 URL(断言消费者服务 URL)更改回 HTTP。您可以通过调整 Azure 门户应用程序注册部分的应用程序清单来完成此操作。修改 XML 以具有 HTTP 值并保存。

json "replyUrlsWithType": [ { "url": "http://127.0.0.1:35001", "type": "Web" } ],

步骤 6:添加用户和组

SAML 2.0 身份提供者现在已按 AWS Client VPN 的预期进行配置。要将用户添加到 Azure 中的此应用程序,您可以通过单个用户分配或添加组来完成。

步骤 7:下载联合元数据 XML

在企业应用程序部分,选择 Azure,然后选择企业应用程序,并下载 XML。您需要此文件以在 AWS 中创建 IAM 身份提供者。

AWS 准备步骤

要准备 AWS,请按照以下步骤操作:

步骤 1:创建新的 IAM 身份提供者

在 AWS 过渡账户中创建新的 IAM 身份提供者。

步骤 2:上传元数据 XML

选择上传元数据并上传您从 Azure 下载的 XML 文件。您可以使用自生成的私有证书,但本例使用由 AWS 证书管理器生成的证书,通过在其 Amazon Route 53 DNS 中添加 CNAME 来证明所有权。

步骤 3:创建 AWS Client VPN

在 AWS 过渡账户中,选择新的 Client VPN 终端节点。Client IPv4 CIDR(10.148.0.0/16)是 AWS 将创建的网络。客户端将被分配此范围内的 IP,并根据我们授权他们的操作被分配出 VPC 的路由。

您已经创建了一个 VPC(作为先决条件的一部分)并将其附加到 AWS 过渡网络。现在填写表单,选择服务器证书 ARN、SAML 提供程序 ARN 和 VPC。

步骤 4:关联子网

在短时间内,AWS Client VPN 被创建。您可以将 VPC 中的两个子网与 VPN 管理的 VPC 关联,为用户提供 AWS 可用区冗余。

步骤 5:授权访问

现在,您必须授权 VPN 用户所需的目标。您的用户需要 DNS 流量和对构建账户的访问,因此请添加它们。稍后您可能希望在此处添加基于 Azure Active Directory 组 ID 的规则,以允许某些用户访问产品 VPC。

步骤 6:添加路由

为每个子网向路由表添加一条路由。当您关联子网时,将自动创建两条路由,您需要为 DNS VPC 和构建 VPC 添加路由。将来,您可能希望为您的产品 VPC 添加路由。

结论

通过将 AWS Client VPN 与 Azure Active Directory 集成,您可以轻松地为远程用户提供安全访问,同时利用现有的身份验证机制。这种方法不仅提高了安全性,还优化了 IT 部门的管理工作,确保了在家工作的工作人员能够顺利访问所需的资源。

如果您对这个过程有任何疑问或需要进一步的支持,请随时联系 Infinity Works 的专家团队。

更新时间