Gateway

为 NetScaler Gateway 虚拟服务器配置网络访问控制设备检查以进行单因素登录

本主题提供有关将 NetScaler Gateway 配置为使用 Microsoft Intune 提供的网络访问合规性 (NAC) 安全性从移动设备(iOS 和 Android)连接到内部网络的信息。当用户尝试从 iOS 或 Android VPN 客户端连接到 NetScaler Gateway 时,网关首先向 Intune 服务检查设备是否为受管设备和合规设备。

  • 托管:使用 Intune 公司门户客户端注册设备。
  • 合规:应用从 Intune MDM 服务器推送的必需策略。

只有当设备既受管又符合要求时,才会建立 VPN 会话,并向用户提供对内部资源的访问权限。

注意:

  • 在此设置中,后端的 NetScaler Gateway 会与 Intune 服务进行对话。SSL 配置文件处理到 NetScaler Gateway 的传入连接。NetScaler Gateway 后端通信可处理后端云服务 (Intune) 的任何 SNI 要求。

  • NetScaler Gateway 版本 13.0 版本 64.x 及更高版本支持适用于 DTLS 网关虚拟服务器的 SNI。

  • 仅当 Intune 管理门户(现在称为 Microsoft Endpoint Manager)配置 VPN 配置文件时,才支持针对 PerApp VPN 甚至是设备范围的 VPN 的 Intune NAC 检查。最终用户添加的 VPN 配置文件不支持这些功能。最终用户设备必须由其 Intune 管理员从 Microsoft Endpoint Manager 将 VPN 配置文件部署到其设备,才能使用 NAC 检查。

许可

此功能需要 Citrix 企业版许可证。

系统要求

  • NetScaler Gateway 版本 11.1 版本 51.21 或更高版本
  • iOS VPN — 10.6 或更高版本
  • Android VPN — 2.0.13 或更高版本
  • Microsoft
    • Azure AD 访问权限(具有租户和管理员权限)
    • 启用 Intune 的租户
  • 防火墙 为从子网 IP 地址到 https://login.microsoftonline.comhttps://graph.windows.net(端口 53 和端口 443)的所有 DNS 和 SSL 流量启用防火墙规则

必备条件

引用

使用 nFactor 添加 NetScaler Gateway 虚拟服务器以进行网关部署

  1. 导航到 NetScaler Gateway > 虚拟服务器

    虚拟服务器页面

  2. 单击添加

  3. 在“基本设置”区域中提供所需信息,然后单击“确定”

    设置基本设置

  4. 选择 服务器证书

    选择服务器证书

  5. 选择所需的服务器证书并单击 绑定

    绑定服务器证书

  6. 作为 Intune NAC v2 API 支持的一部分,您必须绑定证书颁发机构文件(CA 证书),以确保 NetScaler 设备从移动设备获取有效证书。在 Intune NAC v2 中,移动设备将设备 ID 作为客户端证书的一部分发送。此处绑定的 CA 证书必须是用于向最终用户 iOS 和 Android 设备颁发客户端证书的证书。如果有中间证书,这些证书也必须绑定到这里。有关 Intune 配置的更多信息,请参阅在 Azure 门户上配置 NetScaler Gateway 应用程序。要获得 Intune NAC v2 API 支持,请选择所需的 CA 证书,然后单击 绑定

    绑定服务器证书以进行 Intune 集成

    绑定服务器证书以进行 Intune 集成

  7. 单击继续

  8. 单击继续

  9. 单击继续

  10. 单击“策略”旁边的加号图标 [+] ,然后从“选择 策略”列表中 选择会话”,然后从“选择 类型”列表中选择请求”,然后单击“继续”。

  11. 单击“选择策略”旁边的加号图标 [+]

  12. 创建 NetScaler Gateway 会话策略 页面上,提供会话策略的名称。

  13. 单击 配置文件 旁边的加号图标 [+],然后在 创建 NetScaler Gateway 会话配置文件 页面上,提供会话配置文件的名称。

  14. 在“客户端体验”选项卡上,单击“无客户端访问”旁边的复选框,然后从列表中选择“关闭”。

  15. 单击 插件类型 旁边的复选框,然后从列表中选择 Windows/Mac OS X。

  16. 单击 高级设置 ,然后选中 客户端选择旁边的复选 框,然后将其值设置为

  17. 在“ 全”选项卡上,单击“默认授权操作”旁边的复选框,然后从列表中选择“允许”。

  18. 在“已发布的应用程序”选项卡上,单击 ICA Proxy 旁边的复选框,然后从列表中选择 关闭

  19. 单击创建。

  20. 创建 NetScaler Gateway 会话策略 页面的“表达式”区域中,配置符合条件的表达式。

  21. 单击创建

  22. 单击绑定

  23. 高级设置中选择验证配文件。

    选择验证配置文

  24. 单击加号图标 [+] 并提供身份验证配置文件的名称。

    验证配置文件名

  25. 单击加号图标 [+] 可创建身份验证虚拟服务器。

    添加验证虚拟服务器

  26. 基本设置 区域下指定身份验证虚拟服务器的名称和 IP 地址类型,然后单 击确定IP 地址类型也可以是“不可寻址”。

    设置基本设置

  27. 单击 身份验证策略

    身份验证策略

  28. 在“策略绑定”视图下,单击加号图标 [+] 以创建身份验证策略。

    创建身份验证策略

  29. 选择 OAUTH 作为 操作类型 ,然后单击加号图标 [+] 为 NAC 创建 OAuth 操作。

    选择 OAuth 操作类型

  30. 使用客户端 ID客户端密钥租户 ID 创建 OAuth 操作。

    注意:

    • 客户端 ID客户端密钥租户 ID 是在 Azure 门户上配置 NetScaler Gateway 应用程序后生成的。
    • 记下客户端 ID/ 应用程序 ID、客户端密钥/应用程序密钥和 Azure 租户 ID 信息,以便稍后在 NetScaler Gateway 上创建 OAuth 操作时需要这些信息。

    确保在设备上配置了适当的 DNS 名称服务器以进行解析并访问; https://login.microsoftonline.com/, - - https://graph.windows.net/,- *.manage.microsoft.com。

    Azure 门户的 ID 和密码

  31. OAuth 操作创建身份验证策略。

    规则:

    http.req.header("User-Agent").contains("NAC/1.0")&& ((http.req.header("User-Agent").contains("iOS") && http.req.header("User-Agent").contains("NSGiOSplugin")) || (http.req.header("User-Agent").contains("Android") && http.req.header("User-Agent").contains("CitrixVPN")))
    <!--NeedCopy-->
    

    验证策略规则

  32. 单击加号图标 [+] 可创建 nextFactor 策略标签。

    创建下一个因素策略标签

  33. 单击加号图标 [+] 可创建登录架构。

    创建登录架构

  34. 选择 noschema 作为身份验证架构,然后单击 创建

    选择验证架构

  35. 选择创建的登录架构后,单击 继续

    单击“继续”

  36. 选择策略中,选择用于用户登录的现有身份验证策略,或单击加号图标 + 创建身份验证策略。 有关创建验证策略的详细信息,请参阅 配置高级身份验证策 略和 配置 LDAP 身份验证

    选择或创建身份验证策略

  37. 单击绑定

    单击绑定

  38. 单击 Done(完成)。

    单击“完成”

  39. 单击绑定

    单击绑定

  40. 单击继续

    单击“继续”

  41. 单击 Done(完成)。

    单击“完成”

  42. 单击创建

    单击“创建”

  43. 单击确定

    单击“确定”

  44. 单击 Done(完成)。

    单击“完成”

将身份验证登录架构绑定到身份验证虚拟服务器以指示 VPN 插件作为 /cgi/login 请求的一部分发送设备 ID

  1. 导航到安全 > AAA - 应用程序流量 > 虚拟服务器

    虚拟服务器页面

  2. 选择之前选择的虚拟服务器,然后单击 编辑

    编辑虚拟服务器

  3. 单击 高级设置下的登录架构

    选择登录架构

  4. 单击 登录架构进 行绑定。

    绑定登录架构

  5. 单击 [>] 在登录架构策略中选择并绑定现有内部版本以进行 NAC 设备检查。

    绑定登录架构策略

  6. 选择适合您的身份验证部署的所需登录架构策略,然后单击 选择

    在前面介绍的部署中,将使用单因素身份验证 (LDAP) 和 NAC OAuth 操作策略。因此选择了 lschema_single_factor_deviceid

    选择单因素身份验证策略

  7. 单击绑定

    单击绑定

  8. 单击 Done(完成)。

    单击“完成”

Intune NAC v2 API 支持

作为 Intune NAC v2 API 支持的一部分,您必须绑定证书颁发机构文件(CA 证书),以确保 NetScaler 设备从移动设备获取有效证书。在 Intune NAC v2 中,移动设备将设备 ID 作为 CA 证书的一部分进行发送。此处绑定的 CA 证书必须是用于向最终用户 iOS 和 Android 设备颁发客户端证书的证书。如果有中间证书,这些证书也必须绑定到这里。

您可以使用以下示例命令绑定您的 CA 证书。

bind ssl vserver intune_nac_check_443 -certkeyName clientca -CA -ocspCheck Optional
<!--NeedCopy-->

重要:

  • Intune NAC v2 API 支持在 NetScaler Gateway 13.1 版本 12.50 或更高版本和 13.0 版本 84.11 或更高版本中提供。

  • 必须通过在 VPN 和身份验证虚拟服务器上将 clientAuth 设置为 ENABLED,将 clientCert 设置为 OPTIONAL 以启用基于客户端证书的身份验证。clientCert 参数设置为 OPTIONAL,以便不需要 Intune NAC 检查的其他端点可以在不提供客户端证书的情况下通过同一虚拟服务器进行身份验证。Android 和 iOS 设备必须提供客户端证书。否则 Intune NAC 检查将失败。
  • 您必须确保在移动设备上通过 Intune 置备的客户端证书必须在 URI 类型的 SAN 字段中具有 Intune 设备 ID,如用于网络访问控制的新 Microsoft Intune 服务文档中所述。有关详细信息,请参阅 https://techcommunity.microsoft.com/t5/intune-customer-success/new-microsoft-intune-service-for-network-access-control/ba-p/2544696。 URI 值字段的格式必须与下图所示的格式相同。此外,Citrix SSO 应用程序必须使用相同的证书对网关进行身份验证。

Intune 设备 ID 样本

故障排除

常规问题

问题 解决方案
打开应用程序时,将显示“需要添加策略”消息 在 Microsoft Graph API 中添加策略
存在策略冲突 每个应用程序只允许使用一个策略
您的应用无法连接到内部资源 确保打开了正确的防火墙端口、使用了正确的租户 ID 等等

NetScaler Gateway 问题

问题 解决方案
为 Azure 上的网关应用程序配置所需的权限不可用。 检查是否有适当的 Intune 许可证可用。尝试使用 manage.windowsazure.com 门户来查看是否可以添加权限。如果问题仍然存在,请与 Microsoft 支持部门联系。
NetScaler Gateway 无法访问 login.microsoftonline.comandgraph.windows.net 从 NS Shell,检查您是否能够访问以下 Microsoft 网站:cURL -v -k https://login.microsoftonline.com。然后,检查是否在 NetScaler Gateway 上配置了 DNS。还要检查防火墙设置是否正确(如果 DNS 请求被防火墙处理)。
配置 OAuthAction 后,ns.log 中会出现错误。 检查 Intune 许可是否已启用,以及 Azure 网关应用程序是否设置了适当的权限。
Sh OAuthAction 命令不会将 OAuth 状态显示为已完成。 检查 Azure Gateway 应用程序的 DNS 设置和配置权限。
Android 或 iOS 设备不显示双重身份验证提示。 检查双重设备 ID 登录架构是否绑定到身份验证虚拟服务器。

NetScaler Gateway OAuth 状态和错误情况

状态 错误情况
AADFORGRAPH 密钥无效、URL 未解析、连接超时
MDMINFO *manage.microsoft.com已关闭或无法访问
GRAPH 图形端点已关闭,无法访问
CERTFETCH 由于 DNS 错误,无法与“令牌端点:https://login.microsoftonline.com”对话。要验证此配置,请转到 Shell 提示符并键入 cURL https://login.microsoftonline.com。此命令必须验证。

注意: 当 OAuth 状态成功时,状态将显示为“完成”。

Intune 配置检查

确保在 Citrix SSO > 启用网络访问控制 (NAC) 的基础 iOS VPN 配置 中选中 我同意复选框。否则,NAC 检查不起作用。

为 NetScaler Gateway 虚拟服务器配置网络访问控制设备检查以进行单因素登录