Kerberos 票证交接在 macOS X 上的 Chrome 上不起作用

Kerberos 票证交接在 macOS X 上的 Chrome 上不起作用

我正在一个约有 90 个用户的企业环境中实施 Okta 作为单点登录提供商。Okta 的一个功能是桌面单点登录- 用户只需登录自己的机器并进行域身份验证即可通过 Okta 进行身份验证。用户只需打开浏览器,转到公司的 Okta 租户 URL,即可登录。

如果没有此功能,用户在加载 Okta 租户 URL 时会被提示输入其凭据。

DSSO 的实现方式是浏览器从操作系统中获取 Kerberos 票证,该票证本身是在用户通过 Active Directory 域进行身份验证时生成的。然后,浏览器将此票证交回服务器,服务器与 Okta 云进行通信以对用户进行身份验证。

我们环境中的身份验证流程如下:

  1. 用户登录到他们的机器。登录并通过域进行身份验证后会生成 Kerberos 票证。
  2. 用户打开浏览器,尝试访问受 Okta 保护/集成的应用程序,或者直接进入他们的 Okta 门户。
  3. Okta 将用户重定向到我们的负载均衡器,该负载均衡器在 Web 服务器上的 IWA Web 应用程序上终止请求
  4. IWA Web 应用程序向浏览器发起身份验证请求
  5. 浏览器从操作系统获取 Kerberos 票证并将其交给负载均衡器,负载均衡器将其传递给 IWA Web 应用程序
  6. IWA 应用程序验证票证并从 AD 获取用户个人资料
  7. IWA 应用生成并数字签名 SSO 令牌并将其发送到浏览器
  8. 浏览器通过 HTML 表单 POST 将 tokent 返回给 Okta
  9. Okta 完成登录请求并使用 SSO 令牌将用户返回到应用程序

该过程在第 5 步失败,我知道这是因为:

  1. 请求 Okta 租户 URL 时,Chrome 会提示用户输入 NTLM 凭据
  2. 此提示发生在 IWA Web 应用程序和浏览器正确配置 DSSO 之前(根据我在开头链接的文档)
  3. Windows 上的 Chrome、Firefox 和 Internet Explorer 不会出现此提示(DSSO 可在装有 Chrome、Firefox 和 IE 的 Windows 上运行)
  4. 此提示不会出现在 macOS X 上的 Safari 中,但会出现在 OS X 上的 Chrome 和 Firefox 中

我不明白为什么 Chrome 和 Firefox 没有从 macOS X 中的操作系统获取 Kerberos 票证,但 Windows 中的相同浏览器却可以顺利获取票证。

我尝试过的步骤:

  1. 使用以下终端命令设置 Chrome 的白名单设置(Okta 的文档推荐):

    $ defaults write com.google.Chrome AuthServerWhitelist“*.example.com”

    $ 默认写入 com.google.Chrome AuthNegotiateDelegateWhitelist“*.example.com”

  2. 使用 SimpleMDM 配置推送设置 Chrome 的白名单设置(此方法实际上已成功将设置推送到 Chrome - 可以通过访问 chrome://policy 并查看设置来证明)
  3. 卸载防病毒软件
  4. 将每个可能的 FQDN 添加到步骤 2 中列入白名单的服务器列表中 - 首先是我们在 Windows 中列入白名单的服务器(因为 Windows 确实可以工作),然后是 Okta 支持推荐的 Okta 服务器列表

我仍然无法让此功能正常工作,现在我正在尝试找出是否有办法解决 Chrome 用于从操作系统获取 Kerberos 票证的过程。Chrome 的 Kerberos 票证获取机制的某种调试器会很棒,但我想没有这样的东西可用。

答案1

它应该与以下产品兼容:

$ defaults write com.google.Chrome AuthServerWhitelist '*.example.com'
$ defaults write com.google.Chrome AuthNegotiateDelegateWhitelist '*.example.com'

请注意,我已将“替换为”

相关内容