客户端证书或证书加域身份验证

XenMobile 的默认配置是用户名和密码身份验证。要为 XenMobile 环境中的注册和访问再增加一个安全层,请考虑使用基于证书的身份验证。在 XenMobile 环境中,此配置是用于实现安全性和用户体验的最佳组合。证书加域身份验证通过 NetScaler 进行的双重身份验证可提供最佳 SSO 选择和安全性。

要实现最佳可用性,可以将证书加域身份验证与 Citrix PIN 和 Active Directory 密码缓存组合在一起。因此,用户不需要重复输入其 LDAP 用户名和密码。用户在注册、密码过期和帐户锁定时输入用户名和密码。

重要:

用户在 XenMobile 中注册设备后,XenMobile 不支持将身份验证模式从域身份验证更改为某些其他身份验证模式。

如果禁用了 LDAP 并且不希望使用智能卡或类似方法,配置证书可代替智能卡来访问 XenMobile。用户随后使用 XenMobile 生成的唯一 PIN 进行注册。用户获取访问权限后,XenMobile 随后创建和部署后续用来在 XenMobile 环境中执行身份验证的证书。

使用 NetScaler 仅证书身份验证或证书加域身份验证时,可以使用 NetScaler for XenMobile 向导设置 XenMobile 所需的配置。只能运行一次 NetScaler for XenMobile 向导。

在高度安全的环境中,在组织外的公共或不安全网络中使用 LDAP 凭据会被视为组织面临的首要安全威胁。对于高度安全的环境,可以选择使用客户端证书和安全令牌的双重身份验证。有关信息,请参阅为 XenMobile 配置证书和安全令牌身份验证

客户端证书身份验证适用于 XenMobile MAM 模式(仅 MAM)和 ENT 模式(当用户注册到 MDM 时)。当用户注册到旧版 MAM 模式时,客户端证书身份验证不适用于 XenMobile ENT 模式。必须依次配置 Microsoft 服务器、XenMobile Server 和 NetScaler Gateway,才能对 XenMobile ENT 和 MAM 模式使用客户端证书身份验证。执行本文所述的如下常规步骤。

在 Microsoft 服务器上:

  1. 向 Microsoft 管理控制台中添加证书管理单元。
  2. 向证书颁发机构 (CA) 中添加模板。
  3. 从 CA 服务器创建 PFX 证书。

在 XenMobile Server 上:

  1. 将证书上载到 XenMobile。
  2. 为基于证书的身份验证创建 PKI 实体。
  3. 配置凭据提供程序。
  4. 将 NetScaler Gateway 配置为提供用于进行身份验证的用户证书。

在 NetScaler Gateway 上,按照 NetScaler Gateway 文档中所述进行配置。

必备条件

  • 创建 Microsoft 证书服务实体模板时,通过排除特殊字符来避免已注册的设备可能会出现的身份验证问题。例如,请勿在模板名称中使用以下字符: : ! $ () # % + * ~ ? | {} []

  • 对于使用证书身份验证和 SSL 卸载的 Windows Phone 8.1 设备,在 NetScaler 中的两个负载平衡虚拟服务器上对端口 443 禁用 SSL 会话重用。为此,请在虚拟服务器上对端口 443 运行以下命令:

    set ssl vserver <ssl lb vserver> sessReuse DISABLE

    如果禁用 SSL 会话重用,还将禁用 NetScaler 提供的某些优化功能,这可能会导致 NetScaler 上的性能下降。

  • 要为 Exchange ActiveSync 配置基于证书的身份验证,请参阅此 Microsoft 博客
  • 如果使用专用服务器证书来确保流向 Exchange Server 的 ActiveSync 流量安全,请确保移动设备具有所有根证书/中间证书。否则,在 Secure Mail 中设置邮箱时,基于证书的身份验证将失败。在 Exchange IIS 控制台中,必须执行以下操作:
    • 添加一个 Web 站点以供 XenMobile 和 Exchange 使用,并绑定 Web 服务器证书。
    • 使用端口 9443。
    • 对于该 Web 站点,必须添加两个应用程序,一个用于 Microsoft-Server-ActiveSync,一个用于 EWS。对于这两个应用程序,请在 SSL Settings(SSL 设置)下方选择 Require SSL(需要 SSL)。
  • 确保使用最新 MDX Toolkit 打包 Secure Mail(如果您的部署方法需要)。

向 Microsoft 管理控制台添加证书管理单元

  1. 打开该控制台,然后单击添加/删除管理单元

  2. 添加以下管理单元:

    • 证书模板
    • 证书(本地计算机)
    • 证书 - 当前用户
    • 证书颁发机构(本地)

    Microsoft 管理控制台图

  3. 展开证书模板

    Microsoft 管理控制台图

  4. 依次选择用户模板和复制模板

    Microsoft 管理控制台图

  5. 提供模板显示名称。

    重要:

    仅在必要时选中在 Active Directory 中发布证书复选框。如果选中了此选项,则将在 Active Directory 中创建所有用户客户端证书,这可能会导致您的 Active Directory 数据库混乱不堪。

  6. 选择 Windows 2003 Server 作为模板类型。在 Windows 2012 R2 Server 中,在兼容性下选择证书颁发机构,然后设置接受方 Windows 2003

  7. 安全下方,针对已通过身份验证的用户在允许列中选择注册选项。

    Microsoft 管理控制台图

  8. 加密下方,务必提供密钥大小。以后可在 XenMobile 配置过程中输入密钥大小。

    Microsoft 管理控制台图

  9. 使用者名称下方,选择在请求中提供。应用更改并保存。

    Microsoft 管理控制台图

向证书颁发机构添加模板

  1. 转至证书颁发机构并选择证书模板

  2. 在右侧窗格中单击鼠标右键,然后选择新建 > 要颁发的证书模板

    Microsoft 管理控制台图

  3. 选择在上一步中创建的模板,然后单击确定将其添加到证书颁发机构

    Microsoft 管理控制台图

从 CA 服务器创建 PFX 证书

  1. 使用登录时使用的服务帐户创建用户 .pfx 证书。该 .pfx 将上载到 XenMobile,之后 XenMobile 将代表注册其设备的用户申请用户证书。

  2. 当前用户下方,展开证书

  3. 在右侧窗格中单击鼠标右键,然后单击申请新证书

    Microsoft 管理控制台图

  4. 此时将显示证书注册屏幕。单击下一步

    Microsoft 管理控制台图

  5. 选择 Active Directory 注册策略,然后单击下一步

    Microsoft 管理控制台图

  6. 选择用户模板,然后单击注册

    Microsoft 管理控制台图

  7. 导出在上一步中创建的 .pfx 文件。

    Microsoft 管理控制台图

  8. 单击是,导出私钥

    Microsoft 管理控制台图

  9. 选中如果可能,则包括证书路径中的所有证书导出所有扩展属性复选框。

    Microsoft 管理控制台图

  10. 设置在将此证书上载到 XenMobile 中时要使用的密码。

    Microsoft 管理控制台图

  11. 将证书保存到您的硬盘驱动器。

将证书上载到 XenMobile

  1. 在 XenMobile 控制台中,单击右上角的齿轮图标。此时将显示设置屏幕。

  2. 依次单击证书导入

  3. 输入以下参数:

    • 导入: 密钥库
    • 密钥库类型: PKCS #12
    • 用作: 服务器
    • 密钥库文件: 单击“浏览”选择刚刚创建的 .pfx 证书。
    • 密码: 输入为此证书创建的密码。

    证书配置屏幕图

  4. 单击导入

  5. 验证是否已正确安装证书。正确安装的证书将显示为用户证书。

为基于证书的身份验证创建 PKI 实体

  1. 设置中,转至更多 > 证书管理 > PKI 实体

  2. 依次单击添加Microsoft 证书服务实体。此时将显示 Microsoft 证书服务实体: 常规信息屏幕。

  3. 输入以下参数:

    • 名称: 键入任意名称
    • Web 注册服务根 URL: https://RootCA-URL/certsrv/ (请务必在 URL 路径结尾添加一个斜杠 /。)
    • certnew.cer 页面名称: certnew.cer(默认值)
    • certfnsh.asp: certfnsh.asp(默认值)
    • 身份验证类型: 客户端证书
    • SSL 客户端证书: 选择要用于颁发 XenMobile 客户端证书的用户证书。

    证书配置屏幕图

  4. 模板下方,添加配置 Microsoft 证书时创建的模板。请勿添加空格。

    证书配置屏幕图

  5. 跳过“HTTP 参数”,然后单击 CA 证书

  6. 选择与您的环境对应的根 CA 名称。此根 CA 属于从 XenMobile 客户端证书中导入的链的一部分。

    证书配置屏幕图

  7. 单击保存

配置凭据提供程序

  1. 设置中,转至更多 > 证书管理 > 凭据提供程序

  2. 单击添加

  3. 常规下方,输入以下参数:

    • 名称: 键入任意名称。
    • 说明: 键入任意说明。
    • 颁发实体: 选择之前创建的 PKI 实体。
    • 颁发方法: 签名
    • 模板: 选择在“PKI 实体”下方添加的模板。

    “凭据提供程序”配置屏幕图

  4. 单击证书签名请求,然后输入以下参数:

    • 密钥算法: RSA
    • 密钥大小: 2048
    • 签名算法: SHA1withRSA
    • 使用者名称: cn=$user.username

    对于使用者备用名称,请单击添加,然后输入以下参数:

    • 类型: 用户主体名称
    • 值: $user.userprincipalname

    “凭据提供程序”配置屏幕图

  5. 单击分发并输入以下参数:

    • 颁发 CA 证书: 选择签署了 XenMobile 客户端证书的颁发 CA。
    • 选择分发模式: 选择首选集中式: 服务器端密钥生成

    “凭据提供程序”配置屏幕图

  6. 对于后两个部分(吊销 XenMobile吊销 PKI),根据需要设置参数。在此示例中,跳过这两个选项。

  7. 单击续订

  8. 对于在证书过期时续订,选择

  9. 让所有其他设置保留为默认设置,或者根据需要进行更改。

    “凭据提供程序”配置屏幕图

  10. 单击保存

将 Secure Mail 配置为使用基于证书的身份验证

将 Secure Mail 添加到 XenMobile 时,请务必在应用程序设置下方配置 Exchange 设置。

“应用程序”配置屏幕图

在 XenMobile 中配置 NetScaler 证书交付

  1. 登录到 XenMobile 控制台并单击右上角的齿轮图标。此时将显示设置屏幕。

  2. 服务器下方,单击 NetScaler Gateway

  3. 如果尚未添加 NetScaler Gateway,请单击添加并指定以下设置:

    • 外部 URL: https://YourNetScalerGatewayURL
    • 登录类型: 证书
    • 需要密码:
    • 设为默认值:
  4. 对于向用户提供用于身份验证的证书,选择

    NetScaler Gateway 配置屏幕图

  5. 对于凭据提供程序,选择一个提供程序,然后单击保存

  6. 要使用用户证书中的 sAMAccount 属性作为用户主体名称 (UPN) 的备用名称,请按如下所示在 XenMobile 中配置 LDAP 连接器:转至设置 > LDAP,选择目录并单击编辑,然后在用户搜索依据中选择 sAMAccountName

    “LDAP”配置屏幕图

启用 Citrix PIN 和用户密码缓存

要启用 Citrix PIN 和用户密码缓存,请转至设置 > 客户端属性,然后选中这些复选框:启用 Citrix PIN 身份验证启用用户密码缓存。有关详细信息,请参阅客户端属性

为 Windows Phone 创建企业中心策略

对于 Windows Phone 设备,必须创建企业中心设备策略才能交付 AETX 文件和 Secure Hub 客户端。

注意:

请确保 AETX 和 Secure Hub 文件都使用:

  • 证书提供程序提供的相同企业证书。
  • 来自 Windows 应用商店开发人员帐户的相同发布者 ID。
  1. 在 XenMobile 控制台中,单击配置 > 设备策略

  2. 单击添加,然后在更多 > XenMobile Agent 下方单击企业中心

  3. 命名该策略后,请务必为企业中心选择正确的 .AETX 文件和签名 Secure Hub 应用程序。

    “设备策略”配置屏幕图

  4. 将该策略分配给交付组并保存。

客户端证书配置故障排除

成功配置前述配置及 NetScaler Gateway 配置后,用户工作流如下:

  1. 用户注册其移动设备。

  2. XenMobile 提示用户创建 Citrix PIN。

  3. 随后用户被重定向到 XenMobile Store。

  4. 用户启动 Secure Mail 时,XenMobile 不提示其提供用户凭据以用于邮箱配置。相反,Secure Mail 将从 Secure Hub 请求客户端证书,并将其提交给 Microsoft Exchange Server 以进行身份验证。如果 XenMobile 在用户启动 Secure Mail 时提示用户提供凭据,请检查您的配置。

如果用户能够下载并安装 Secure Mail,但邮箱配置过程中 Secure Mail 无法完成配置:

  1. 如果 Microsoft Exchange Server ActiveSync 使用专用 SSL 服务器证书来确保流量安全,请验证是否已在移动设备上安装根证书/中间证书。

  2. 验证为 ActiveSync 选择的身份验证类型是否为要求提供客户端证书

    Microsoft ActiveSync 属性屏幕图

  3. 在 Microsoft Exchange Server 上,检查 Microsoft-Server-ActiveSync 站点以验证是否已启用客户端证书映射身份验证。默认情况下,客户端证书映射身份验证处于禁用状态。此选项位于配置编辑器 > 安全 > 身份验证下方。

    Microsoft ActiveSync 配置屏幕图

    选择 True 后,请务必单击应用以使更改生效。

  4. 在 XenMobile 控制台中检查 NetScaler Gateway 设置:确保向用户提供用于身份验证的证书设置为,并且为凭据提供程序选择了正确的配置文件。

确定是否已向移动设备提供客户端证书

  1. 在 XenMobile 控制台中,转至管理 > 设备,然后选择设备。

  2. 单击编辑显示更多

  3. 转至交付组部分,并搜索以下条目:

    NetScaler Gateway Credentials: Requested credential, CertId=

验证是否已启用客户端证书协商

  1. 运行以下 netsh 命令以显示 IIS Web 站点上绑定的 SSL 证书配置:

    netsh http show sslcert

  2. 如果 Negotiate Client Certificate(协商客户端证书)的值为 Disabled(已禁用),请运行以下命令将其启用:

    netsh http delete sslcert ipport=0.0.0.0:443

    netsh http add sslcert ipport=0.0.0.0:443 certhash=cert_hash appid={app_id} certstorename=store_name verifyclientcertrevocation=Enable VerifyRevocationWithCachedClientCertOnly=Disable UsageCheck=Enable clientcertnegotiation=Enable

    例如:

    netsh http add sslcert ipport=0.0.0.0:443 certhash=609da5df280d1f54a7deb714fb2c5435c94e05da appid={4dc3e181-e14b-4a21-b022-59fc669b0914} certstorename=ExampleCertStoreName verifyclientcertrevocation=Enable VerifyRevocationWithCachedClientCertOnly=Disable UsageCheck=Enable clientcertnegotiation=Enable

如果无法通过 XenMobile 向 Windows Phone 8.1 设备提供根证书/中间证书,请执行以下操作:

  • 通过电子邮件将根证书/中间证书 (.cer) 文件发送到 Windows Phone 8.1 设备并直接安装。

如果无法在 Windows Phone 8.1 上成功安装 Secure Mail,请验证以下项:

  • 应用程序注册令牌(.AETX 文件)是否已使用企业中心设备策略通过 XenMobile 提供。
  • 创建应用程序注册令牌时使用的证书提供程序提供的企业证书是否与用于打包 Secure Mail 并为 Secure Hub 应用程序签名的企业证书相同。
  • 是否使用相同的发布者 ID 签名并打包 Secure Hub、Secure Mail 和应用程序注册令牌。