我一直在为未来的项目测试Master Data Services。几天前,MDS在没有任何已知原因的情况下停止了与客户端的身份验证。我使用的是SQL SERVER 2012 BI版。
通常,我可以使用http://localhosts/mds
访问服务器上的MDS页面;但是,如果我试图从服务器或客户端访问http://servername/mds
,我会收到一条错误消息:
Chrome上的ERR_INVALID_AUTH_CREDENTIALS或在IE上请求凭据。我无法使用凭据进行身份验证。
请告知
我在下面的链接上找到了答案:IIS 7.5 中的Windows身份验证失败
Windows身份验证有两个提供程序(协商和NTLM)。当将网站身份验证设置为Windows身份验证时,突出显示"Windows身份验证"时,单击"提供程序"链接或IIS管理器,然后将NTLM移动到顶部。通过默认的协商是最重要的,这就是为什么你会得到身份验证提示。
如果您需要继续使用Kerberos身份验证而不是NTLM(例如MDS网站是通过WAP(Windows应用程序代理)访问的,那么除了标准设置之外,您还需要执行以下操作。这是假设基线设置出现故障。
- 您需要在Active Directory中注册服务主体名称。假设您已将MDS网站配置为在MyDomain\MDSServiceAccount下运行,并且web服务器名为MDS.MyDomain.local,则需要使用具有相关Active Directory权限的帐户运行以下命令
SETSPN-S HTTP/MDS.mydomain.local
- 在IIS管理器中,您需要使用"配置编辑器"将useAppPoolCredentials设置为True。此选项位于system.webServer/security/authentication/windowsAuthentication中。您在IIS中选择的级别取决于您使用服务器的目的。最安全的是在最低级别,即web应用程序,或本例中的/MDS
根据服务器属性的大小,此配置生效之前可能会有延迟。要加快此过程,请从Web服务器运行SETSPN命令,并从Web服务器和客户端计算机的命令行运行KLIST PURGE。