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

Last published : Oct 14, 2026
本主题提供有关配置 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 build 64.x 及更高版本支持 DTLS 网关虚拟服务器的 SNI。
  • Intune NAC 检查(无论是针对每应用 VPN 还是设备范围 VPN)仅在 VPN 配置文件由 Intune 管理门户(现称为 Microsoft Endpoint Manager)预配时才受支持。这些功能不支持最终用户添加的 VPN 配置文件。最终用户设备必须由其 Intune 管理员通过 Microsoft Endpoint Manager 将 VPN 配置文件部署到其设备上,才能使用 NAC 检查。

许可

此功能需要 Citrix Enterprise Edition 许可证。

系统要求

  • NetScaler Gateway 11.1 build 51.21 或更高版本
  • iOS VPN – 10.6 或更高版本
  • Android VPN – 2.0.13 或更高版本
  • 微软
    • Microsoft Entra ID 访问权限(拥有租户和管理员权限)
    • 启用 Intune 的租户
  • 防火墙 启用防火墙规则,允许所有 DNS 和 SSL 流量从子网 IP 地址流向 https://login.microsoftonline.com 和 https://graph.microsoft.com(端口 53 和端口 443)

先决条件

  • 所有现有身份验证策略都必须从经典策略转换为高级策略。有关如何从经典策略转换为高级策略的信息,请参阅 <https://support.citrix.com/article/CTX131024>。
  • 在 Azure 门户上创建 NetScaler Gateway 应用程序。有关详细信息,请参阅 在 Azure 门户上配置 NetScaler Gateway 应用程序。
  • 使用以下应用程序特定信息,在您创建的 NetScaler Gateway 应用程序上配置 OAuth 策略。
    • 客户端 ID / 应用程序 ID
    • 客户端密钥 / 应用程序密钥
    • 微软 Entra 租户 ID

参考

  • 本文档介绍了 NetScaler Gateway 的设置配置。大部分 Citrix SSO 客户端 (iOS/Android) 配置是在 Intune 端完成的。有关 NAC 的 Intune VPN 配置的详细信息,请参阅 <https://docs.microsoft.com/zh-cn/mem/intune/protect/network-access-control-integrate>。
  • 要为 iOS 应用程序配置 VPN 配置文件,请参阅 <https://docs.microsoft.com/zh-cn/mem/intune/configuration/vpn-settings-ios>。
  • 要在 Azure 门户上设置 NetScaler Gateway 应用程序,请参阅 在 Azure 门户上配置 NetScaler Gateway 应用程序。

添加具有 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 代理旁边的复选框,并从列表中选择关闭。
  19. 点击创建。
  20. 在创建 NetScaler Gateway 会话策略页面上,在表达式区域中,配置限定表达式。
  21. 点击创建。
  22. 点击绑定。
  23. 在高级设置中选择身份验证配置文件。
    选择身份验证配置文件(/en-us/netscaler-gateway/media/intune_6.jpg)
  24. 单击加号图标 ,并为身份验证配置文件提供一个名称。
    身份验证配置文件名称(/en-us/netscaler-gateway/media/intune_7.jpg)
  25. 单击加号图标 以创建身份验证虚拟服务器。
    添加身份验证虚拟服务器(/en-us/netscaler-gateway/media/intune_8.jpg)
  26. 在“基本设置”区域下指定身份验证虚拟服务器的名称和 IP 地址类型,然后单击“确定”。IP 地址类型也可以是“不可寻址”。
    设置基本设置(/en-us/netscaler-gateway/media/intune_9.jpg)
  27. 单击“身份验证策略”。
    身份验证策略(/en-us/netscaler-gateway/media/intune_10.jpg)
  28. 在“策略绑定”视图下,单击加号图标 以创建身份验证策略。
    创建身份验证策略(/en-us/netscaler-gateway/media/intune_11.jpg)
  29. 选择 OAUTH 作为“操作类型”,然后单击加号图标 以为 NAC 创建 OAuth 操作。
    选择 OAuth 操作类型(/en-us/netscaler-gateway/media/intune_12.jpg)
  30. 使用“客户端 ID”、“客户端密钥”和“租户 ID”创建 OAuth 操作。
    注意:
    • 在 Azure 门户上配置 NetScaler Gateway 应用程序后,会生成 客户端 ID、客户端密钥和 租户 ID。
    • 记下客户端 ID/应用程序 ID、客户端密钥/应用程序密钥和 Microsoft Entra 租户 ID 信息,因为稍后在 NetScaler Gateway 上创建 OAuth 操作时需要它们。
    确保您的设备上已配置适当的 DNS 名称服务器,以便解析和访问;
    -  `https://login.microsoftonline.com/,`
    -  `https://graph.microsoft.com/`,
    -  *.manage.microsoft.com.
    Azure 门户的 ID 和密钥(/en-us/netscaler-gateway/media/intune_13.jpg)
  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")))
    身份验证策略规则(/en-us/netscaler-gateway/media/intune_14.jpg)
  32. 单击加号图标 以创建 nextFactor 策略标签。
    创建 next factor 策略标签(/en-us/netscaler-gateway/media/intune_15.jpg)
  33. 单击加号图标 以创建登录架构。
    创建登录架构(/en-us/netscaler-gateway/media/intune_16.jpg)
  34. 选择 noschema 作为身份验证架构,然后单击创建。
    选择身份验证架构(/en-us/netscaler-gateway/media/intune_17.jpg)
  35. 选择已创建的登录架构后,单击继续。
    单击继续(/en-us/netscaler-gateway/media/intune_18.jpg)
  36. 在 选择策略 中,选择一个现有的用户登录认证策略,或点击加号图标 + 创建一个认证策略。
    有关创建认证策略的详细信息,请参阅 配置高级认证策略 和 配置 LDAP 认证。
    选择或创建认证策略
  37. 点击 绑定。
    点击绑定
  38. 点击 完成。
    点击完成
  39. 点击 绑定。
    点击绑定
  40. 点击 继续。
    点击继续
  41. 点击 完成。
    点击完成
  42. 点击 创建。
    点击创建
  43. 单击 确定。
    单击确定
  44. 单击 完成。
    单击完成

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

  1. 导航到 安全 > AAA - 应用程序流量 > 虚拟服务器。
    虚拟服务器页面
  2. 选择之前选择的虚拟服务器,然后单击 编辑。
    编辑虚拟服务器
  3. 在 高级设置 下单击 登录方案。
    选择登录方案
  4. 单击 登录方案 以绑定。
    绑定登录方案
  5. 单击 以选择并绑定用于 NAC 设备检查的现有内置登录方案策略。
    绑定登录方案策略
  6. 选择适合您的身份验证部署所需的登录架构策略,然后单击 Select。
    在前面解释的部署中,使用了单因素身份验证 (LDAP) 以及 NAC OAuth 操作策略。因此,选择了 lschema_single_factor_deviceid。
    选择单因素身份验证策略
  7. 单击 Bind。
    单击 Bind
  8. 单击 Done。
    单击 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
重要提示:
  • Intune NAC v2 API 支持在 NetScaler Gateway 13.1 build 12.50 或更高版本以及 13.0 build 84.11 或更高版本中可用。
  • 您必须通过将 clientAuth 设置为 ENABLED 并将 clientCert 设置为 OPTIONAL 来在 VPN 和身份验证虚拟服务器上启用基于客户端证书的身份验证。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 示例

NetScaler Gateway 与 Intune NAC 集成中对强映射证书的支持

从 NetScaler Gateway 14.1 版本 build 47.46 开始,Intune NAC 集成支持强映射证书。此增强功能使 NetScaler Gateway 能够从客户端证书中提取并验证 IntuneDevcieId,即使强映射证书中采用 Microsoft 更新后的主题备用名称 (SAN) URI 格式。
NetScaler Gateway 要求为 IntuneDeviceId 提取的 SAN URI 满足以下条件:
  • 它必须以 IntuneDeviceId:// 开头。
  • 其长度不得超过 4095 个字符。
从 SAN-URI 中提取的 IntuneDeviceId 值必须只包含有效字符(不允许使用特殊字符)。
此功能通过支持旧版证书格式来确保向后兼容性,避免对现有配置造成中断,并实现向更新标准的无缝过渡。

故障排除

常见问题

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

NetScaler Gateway 问题

问题 解决方案
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 网关应用程序上的 DNS 设置和已配置的权限。
Android 或 iOS 设备未显示双重身份验证提示。 检查双因素设备 ID 登录方案是否已绑定到身份验证虚拟服务器。

NetScaler Gateway OAuth 状态和错误条件

状态 错误条件
AADFORGRAPH 密钥无效、URL 未解析、连接超时
MDMINFO *manage.microsoft.com已关闭或无法访问
GRAPH Graph 端点已关闭或无法访问
CERTFETCH 无法与“令牌端点: <https://login.microsoftonline.com>”通信,因为存在 DNS 错误。要验证此配置,请转到 Shell 提示符并键入 cURL <https://login.microsoftonline.com>。此命令必须验证。
**注意:**当 OAuth 状态成功时,状态显示为 COMPLETE。

Intune 配置检查

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