使用 iOS Kerberos 扩展进行 Kerberos 身份验证
本主题概述了通过适用于 iOS 的 Citrix Secure Access 应用程序为内部 Web 应用程序启用基于 Kerberos 的单点登录 (SSO) 所需的端到端配置。
-
iOS 客户端配置
-
MDM 服务器配置
-
IIS 配置
-
域控制器配置
iOS 客户端配置
以下部分提供了有关 iOS 客户端配置的更多信息。
先决条件
确保 iOS 设备已注册 MDM。 在应用任何 SSO 配置之前,iOS 设备必须注册 MDM 解决方案(例如 Microsoft Intune)。MDM 注册允许将 Kerberos SSO 扩展配置文件推送到设备。
验证 iOS 设备上的 MDM 注册
-
在 iOS 设备上,转到“设置 > 通用 > VPN 与设备管理”。在“设备管理”下,您必须看到列出了您组织的 MDM 配置文件(例如,Microsoft Intune 或您公司的 MDM 配置文件名称)。
-
点击配置文件以确认其已安装,并且状态显示为“已验证”或“已安装”。
-
要确认 Kerberos SSO 扩展已由 MDM 推送:
-
前往 设置 > 通用 > VPN 与设备管理。
-
点击 MDM 配置文件,在配置文件详细信息下查找 单点登录扩展 或 Kerberos。
-
或者,前往 设置 > 通用 > VPN 与设备管理 > 单点登录 并验证 Kerberos 扩展是否已列出。
如果设备未注册或配置文件缺失,请联系您的 MDM 管理员在继续操作之前注册设备。 -
MDM 服务器配置
注意:
MDM SSO 扩展负载配置基于官方 Apple 文档。
确保在 MDM SSO 扩展负载中配置了以下字段:
-
域: 用于 Kerberos 的 URL。
-
AppBundleIDs: 将使用的应用程序的允许列表。(例如,Chrome:
com.google.chrome.ios,Citrix Secure Access:com.citrix.securehub) -
领域: 您的数据中心位置。
Intune 策略配置
先决条件: 确保 iOS 设备已注册到 Intune。
-
在 Intune 管理控制台中,转到主页 > 设备
|iOS/iPadOS → iOS/iPadOS|配置。 -
创建新策略。
-
在配置文件类型中选择模板,然后选择设备功能。

-
按创建。
-
输入策略名称,然后继续进行配置设置。
-
在单一登录应用扩展 > SSO 应用扩展类型中选择 Kerberos。

-
根据您的设置要求填写信息。


-
按审查 + 保存。
-
将策略绑定到您的设备:
-
转到编辑策略,单击该策略。
-
编辑分配。
-
选择您的设备组(如果尚未创建,请先使用您的设备创建一个设备组)。
-
-
同步设备。
IIS 配置
在 IIS Web 服务器上,启用带 Negotiate 提供程序的 Windows 身份验证,并禁用 匿名身份验证 以强制执行基于 Kerberos 的身份验证。
配置 IIS 身份验证的步骤:
-
打开 IIS 管理器(从“运行”或“开始”中选择 inetmgr)。
-
在“连接”窗格中,选择要配置的站点或应用程序。
-
在“功能视图”的 IIS 部分中,双击“身份验证”。
-
禁用“匿名身份验证”。
-
选择“匿名身份验证”,然后在“操作”窗格中单击“禁用”。
-
-
启用“Windows 身份验证”。
-
选择“Windows 身份验证”,然后在“操作”窗格中单击“启用”。
-
-
设置 Negotiate 提供程序。
-
在选中“Windows 身份验证”的情况下,在“操作”窗格中单击“提供程序…”。
-
确保 Negotiate 列在首位(在 NTLM 之上)。如果缺少,请添加。
-
点击确定。
-
-
点击操作窗格中的应用以保存更改。
-
(可选)从提升的命令提示符运行
iisreset以立即应用配置。
域控制器端配置
短名称和 FQDN 的 SPN 注册:Kerberos 要求客户端使用的 URL 与域上注册的 SPN 之间精确匹配。访问
http://testwebdemo 的客户端使用的 SPN 与访问 http://testwebdemo.example.com 的客户端使用的 SPN 不同,因此两者都必须注册。
-
将下面的
<dc-hostname>替换为您的域控制器的主机名。 -
注册这两种形式。
-
短主机名(当客户端通过短名称访问时使用,例如
http://testwebdemo)setspn -s HTTP/testwebdemo example.com\<dc-hostname> -
FQDN(当客户端通过完全限定域名访问时使用,例如
http://testwebdemo.example.com)setspn -s HTTP/testwebdemo.example.com example.com\<dc-hostname>
-
-
验证两者都已在正确的帐户上注册
-
setspn -L example.com\<dc-hostname>
-
-
预期输出必须包含两者:
-
超文本传输协议/测试网络演示
-
HTTP/testwebdemo.example.com
-