联合身份验证服务 Azure AD 集成
简介
本文档介绍如何将 Citrix 环境与 Windows 10 Azure AD 功能相集成。
Windows 10 中引入了 Azure AD,这是一个新的域加入模块,可以在此模块中通过 Internet 将漫游便携式计算机加入企业域,以便进行管理和单点登录。
本文档中的示例部署描述了一个具有以下特点的系统:IT 人员向新用户提供其私人 Windows 10 便携式计算机的企业电子邮件地址和注册代码。用户通过设置面板中的系统 > 关于 >加入 Azure AD 选项访问此代码。
注册便携式计算机后,Microsoft Edge Web 浏览器将通过 Azure SaaS 应用程序 Web 页面自动登录到公司的 Web 站点和 Citrix 的已发布应用程序,以及其他 Azure 应用程序(例如 Office 365)。
体系结构
此体系结构完全复制 Azure 中的传统公司网络,从而与最新的云技术(例如 Azure AD 和 Office 365)相集成。最终用户都被视为远程工作人员,没有位于办公室 Intranet 上的概念。
可以将该模型应用到使用现有本地系统的公司,因为 Azure AD Connect 同步服务可以通过 Internet 桥接到 Azure。
安全连接和单点登录(传统上已通过有防火墙的局域网和 Kerberos/NTLM 身份验证)在此体系结构中将替换为与 Azure 和 SAML 之间的 TLS 连接。新服务内置为加入到 Azure AD 的 Azure 应用程序。可以使用 Azure 云服务的 IAAS 部分中的标准 Active Directory 服务器 VM 运行需要 Active Directory 的现有应用程序(例如 SQL Server 数据库)。
用户启动传统应用程序时,将使用 XenApp 和 XenDesktop 的已发布应用程序进行访问。不同类型的应用程序使用 Microsoft Edge 的单点登录功能通过用户的 Azure 应用程序页面进行整理。Microsoft 还提供能够枚举和启动 Azure 应用程序的 Android 和 iOS 应用程序。
创建 DNS 区域
Azure AD 要求管理员已注册公用 DNS 地址,并控制域名后缀的委派区域。为此,管理员可以使用 Azure DNS 的区域功能。
下例使用 DNS 区域名称“citrixsamldemo.net”。
控制台显示 Azure DNS 名称服务器的名称。这些名称应在区域对应的 DNS 注册器的 NS 条目中引用(例如 citrixsamldemo.net. NS n1-01.azure-dns.com)
添加对 Azure 中运行的 VM 的引用时,最简单的方法是对 VM 使用指向 Azure 托管的 DNS 记录的 CNAME 指针。 如果 VM 的 IP 地址发生变化,不需要手动更新 DNS 区域文件。
此部署的内部和外部 DNS 地址前缀都保持一致。域为 citrixsamldemo.net,使用拆分 DNS(在内部为 10.0.0.*)。
添加一个引用 Web 应用程序代理服务器的“fs.citrixsamldemo.net”条目。这是此区域的联合身份验证服务。
创建云服务
下例配置了一个 Citrix 环境,其中包括一个 ADFS 服务器在 Azure 中运行的 AD 环境。创建了一个云服务,名为“citrixsamldemo”。
创建 Windows 虚拟机
创建五个在云服务中运行的 Windows VM:
- 域控制器 (domaincontrol)
- Azure Connect ADFS 服务器 (adfs)
- ADFS Web 访问代理(Web 应用程序代理,未加入域)
- Citrix XenDesktop Delivery Controller (ddc)
- Citrix XenDesktop Virtual Delivery Agent (vda)
域控制器
- 添加 DNS 服务器和 Active Directory 域服务角色以创建一个标准 Active Directory 部署(在此示例中为 citrixsamldemo.net)。域提升完成后,请添加 Active Directory 证书服务角色。
- 创建一个普通用户帐户用于测试(例如,George@citrixsamldemo.net)。
- 由于此服务器将运行内部 DNS,因此,所有服务器都应引用此服务器以便进行 DNS 解析。此操作可通过 Azure DNS 设置页面完成。(有关详细信息,请参阅本文档中的“附录”。)
ADFS 控制器和 Web 应用程序代理服务器
- 将 ADFS 服务器加入到 citrixsamldemo domain 中。Web 应用程序代理服务器应始终保留在独立的工作组中,因此,请在 AD DNS 中手动注册 DNS 地址。
- 在这些服务器上运行 Enable-PSRemoting –Force cmdlet,以允许 PS 通过防火墙从 AzureAD Connect 工具远程连接。
XenDesktop Delivery Controller 和 VDA
- 请在加入到 citrixsamldemo 的其余两个 Windows 服务器上安装 XenApp 或 XenDesktop Delivery Controller 以及 VDA。
配置内部 DNS
安装域控制器后,请将 DNS 服务器配置为处理 citrixsamldemo.net 的内部查看,并用作指向外部 DNS 服务器(例如 8.8.8.8)的转发器。
添加以下各项的静态记录:
- wap.citrixsamldemo.net [Web 应用程序代理 VM 将不加入域]
- fs.citrixsamldemo.net [内部联合身份验证服务器地址]
- enterpriseregistration.citrixsaml.net [与 fs.citrixsamldemo.net 相同]
应将 Azure 中运行的所有 VM 配置为仅使用此 DNS 服务器。可以通过网络接口 GUI 执行此操作。
默认情况下,内部 IP (10.0.0.9) 地址动态分配。可以使用 IP 地址设置永久分配 IP 地址。应对 Web 应用程序代理服务器和域控制器执行此操作。
配置外部 DNS 地址
VM 运行过程中,Azure 保留自己的指向当前已分配给 VM 的公用 IP 地址的 DNS 区域服务器。这是一项可启用的有用功能,因为 Azure 默认在每个 VM 启动时分配 IP 地址。
下例将 domaincontrol-citrixsamldemo.westeurope.cloudapp.azure.com 的 DNS 地址分配给域控制器。
请注意,远程配置完成后,只有 Web 应用程序代理和 NetScaler VM 应启用公用 IP 地址。(配置过程中,公用 IP 地址用于对环境进行 RDP 访问。)
配置安全组
Azure 云使用安全组从 Internet 管理对 VM 进行 TCP/UDP 访问时使用的防火墙规则。默认情况下,所有 VM 都允许进行 RDP 访问。NetScaler 和 Web 应用程序代理服务器还应允许在端口 443 上启用 TLS。
创建 ADFS 证书
请在 Microsoft 证书颁发机构 (CA) 上启用 Web 服务器证书模板。这允许创建能够导出(包括私钥)为 pfx 文件且使用自定义 DNS 地址的证书。必须同时在 ADFS 和 Web 应用程序代理服务器上安装此证书,PFX 文件才能成为首选项。
颁发使用以下使用者名称的 Web 服务器证书:
- 公用名:
- adfs.citrixsamldemo.net [计算机名称]
- 使用者备用名称:
- *.citrixsamldemo.net [区域名称]
- fs.citrixsamldemo. net [DNS 中的条目]
- enterpriseregistration.citrixsamldemo.net
将证书导出为 pfx 文件,包括受密码保护的私钥。
设置 Azure AD
本节详细介绍了设置新 Azure AD 实例以及创建能够用于将 Windows 10 加入 Azure AD 的用户标识的过程。
创建新目录
登录经典 Azure 门户并创建一个新目录。
完成时,将显示一个摘要页面。
创建全局管理员用户 (AzureAdmin)
在 Azure 中创建一个全局管理员(在此示例中为 AzureAdmin@citrixsamldemo.onmicrosoft.com)并使用新帐户登录以设置密码。
在 Azure AD 中注册您的域
默认情况下,用户通过格式为 <user.name>@<company>.onmicrosoft.com 的电子邮件地址进行标识。
虽然这在未进一步配置的情况下起作用,但最好使用标准格式的电子邮件地址,首选地址为与最终用户的电子邮件帐户匹配的地址:<user.name>@<company>.com
添加域操作配置从您的真实公司域的重定向。下例使用 citrixsamldemo.net。
如果要设置 ADFS 以便进行单点登录,请启用该复选框。
安装 Azure AD Connect
Azure AD 配置 GUI 的步骤 2 重定向到 Azure AD Connect 的 Microsoft 下载页面。 在 ADFS VM 上安装此工具。请使用自定义安装(而非快速设置),以使 ADFS 选项可用。
选择使用 AD FS 进行联合身份验证单点登录选项。
使用之前创建的管理员帐户连接到 Azure。
选择内部 AD 林。
将所有旧 Active Directory 对象与 Azure AD 同步。
如果目录结构非常简单,可以依靠足够独特的用户名来识别登录的用户。
接受默认过滤选项,或者将用户和设备限制为一组特定的用户和设备。
如果需要,可以将 Azure AD 密码与 Active Directory 同步。基于 ADFS 的身份验证通常不需要同步。
选择要在 AD FS 中使用的证书 PFX 文件,指定 fs.citrixsamldemo.net 作为 DNS 名称。
提示选择代理服务器时,输入 wap.citrixsamldemo.net 服务器的地址。您可能需要在 Web 应用程序代理服务器上以管理员身份运行 Enable-PSRemoting -Force cmdlet,以便 Azure AD Connect 能够对其进行配置。
注意: 如果此步骤由于远程 PowerShell 信任问题失败,请尝试将 Web 应用程序代理服务器加入域中。
对于向导的其余步骤,请使用标准的管理员密码,并为 ADFS 创建一个服务帐户。Azure AD Connect 之后将提示您验证 DNS 区域的所有权。
将 TXT 和 MX 记录添加到 Azure 中的 DNS 地址记录。
在 Azure 管理控制台中单击验证。
注意: 如果此步骤失败,可以在运行 Azure AD Connect 之前验证域。
完成后,外部地址 fs.citrixsamldemo.net 将通过端口 443 进行访问。
启用 Azure AD 联接
用户输入电子邮件地址以便 Windows 10 能够执行 Azure AD 联接操作时,将使用 DNS 后缀构建应指向 ADFS 的 CNAME DNS 记录:enterpriseregistration.<upnsuffix>。
在此示例中为 fs.citrixsamldemo.net。
如果未使用公用 CA,请务必在 Windows 10 计算机上安装 ADFS 根证书,这样 Windows 将信任 ADFS 服务器。 使用之前生成的标准用户帐户执行 Azure AD 域联接操作。
请注意:UPN 必须与 ADFS 域控制器能够识别的 UPN 匹配。
使用用户的电子邮件地址通过重新启动计算机并登录来验证 Azure AD 联接操作是否成功。登录后,请启动 Microsoft Edge 并连接到 https://myapps.microsoft.com。该 Web 站点应自动使用单点登录功能。
安装 XenApp 或 XenDesktop
可以按常规方式在 Azure 中直接从 XenApp 或 XenDesktop ISO 安装 Delivery Controller 和 VDA 虚拟机。
在此示例中,StoreFront 与 Delivery Controller 安装在相同的服务器上。VDA 作为独立的 Windows 2012 R2 RDS 工作进程安装,不与 Machine Creation Services 集成(尽管能够选择性配置)。继续操作之前,请检查用户 George@citrixsamldemo.net 是否能够使用密码进行身份验证。
在 Controller 上运行 Set-BrokerSite –TrustRequestsSentToTheXmlServicePort $true PowerShell cmdlet 以允许 StoreFront 不使用用户的凭据进行身份验证。
安装联合身份验证服务
在 ADFS 服务器上安装联合身份验证服务 (FAS) 组件,并为要用作可信 StoreFront 的 Controller 配置一条规则。
配置 StoreFront
为 Delivery Controller 申请一个计算机证书,然后将 IIS 和 StoreFront 配置为使用 HTTPS,方法是为端口 443 设置 IIS 绑定,并将 StoreFront 基址更改为 https:。
将 StoreFront 配置为使用 FAS 服务器(使用联合身份验证服务一文中介绍的 PowerShell 脚本),然后在 Azure 中进行内部测试,通过查看 FAS 服务器上的事件查看器来确保登录使用 FAS。
将 StoreFront 配置为使用 NetScaler
在 StoreFront 管理控制台中使用管理身份验证方法 GUI 将 StoreFront 配置为使用 NetScaler 执行身份验证。
要集成 NetScaler 身份验证选项,请配置一个 Secure Ticket Authority (STA) 并配置 NetScaler Gateway 地址。
配置新 Azure AD 应用程序以单点登录到 StoreFront
本节使用 Azure AD SAML 2.0 单点登录功能,该功能当前要求订阅 Azure Active Directory Premium。在 Azure AD 管理工具中,选择新建应用程序和从库中添加一个应用程序。
选择自定义 > 添加我的组织在使用的未列出应用程序为您的用户创建一个新自定义应用程序。
配置图标
创建一个大小为 215 x 215 像素的图片并在“配置”页面上上载该图片以用作应用程序的图标。
配置 SAML 身份验证
返回到“应用程序”控制板概览页面并选择配置单点登录。
此部署将使用 SAML 2.0 身份验证,这与 Microsoft Azure AD 单点登录相对应。
标识符可以是任意字符串(必须与向 NetScaler 提供的配置匹配);在此示例中,答复 URL 在 NetScaler 服务器上为 /cgi/samlauth。
下一页中包含用于将 NetScaler 配置为 Azure AD 信赖方的信息。
下载 Base 64 可信签名证书并复制登录和注销 URL。您稍后将在 NetScaler 的配置屏幕中粘贴这些 URL。
向用户分配应用程序
最后一个步骤为启用应用程序以使其在用户的“myapps.microsoft.com”控制页面上显示。此步骤在“用户和组”页面上完成。分配通过 Azure AD Connect 同步的域用户帐户的访问权限。也可以使用其他帐户,但必须明确映射这些帐户,因为它们不使用 <user>@<domain> 模式。
MyApps 页面
配置应用程序后,该应用程序将在用户访问 https://myapps.microsoft.com 时在用户的 Azure 应用程序列表中显示。
与 Azure AD 联接后,Windows 10 将支持登录用户单点登录到 Azure 应用程序。单击图标会将浏览器定向到之前配置的 SAML cgi/samlauth Web 页面。
单点登录 URL
返回到 Azure AD 控制板中的应用程序。现在有对应用程序可用的单点登录 URL。此 URL 用于提供 Web 浏览器链接或创建直接将用户定向到 StoreFront 的“开始”菜单快捷方式。
将此 URL 粘贴到 Web 浏览器中以确保 Azure AD 能够将您重定向到之前配置的 NetScaler cgi/samlauth Web 页面。这仅适用于已分配的用户,并且仅对联接了 Windows 10 Azure AD 的登录会话提供单点登录。(系统将提示其他用户输入 Azure AD 凭据。)
安装并配置 NetScaler Gateway
为远程访问部署,此示例使用运行 NetScaler 的独立 VM。可以从 Azure 应用商店购买。下列使用 NetScaler 11.0 的“自带许可”版本。
使用对用户进行身份验证时指定的凭据登录 NetScaler VM,从而将 Web 浏览器指向内部 IP 地址。 请注意,必须在 Azure AD VM 中更改用户 nsroot 的密码。
添加许可证,在添加每个许可证文件后选择重新启动,然后将 DNS 解析器指向 Microsoft 域控制器。
运行 XenApp 和 XenDesktop 设置向导
下例首先配置一个不带 SAML 的简单 StoreFront 集成。该部署运行后,将添加 SAML 登录策略。
选择标准 NetScaler StoreFront 设置。此示例将配置端口 4433(而非端口 443),以在 Microsoft Azure 中使用。或者,您可以对 NetScaler 管理 Web 站点进行端口转发或重新映射。
为简单起见,此示例将上载现有服务器证书以及存储在文件中的私钥。
配置域控制器以便管理 AD 帐户
域控制器将用于帐户解析,因此,请将其 IP 地址添加到主身份验证方法中。记录对话框中每个字段要求的格式。
配置 StoreFront 地址
在此示例中,已使用 HTTPS 配置 StoreFront,因此,请选择 SSL 协议选项。
验证 NetScaler 部署
使用用户名和密码连接到 NetScaler 并检查身份验证和启动是否成功。
启用 NetScaler SAML 身份验证支持
在 StoreFront 中使用 SAML 与在其他 Web 站点中使用 SAMl 类似。 添加新的 SAML 策略,表达式为 NS_TRUE。
使用之前从 Azure AD 获取的信息配置新 SAML IdP 服务器。
验证端到端系统
使用在 Azure AD 中注册的帐户登录到加入了 Azure AD 的 Windows 10 桌面。启动 Microsoft Edge 并连接到 https://myapps.microsoft.com。
Web 浏览器应为用户显示 Azure AD 应用程序。
验证单击图标是否会将您重定向到通过身份验证的 StoreFront 服务器。
同样,请验证使用单点登录 URL 的直接连接以及与 NetScaler 站点的直接连接是否会将您重定向到 Microsoft Azure 并返回。
最后,验证未加入 Azure AD 的计算机是否也能通过相同的 URL 运行(尽管会有一次显式登录到 Azure AD 以建立初始连接)。
附录
在 Azure 中设置 VM 时应配置多个标准选项。
提供公用 IP 地址和 DNS 地址
Azure 在内部子网中向所有 VM 提供 IP 地址(在此示例中为 10.*.*.*)。默认情况下,还会提供公用 IP 地址,该地址可以被动态更新的 DNS 标签引用。
选择公用 IP 地址/DNS 名称标签的配置。为 VM 选择一个公用 DNS 地址。此地址可用于其他 DNS 区域文件中的 CNAME 引用,以确保即使重新分配了 IP 地址,所有 DNS 记录仍始终正确地指向该 VM。
设置防火墙规则(安全组)
云中的每个 VM 都将自动应用一组防火墙规则,称为安全组。安全组控制从公用 IP 地址转发到专用 IP 地址的流量。默认情况下,Azure 允许将 RDP 转发到所有 VM。NetScaler 和 ADFS 服务器还需要转发 TLS 流量 (443)。
打开 VM 的网络接口,然后单击网络安全组标签。配置入站安全规则以允许传输相应的网络流量。
相关信息
- 联合身份验证服务一文是 FAS 安装和配置的主要参考资料。
- 通用 FAS 部署在联合身份验证服务体系结构概述一文中加以概括。
- 联合身份验证服务配置和管理一文介绍了“方法”文章。