Azure AD 集成
简介
本文档介绍了如何将 Citrix 环境与 Windows 10 Azure AD 功能集成。Windows 10 引入了 Azure AD,这是一种新的域加入模型,其中漫游笔记本电脑可以通过 Internet 加入公司域,以实现管理和单点登录。
本文档中的示例部署描述了一个系统,其中 IT 部门为新用户提供公司电子邮件地址和注册代码,供其个人 Windows 10 笔记本电脑使用。用户可以通过“设置”面板中的“系统 > 关于 > 加入 Azure AD”选项访问此代码。

笔记本电脑注册后,Microsoft Edge Web 浏览器将通过 Azure SaaS 应用程序网页自动登录到公司网站和 Citrix 发布的应用程序,以及其他 Azure 应用程序(例如 Office 365)。

体系结构
此体系结构在 Azure 中完全复制了传统的公司网络,并与 Azure AD 和 Office 365 等现代云技术集成。最终用户都被视为远程工作人员,没有在办公室内部网上工作的概念。
此模型可应用于具有现有本地系统的公司,因为 Azure AD Connect Synchronization 可以通过 Internet 连接到 Azure。

在此体系结构中,安全连接和单点登录(传统上是防火墙 LAN 和 Kerberos/NTLM 身份验证)被替换为到 Azure 和 SAML 的 TLS 连接。新服务作为加入 Azure AD 的 Azure 应用程序构建。需要 Active Directory 的现有应用程序(例如 SQL Server 数据库)可以使用 Azure 云服务的 IAAS 部分中的标准 Active Directory Server VM 运行。
当用户启动传统应用程序时,他们会使用 Citrix Virtual Apps and Desktops™ 发布的应用程序进行访问。不同类型的应用程序通过用户的“Azure 应用程序”页面进行整理,并使用 Microsoft Edge 单点登录功能。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 的引用时,最简单的方法是使用 CNAME 指针指向 VM 的 Azure 托管 DNS 记录。如果 VM 的 IP 地址发生更改,则无需手动更新 DNS 区域文件。
-
此部署的内部和外部 DNS 地址后缀将匹配。该域为 citrixsamldemo.net,并使用拆分 DNS(内部为 10.0.0.*)。
-
添加一个引用 Web Application Proxy 服务器的“fs.citrixsamldemo.net”条目。这是此区域的 Federation Service。
创建云服务
此示例配置了一个 Citrix 环境,其中包括一个在 Azure 中运行 ADFS 服务器的 AD 环境。创建了一个名为“citrixsamldemo”的云服务。
创建 Windows 虚拟机
在云服务中创建五个 Windows VM:
- 域控制器 (domaincontrol)
- Azure Connect ADFS 服务器 (adfs)
- ADFS Web 访问代理 (Web Application Proxy,未加入域)
- Citrix Virtual Apps and Desktops Delivery Controller
- Citrix Virtual Apps and Desktops Virtual Delivery Agent (VDA)

域控制器
- 添加“DNS 服务器”和“Active Directory 域服务”角色以创建标准 Active Directory 部署(在此示例中为 citrixsamldemo.net)。域升级完成后,添加“Active Directory 证书服务”角色。
- 创建用于测试的普通用户帐户(例如,George@citrixsamldemo.net)。
- 由于此服务器将运行内部 DNS,因此所有服务器都应引用此服务器进行 DNS 解析。这可以通过“Azure DNS 设置”页面完成。(有关详细信息,请参阅本文档中的附录。)
ADFS 控制器和 Web Application Proxy 服务器
-
将 ADFS 服务器加入 citrixsamldemo 域。Web Application Proxy 服务器应保留在隔离的工作组中,因此请手动向 AD DNS 注册 DNS 地址。
- 在这些服务器上运行 Enable-PSRemoting –Force cmdlet,以允许 AzureAD Connect 工具通过防火墙进行 PS 远程处理。
Citrix Virtual Desktops™ Delivery Controller 和 VDA
- 在加入 citrixsamldemo 的其余两台 Windows 服务器上安装 Citrix Virtual Apps 或 Citrix Virtual Desktops Delivery Controller™ 和 VDA。
配置内部 DNS
安装域控制器后,配置 DNS 服务器以处理 citrixsamldemo.net 的内部视图,并充当外部 DNS 服务器(例如:8.8.8.8)的转发器。

添加以下静态记录:
- wap.citrixsamldemo.net [Web Application Proxy VM 将不加入域]
- fs.citrixsamldemo.net [内部 Federation Server 地址]
- enterpriseregistration.citrixsaml.net [与 fs.citrixsamldemo.net 相同]
所有在 Azure 中运行的 VM 都应配置为仅使用此 DNS 服务器。您可以通过网络接口 GUI 执行此操作。

默认情况下,内部 IP 地址 (10.0.0.9) 是动态分配的。您可以使用 IP 地址设置永久分配 IP 地址。Web 应用程序代理服务器和域控制器应执行此操作。
配置外部 DNS 地址
当虚拟机运行时,Azure 会维护自己的 DNS 区域服务器,该服务器指向分配给虚拟机的当前公共 IP 地址。默认情况下,Azure 会在每个虚拟机启动时分配 IP 地址,因此启用此功能非常有用。

此示例将 DNS 地址 domaincontrol-citrixsamldemo.westeurope.cloudapp.azure.com 分配给域控制器。
请注意,远程配置完成后,只有 Web 应用程序代理和 Citrix Gateway 虚拟机应启用公共 IP 地址。(在配置期间,公共 IP 地址用于对环境进行 RDP 访问)。
配置安全组
Azure 云使用安全组管理从 Internet 到虚拟机的 TCP/UDP 访问防火墙规则。默认情况下,所有虚拟机都允许 RDP 访问。Citrix Gateway 和 Web 应用程序代理服务器也应允许端口 443 上的 TLS。

创建 ADFS 证书
在 Microsoft 证书颁发机构上启用 Web 服务器证书模板。这允许创建具有自定义 DNS 地址的证书,该证书可以导出(包括私钥)到 pfx 文件。您必须在 ADFS 和 Web 应用程序代理服务器上安装此证书,因此 PFX 文件是首选选项。
颁发具有以下主题名称的 Web 服务器证书:
- 公用名 (Commonname):
- adfs.citrixsamldemo.net [计算机名称]
- 主题备用名称 (SubjectAltname):
- *.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 虚拟机上安装此项。使用自定义安装而不是快速设置,以便 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 之前验证域。
-
完成后,将通过端口 443 联系外部地址 fs.citrixsamldemo.net。
-

启用 Azure AD Join
当用户输入电子邮件地址以便 Windows 10 可以执行 Azure AD Join 时,DNS 后缀用于构造应指向 ADFS 的 CNAME DNS 记录:enterpriseregistration.<upnsuffix>.
在此示例中,这是 fs.citrixsamldemo.net。

如果您未使用公共证书颁发机构,请确保 ADFS 根证书已安装在 Windows 10 计算机上,以便 Windows 信任 ADFS 服务器。使用之前生成的标准用户帐户执行 Azure AD 域加入。

请注意,UPN 必须与 ADFS 域控制器识别的 UPN 匹配。



通过重新启动计算机并使用用户的电子邮件地址登录来验证 Azure AD Join 是否成功。登录后,启动 Microsoft Edge 并连接到 http://myapps.microsoft.com。该网站应自动使用单一登录。
安装 Citrix Virtual Apps 或 Citrix Virtual Desktops
您可以按照常规方式,直接从 Citrix Virtual Apps 或 Citrix Virtual Desktops ISO 在 Azure 中安装 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™ 在没有用户凭据的情况下进行身份验证。
安装 Federated Authentication Service
在 ADFS 服务器上安装 FAS,并为 Delivery Controller 配置一个规则,使其充当受信任的 StoreFront(因为在此示例中,StoreFront 与 Delivery Controller 安装在同一 VM 上)。请参阅安装和配置。
配置 StoreFront
为 Delivery Controller 请求计算机证书,并通过为端口 443 设置 IIS 绑定并将 StoreFront 基本地址更改为 https: 来配置 IIS 和 StoreFront 以使用 HTTPS。

配置 StoreFront 以使用 FAS 服务器(使用 安装和配置 中的 PowerShell 脚本),并在 Azure 内部进行测试,通过检查 FAS 服务器上的事件查看器来确保登录使用 FAS。

配置 StoreFront 以使用 Citrix Gateway
使用 StoreFront 管理控制台中的管理身份验证方法 GUI,配置 StoreFront 以使用 Citrix Gateway 执行身份验证。

要集成 Citrix Gateway 身份验证选项,请配置安全票证颁发机构 (STA) 并配置 Citrix Gateway 地址。

为 StoreFront 的单点登录配置新的 Azure AD 应用程序
本部分使用 Azure AD SAML 2.0 单点登录功能,该功能目前需要 Azure Active Directory Premium 订阅。在 Azure AD 管理工具中,选择新建应用程序,然后选择从库中添加应用程序。

选择 CUSTOM > 添加我的组织正在使用的未列出应用程序 以创建供用户使用的新自定义应用程序。
配置图标
创建大小为 215 x 215 像素的图像,并将其上传到 CONFIGURE 页面,用作应用程序的图标。
![]()
配置 SAML 身份验证
返回到应用程序仪表板概述页面,然后选择配置单点登录。

此部署将使用 SAML 2.0 身份验证,这对应于 Microsoft Azure AD 单点登录。

标识符可以是任意字符串(它必须与提供给 Citrix Gateway 的配置匹配);在此示例中,回复 URL 是 Citrix Gateway 服务器上的 /cgi/samlauth。

下一页包含用于将 Citrix Gateway 配置为 Azure AD 的信赖方的信息。

下载 base 64 受信任签名证书并复制登录和注销 URL。稍后您会将这些 URL 粘贴到 Citrix Gateway 配置屏幕中。
将应用程序分配给用户
最后一步是启用应用程序,使其显示在用户的 “myapps.microsoft.com” 控制页面上。这在 USERS AND GROUPS 页面上完成。为通过 Azure AD Connect 同步的域用户帐户分配访问权限。也可以使用其他帐户,但由于它们不符合 <user>@<domain> 模式,因此必须明确映射。

MyApps 页面
应用程序配置完成后,当用户访问 https://myapps.microsoft.com 时,它会显示在用户的 Azure 应用程序列表中。

当 Windows 10 加入 Azure AD 后,它支持登录用户的 Azure 应用程序单点登录。单击图标会将浏览器带到之前配置的 SAML cgi/samlauth 网页。
单点登录 URL
返回 Azure AD 仪表板中的应用程序。现在应用程序有一个可用的单点登录 URL。此 URL 用于提供网页链接或创建“开始”菜单快捷方式,将用户直接带到 StoreFront。

将此 URL 粘贴到 Web 浏览器中,以确保您被 Azure AD 重定向到之前配置的 Citrix Gateway cgi/samlauth 网页。这仅适用于已分配的用户,并且仅为 Windows 10 Azure AD 加入的登录会话提供单点登录。(其他用户将提示输入 Azure AD 凭据。)
安装和配置 Citrix Gateway
为了远程访问部署,此示例使用运行 NetScaler(现为 Citrix Gateway)的单独 VM。这可以从 Azure Store 购买。此示例使用 NetScaler 11.0 的“自带许可证”版本。
登录到 NetScaler® VM,将 Web 浏览器指向内部 IP 地址,使用用户进行身份验证时指定的凭据。请注意,您必须更改 Azure AD VM 中 nsroot 用户的密码。
添加许可证,在添加每个许可证文件后选择重新启动,并将 DNS 解析器指向 Microsoft 域控制器。
运行 Citrix Virtual Apps and Desktops 设置向导
此示例首先配置一个不带 SAML 的简单 StoreFront 集成。在该部署正常工作后,它会添加一个 SAML 登录策略。

选择标准 Citrix Gateway StoreFront 设置。对于在 Microsoft Azure 中的使用,此示例配置端口 4433,而不是端口 443。或者,可以端口转发或重新映射 Citrix Gateway 管理网站。

为简单起见,此示例上传存储在文件中的现有服务器证书和私钥。

配置用于 AD 帐户管理的域控制器
域控制器将用于帐户解析,因此请将其 IP 地址添加到主身份验证方法中。请注意对话框中每个字段所需的格式。

配置 StoreFront 地址
在此示例中,StoreFront 已使用 HTTPS 进行配置,因此请选择 SSL 协议选项。

验证 Citrix Gateway 部署
连接到 Citrix Gateway 并检查使用用户名和密码进行身份验证和启动是否成功。

启用 Citrix Gateway SAML 身份验证支持
将 SAML 与 StoreFront 结合使用类似于将 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 的直接连接以及直接连接到 Citrix Gateway 站点是否会将您重定向到 Microsoft Azure 并返回。
最后,验证未加入 Azure AD 的计算机是否也使用相同的 URL 运行(尽管首次连接时将对 Azure AD 进行一次显式登录)。
附录
在 Azure 中设置 VM 时,应配置以下标准选项。
提供公共 IP 地址和 DNS 地址
Azure 为所有 VM 提供内部子网上的 IP 地址(在此示例中为 10.*.*.*)。默认情况下,还会提供一个公共 IP 地址,可以通过动态更新的 DNS 标签进行引用。

选择公共 IP 地址/DNS 名称标签的配置。为 VM 选择一个公共 DNS 地址。这可用于其他 DNS 区域文件中的 CNAME 引用,确保所有 DNS 记录即使在 IP 地址重新分配后也能正确指向 VM。

设置防火墙规则(安全组)
云中的每个 VM 都有一组自动应用的防火墙规则,称为安全组。安全组控制从公共 IP 地址转发到私有 IP 地址的流量。默认情况下,Azure 允许将 RDP 转发到所有 VM。Citrix Gateway 和 ADFS 服务器也必须转发 TLS 流量 (443)。
打开 VM 的网络接口,然后单击网络安全组标签。配置入站安全规则以允许适当的网络流量。

