我是建设一个活跃的目录单签名认证系统,用于Java网应用程序(使用可/Kerberos),一切工作的现有Firefox或(据报告)野生动物园,但Internet Explorer导致一个例外:

GSSException: Channel binding mismatch (Mechanism level: ChannelBinding not provided!)

事实上,我认为即工作之前的一个窗修补。

有帮助吗?

解决方案

显然,Microsoft即补KB974455启用的"延伸的保护"综合窗户身份验证。通常情况下,有可/Kerberos身份验证,客户机获取Kerberos/活动目录的票服务器,并提出了这张票在HTTP身份验证协商。截至少Java1.6,Java JGSS-API图书馆能够解释的可/Kerberos谈判和进行认证的机票。

扩展保护 (也请参看 扩展保护身份验证),即增加了一个通道结合到的可谈判;什么样的数据通道结合是基于目前未知我,比其他SSL届会议的标识看来是它的一部分。Java JGSS-API图书馆尝试验通道结合和特色无数据结合为基础。然后它引发的通道结合不匹配的例外。

这个问题已导致 一些 互联网 交通, 包括 太阳错误ID6851973.

根据相关联的评论与6851973, RFC4121, 说:

如果叫GSS_Accept_sec_context[RFC2743]通过在 GSS_C_NO_CHANNEL_BINDINGS[RFC2744]作为道绑定,然后 受可能忽视任何道绑定提供的发起者, 返回的成功,甚至如果发起者并通过通道绑定。

和"所有主要krb5实现实施这种'可能'".JGSS似乎是需要接受体提供的通道结合如果发起者提出的。另外,修复提供Java7,建造64和将向后移植到Java5和6,虽然Java6u18 不不 看来它为报告中6851973.

一个工作周围中可以看到 扩展保护身份验证 是要设置

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\SuppressExtendedProtection

注册处设定为0x02。这将禁止扩大保护。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top