简介
本文档介绍当客户端使用NEGOEXTS时,如何通过思科网络安全设备(WSA)进行身份验证失败时解决此问题。
背景信息
思科网络安全设备(WSA)可以对用户进行身份验证,以便根据用户或组应用策略。可用的方法之一是Kerberos。在身份中使用Kerberos作为身份验证方法时,WSA会以401(透明)或407(显式)HTTP响应(包含报头WWW-Authenticate: Negotiate)回复客户端的HTTP请求。 此时,客户端发送一个带有Authorization: Negotiate报头的新HTTP请求,该报头包含通用安全服务应用程序接口(GSS-API)和简单保护协商(SPNEGO)协议。在SPNEGO下,用户显示其支持的mechTypes。以下是WSA支持的mechType:
- KRB5 - Kerberos身份验证方法,如果在客户端上支持并正确配置Kerberos,并且对于要访问的服务存在有效的Kerberos票证,则使用该方法
- NTLMSSP - Microsoft NTLM安全支持提供程序方法,在没有有效的Kerberos票证可用但支持协商身份验证方法时使用
问题:当客户端使用NEGOEXTS时,身份验证通过WSA失败
在Microsoft Windows的最新版本中,支持名为NegoExts的新身份验证方法,它是协商身份验证协议的扩展。当仅支持的方法是NEGOEXTS和NTLMSSP时,客户端会首选此mechType比NTLMSSP更安全。有关详细信息,请访问以下链接:
Negotiate Authentication Package扩展简介
此情况通常在选择Negotiate auth方法且没有KRB5 mechType时发生(最可能的原因是缺少适用于WSA服务的有效Kerberos票证)。如果客户端选择NEGOEXTS(在wireshark中可能显示为NEGOEX),则WSA无法处理身份验证事务,且客户端的身份验证失败。发生这种情况时,身份验证日志中会显示以下日志:
14 Nov 2016 16:06:20 (GMT -0500) Warning: PROX_AUTH : 123858 : [DOMAIN]Failed to parse NTLMSSP packet, could not extract NTLMSSP command14 Nov 2016 16:06:20 (GMT -0500) Info: PROX_AUTH : 123858 : [DOMAIN][000] 4E 45 47 4F 45 58 54 53 00 00 00 00 00 00 00 00 NEGOEXTS ........
当身份验证失败时,会发生以下情况:
如果启用了访客权限,则客户端会分类为Unauthenticated并重定向到网站
如果禁用访客权限,则客户端会向响应报头中显示的其他401或407(取决于代理方法)以及剩余的身份验证方法(不再次显示Negotiate)。如果配置了NTLMSSP和/或基本身份验证,则可能会出现身份验证提示。如果没有其他身份验证方法(仅为Kerberos配置身份),则身份验证会失败。
解决方案
此问题的解决方案是从身份中删除Kerberos auth -或-修复客户端,使其获得WSA服务的有效Kerberos票证。