我目前在 SharePoint 网站上遇到身份验证问题。通常情况下,用户帐户(一次只有一个左右)将被锁定,并且会收到 401 未授权错误。SharePoint 实施仅使用本地用户帐户,具有 SSL 和 NTLM 身份验证。我不确定确切的网络配置(我不是网络管理员),但可能涉及代理。当网络管理员调查问题时,帐户又可以正常工作了。所以也是断断续续的。我对此的问题是:
1.) 有人遇到过这种情况吗?
2.) 切换到基本身份验证是否可以解决这个问题?当涉及代理时,WSS 中存在 NTLM 混淆的短暂传闻。
3.) SSL 和 IWA 结合起来是不是有点儿过头了?我的意思是,密码和登录信息无论如何都会在 Basic Auth 中使用 SSL 加密发送,对吧?而且,IWA 在非域外联网中的优势在我看来毫无用处。
答案1
检查 IIS 日志文件是个不错的选择,看看是否存在某种模式 - 特定资源是否出现 401 错误或者是否是通用的。
一个常见的问题是某些资源可能位于服务器(文件系统)文件夹中,并且并非所有用户都可以访问它们。这些资源可能仅从特定页面链接,因此错误可能是间歇性的。请记住,SharePoint 默认在模拟上下文中运行请求。
答案2
如果是 Kerberos 我希望看到协商(或者我假设错了?)
协商可以是 kerberos 或 ntlm。ntlm 肯定意味着 ntlm。
要确认使用的身份验证方法,请检查身份验证标头的第一个字符。如果是“T”,则为 ntlm。如果是“Y”,则为 kerberos。
http://support.microsoft.com/kb/891032
请注意,您可以将 IIS 配置为需要 NTLM,但反过来则不行(需要 kerberos)。不过这样会很好。
如果您需要加密内容,SSL 并非是大材小用。不带 SSL 的 Kerberos 对于身份验证来说足够安全,但不会加密内容。
您所说的“本地”帐户是什么意思?您在外部网络中有一个独立/非域 SharePoint 服务器,并且用户使用非域/本地帐户登录?
答案3
在许多情况下,NTLM 身份验证会通过代理被破坏 - 但我希望大多数代理现在都已纠正了这种行为。
我会检查您的 WSS 站点是否设置为受信任的站点/内联网,并且您的浏览器设置是否自动传递身份验证凭据。如果它实际上在域上,这可能会有所帮助,但听起来情况并非如此。
您可以随时恢复到基本身份验证,但如果选择这种方式,请务必使用 SSL。
答案4
事情是这样的。Sharepoint 使用模拟。这意味着您根本不应该使用 NTLM——您应该使用 Kerberos。这是一个非常大的区别。NTLM 并不意味着“集成 Windows 身份验证”。
因此,您需要执行以下操作。转到安全事件日志下的 Sharepoint 服务器。在那里,您应该看到所有用户都使用“Kerberos”而不是“NTLMSSP”进行身份验证。如果您看到人们使用 NTLM 获得访问权限,这可能意味着(我认为 80% 的时间)您需要为 Sharepoint 定义服务主体名称。如果您在别名下运行 SharePoint 站点,您还需要为该别名设置服务主体名称,因为 IE7 中有一个错误,它会间歇性地请求错误 SPN 的票证。
因此我的三个建议是:
- 确保您在 AD 中的 SharePoint 服务帐户下看到 HTTP\MACHINENAME 的 SPN。
- 确保您在 AD 中的 SharePoint 服务帐户下看到 HTTP\YOOURALIAS 的 SPN。
- 确保在所有客户端上都选中“启用集成 Windows 身份验证”框。选中此框将在 Web 浏览器上启用 Kerberos,这是必需的。