客户端证书或证书加域身份验证
XenMobile 的默认配置是用户名和密码身份验证。要为 XenMobile 环境中的注册和访问再增加一个安全层,请考虑使用基于证书的身份验证。在 XenMobile 环境中,此配置是用于实现安全性和用户体验的最佳组合。证书加域身份验证通过 Citrix ADC 进行的双重身份验证可提供最佳 SSO 选择和安全性。
要实现最佳可用性,可以将证书加域身份验证与 Citrix PIN 和 Active Directory 密码缓存组合在一起。因此,用户不需要重复输入其 LDAP 用户名和密码。用户在注册、密码过期和帐户锁定时输入用户名和密码。
重要:
用户在 XenMobile 中注册设备后,XenMobile 不支持将身份验证模式从域身份验证更改为某些其他身份验证模式。
如果禁用了 LDAP 并且不希望使用智能卡或类似方法,配置证书可代替智能卡来访问 XenMobile。用户随后使用 XenMobile 生成的唯一 PIN 进行注册。用户获取访问权限后,XenMobile 随后创建和部署后续用来在 XenMobile 环境中执行身份验证的证书。
使用 Citrix ADC 仅证书身份验证或证书加域身份验证时,可以使用适用于 XenMobile 的 Citrix ADC 向导设置 XenMobile 所需的配置。只能运行一次适用于 XenMobile 的 Citrix ADC 向导。
在高度安全的环境中,在组织外的公共或不安全网络中使用 LDAP 凭据会被视为组织面临的首要安全威胁。对于高度安全的环境,可以选择使用客户端证书和安全令牌的双重身份验证。有关信息,请参阅为 XenMobile 配置证书和安全令牌身份验证。
客户端证书身份验证适用于 XenMobile MAM 模式(仅 MAM)和 ENT 模式(当用户注册到 MDM 时)。当用户注册到旧版 MAM 模式时,客户端证书身份验证不适用于 XenMobile ENT 模式。必须依次配置 Microsoft 服务器、XenMobile Server 和 Citrix Gateway,才能对 XenMobile ENT 和 MAM 模式使用客户端证书身份验证。执行本文所述的如下常规步骤。
在 Microsoft 服务器上:
- 向 Microsoft 管理控制台中添加证书管理单元。
- 向证书颁发机构 (CA) 中添加模板。
- 从 CA 服务器创建 PFX 证书。
在 XenMobile Server 上:
- 将证书上载到 XenMobile。
- 为基于证书的身份验证创建 PKI 实体。
- 配置凭据提供程序。
- 将 Citrix Gateway 配置为提供用于进行身份验证的用户证书。
有关 Citrix Gateway 配置的信息,请参阅 Citrix ADC 文档中的以下文章:
必备条件
-
创建 Microsoft 证书服务实体模板时,通过排除特殊字符来避免已注册的设备可能会出现的身份验证问题。例如,请勿在模板名称中使用以下字符:
: ! $ () # % + * ~ ? | {} []
- 要为 Exchange ActiveSync 配置基于证书的身份验证,请参阅此 Microsoft 博客。为 Exchange ActiceSync 配置证书颁发机构 (CA) 服务器站点以要求客户端证书。
- 如果使用专用服务器证书来确保流向 Exchange Server 的 ActiveSync 流量安全,请确保移动设备具有所有必需的根证书/中间证书。否则,在 Secure Mail 中设置邮箱时,基于证书的身份验证将失败。在 Exchange IIS 控制台中,必须执行以下操作:
- 添加一个 Web 站点以供 XenMobile 和 Exchange 使用,并绑定 Web 服务器证书。
- 使用端口 9443。
- 对于该 Web 站点,必须添加两个应用程序,一个用于 Microsoft-Server-ActiveSync,一个用于 EWS。对于这两个应用程序,请在 SSL Settings(SSL 设置)下方选择 Require SSL(需要 SSL)。
向 Microsoft 管理控制台添加证书管理单元
-
打开该控制台,然后单击添加/删除管理单元。
-
添加以下管理单元:
- 证书模板
- 证书(本地计算机)
- 证书 - 当前用户
- 证书颁发机构(本地)
-
展开证书模板。
-
依次选择用户模板和复制模板。
-
提供模板显示名称。
重要:
仅在必要时选中在 Active Directory 中发布证书复选框。如果选中了此选项,则将在 Active Directory 中创建所有用户客户端证书,这可能会导致您的 Active Directory 数据库混乱不堪。
-
选择 Windows 2003 Server 作为模板类型。在 Windows 2012 R2 Server 中,在兼容性下选择证书颁发机构,然后设置接受方 Windows 2003。
-
在安全下,为配置了 XenMobile Server 的 PKI 实体设置的特定用户或配置了 PKI 实体设置的用户组在允许列中选择注册选项。
-
在加密下方,务必提供密钥大小。以后可以在配置 XenMobile 时输入密钥大小。
-
在使用者名称下方,选择在请求中提供。应用更改并保存。
向证书颁发机构添加模板
-
转至证书颁发机构并选择证书模板。
-
在右侧窗格中单击鼠标右键,然后选择新建 > 要颁发的证书模板。
-
选择在上一步中创建的模板,然后单击确定将其添加到证书颁发机构。
从 CA 服务器创建 PFX 证书
-
使用登录时使用的服务帐户创建用户 .pfx 证书。该 .pfx 将上载到 XenMobile,之后 XenMobile 将代表注册其设备的用户申请用户证书。
-
在当前用户下方,展开证书。
-
在右侧窗格中单击鼠标右键,然后单击申请新证书。
-
此时将显示证书注册屏幕。单击下一步。
-
选择 Active Directory 注册策略,然后单击下一步。
-
选择用户模板,然后单击注册。
-
导出在上一步中创建的 .pfx 文件。
-
单击是,导出私钥。
-
选中如果可能,则包括证书路径中的所有证书和导出所有扩展属性复选框。
-
设置在将此证书上载到 XenMobile 中时要使用的密码。
-
将证书保存到您的硬盘驱动器。
将证书上载到 XenMobile
-
在 XenMobile 控制台中,单击右上角的齿轮图标。此时将显示设置屏幕。
-
依次单击证书和导入。
-
输入以下参数:
- 导入: 密钥库
- 密钥库类型: PKCS #12
- 用作: 服务器
-
密钥库文件: 单击浏览选择创建的
.pfx
证书。 - 密码: 输入为此证书创建的密码。
-
单击导入。
-
验证是否已正确安装证书。正确安装的证书将显示为用户证书。
为基于证书的身份验证创建 PKI 实体
-
在设置中,转至更多 > 证书管理 > PKI 实体。
-
依次单击添加和 Microsoft 证书服务实体。此时将显示 Microsoft 证书服务实体: 常规信息屏幕。
-
输入以下参数:
- 名称: 键入任意名称
-
Web 注册服务根 URL:
https://RootCA-URL/certsrv/
(请务必在 URL 路径结尾添加一个斜杠 /。) - certnew.cer 页面名称: certnew.cer(默认值)
- certfnsh.asp: certfnsh.asp(默认值)
- 身份验证类型: 客户端证书
- SSL 客户端证书: 选择要用于颁发 XenMobile 客户端证书的用户证书。
-
在模板下方,添加配置 Microsoft 证书时创建的模板。请勿添加空格。
-
跳过“HTTP 参数”,然后单击 CA 证书。
-
选择与您的环境对应的根 CA 名称。此根 CA 属于从 XenMobile 客户端证书中导入的链的一部分。
-
单击保存。
配置凭据提供程序
-
在设置中,转至更多 > 证书管理 > 凭据提供程序。
-
单击添加。
-
在常规下方,输入以下参数:
- 名称: 键入任意名称。
- 说明: 键入任意说明。
- 颁发实体: 选择之前创建的 PKI 实体。
- 颁发方法: 签名
- 模板: 选择在“PKI 实体”下方添加的模板。
-
单击证书签名请求,然后输入以下参数:
- 密钥算法: RSA
- 密钥大小: 2048
- 签名算法: SHA256withRSA
-
使用者名称:
cn=$user.username
对于使用者备用名称,请单击添加,然后输入以下参数:
- 类型: 用户主体名称
-
值:
$user.userprincipalname
-
单击分发并输入以下参数:
- 颁发 CA 证书: 选择签署了 XenMobile 客户端证书的颁发 CA。
- 选择分发模式: 选择首选集中式: 服务器端密钥生成。
-
对于后两个部分(吊销 XenMobile 和吊销 PKI),根据需要设置参数。在此示例中,跳过这两个选项。
-
单击续订。
-
对于在证书过期时续订,选择开。
-
让所有其他设置保留为默认设置,或者根据需要进行更改。
-
单击保存。
将 Secure Mail 配置为使用基于证书的身份验证
将 Secure Mail 添加到 XenMobile 时,请务必在应用程序设置下方配置 Exchange 设置。
在 XenMobile 中配置 Citrix ADC 证书交付
-
登录到 XenMobile 控制台并单击右上角的齿轮图标。此时将显示设置屏幕。
-
在服务器下方,单击 Citrix Gateway。
-
如果尚未添加 Citrix Gateway,请单击添加并指定以下设置:
-
外部 URL:
https://YourCitrixGatewayURL
- 登录类型: 证书和域
- 需要密码: 关
- 设为默认值: 开
-
外部 URL:
-
对于向用户提供用于身份验证的证书,选择开。
-
对于凭据提供程序,选择一个提供程序,然后单击保存。
-
要使用用户证书中的 sAMAccount 属性作为用户主体名称 (UPN) 的备用名称,请按如下所示在 XenMobile 中配置 LDAP 连接器:转至设置 > LDAP,选择目录并单击编辑,然后在用户搜索依据中选择 sAMAccountName。
启用 Citrix PIN 和用户密码缓存
要启用 Citrix PIN 和用户密码缓存,请转至设置 > 客户端属性,然后选中这些复选框:启用 Citrix PIN 身份验证和启用用户密码缓存。有关详细信息,请参阅客户端属性。
客户端证书配置故障排除
成功配置前述配置及 Citrix Gateway 配置后,用户工作流如下:
-
用户注册其移动设备。
-
XenMobile 提示用户创建 Citrix PIN。
-
随后用户被重定向到 XenMobile Store。
-
用户启动 Secure Mail 时,XenMobile 不提示其提供用户凭据以用于邮箱配置。相反,Secure Mail 将从 Secure Hub 请求客户端证书,并将其提交给 Microsoft Exchange Server 以进行身份验证。如果 XenMobile 在用户启动 Secure Mail 时提示用户提供凭据,请检查您的配置。
如果用户能够下载并安装 Secure Mail,但邮箱配置过程中 Secure Mail 无法完成配置:
-
如果 Microsoft Exchange Server ActiveSync 使用专用 SSL 服务器证书来确保流量安全,请验证是否已在移动设备上安装根证书/中间证书。
-
验证为 ActiveSync 选择的身份验证类型是否为要求提供客户端证书。
-
在 Microsoft Exchange Server 上,检查 Microsoft-Server-ActiveSync 站点以验证是否已启用客户端证书映射身份验证。默认情况下,客户端证书映射身份验证处于禁用状态。此选项位于配置编辑器 > 安全 > 身份验证下方。
选择 True 后,请务必单击应用以使更改生效。
-
在 XenMobile 控制台中检查 Citrix Gateway 设置:确保向用户提供用于身份验证的证书设置为开,并且为凭据提供程序选择了正确的配置文件。
确定是否已向移动设备提供客户端证书
-
在 XenMobile 控制台中,转至管理 > 设备,然后选择设备。
-
单击编辑或显示更多。
-
转至交付组部分,并搜索以下条目:
Citrix Gateway Credentials: Requested credential, CertId=
验证是否已启用客户端证书协商
-
运行以下
netsh
命令以显示 IIS Web 站点上绑定的 SSL 证书配置:netsh http show sslcert
-
如果 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