1

出于 IP 原因,我需要将网站作为服务帐户运行,我还希望能够使用 AzMan 对用户进行身份验证/身份验证。出于某种原因,我似乎无法让这些一起工作。我已经设置了一个示例应用程序来测试基本上会吐出一些用户凭据的水域。除了 Azman 和 Web 配置设置之外,该应用程序没有集成代码(没有日志记录/DB/Webserice 交互),它是一个寻呼机。

在拒绝匿名访问的网络服务帐户下运行应用程序池,我得到:

Windows Identity Check - Name: 'NT AUTHORITY\NETWORK SERVICE'  
Request.LogonUserIdentity.Name = 'CT\rhyc'  
HttpContext.User.Identity.Name = 'CT\rhyc'  
User.Identity.Name = 'CT\rhyc'  
Is in UserRole = 'True'  

..这一切都很好,一切正常,但是服务帐户是网络服务而不是我应该使用的服务帐户。如果我将帐户切换到服务帐户,我会弹出窗口询问用户凭据(我不想要,它应该是单点登录);但是我在之前的设置中获得了这些凭据(ct/rhyc)

网站上有一个 setspn 命令运行(显然),但我真的不知道 spn 做了什么,更不用说知道如何检查它了。此外,如果我允许匿名访问运行服务帐户的应用程序池,我会得到:

Windows Identity Check - Name: 'CT\SVC-PERAT2-T2DEV'  
Request.LogonUserIdentity.Name = 'PERAT2NTAH3WD1\CVX_IUSR'  
HttpContext.User.Identity.Name = ''  
User.Identity.Name = ''  
Is in UserRole = 'False' 

对不起,伙计们,我和 IIS n00b,这通常不是我会做的事情,但是我们的管理员似乎对 IIS 不太了解,所以留给我.. :(

4

2 回答 2

1

通过 SPN,您将进入 Kerberos 世界。这通常是一个未知领域。

有一份很棒的白皮书介绍了解决此问题的安全问题:http: //www.microsoft.com/DOWNLOADS/details.aspx? FamilyID=7dfeb015-6043-47db-8238-dc7af89c93f1&displaylang=en

它解释了如何打开更多日志记录以找到身份验证问题的根源。通常这与 Exchange 中的委派未设置为传递用户凭据等有关。

更多信息:http: //support.microsoft.com/kb/262177

于 2009-08-20T03:21:54.610 回答
0

好的,所以看起来我们在叫错树了。Kerbros 从来都不是必需的,它是如何从中国人的耳语中溜走的。我们已更改为仅 NTLM,一切都很好。

cscript adsutil.vbs下面的 cmd
设置 w3svc/1152622725/root/NTAuthenticationProviders "NTLM"

其中 1152622725 是网站 ID

感谢所有帮助人员,吸取的教训:不要使用 kerbros,因为它会咬人!

于 2009-08-20T09:28:01.707 回答