客户端证书或证书加域身份验证
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 控制台中,必须执行以下操作:
- 我们添加一个b 站点以供 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 时输入密钥大小。
在使用者名称下方,选择在请求中提供。应用更改并保存。
向证书颁发机构添加模板
转至证书颁发机构并选择证书模板。
在右侧窗格中单击鼠标右键,然后选择新建 > 要颁发的证书模板。
选择在上一步中创建的模板,然后单击确定将其添加到证书颁发机构。
从 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。
用户启动安全邮件时,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