IIS作为服务帐户运行与AzMan

时间:2009-08-20 02:50:41

标签: asp.net iis windows-authentication spn

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

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

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)

中传递了这些凭据

已经为网站运行了一个setpn命令(显然),但我真的不知道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知之甚少,所以它留给我.. :(

2 个答案:

答案 0 :(得分:1)

使用SPN,您将进入Kerberos世界。这通常是未知领域。

有一篇很棒的白皮书可以解决以下问题: http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=7dfeb015-6043-47db-8238-dc7af89c93f1&displaylang=en

它解释了如何打开更多日志记录以获取auth问题的根源。通常情况下,Exchange中的委派不是设置为传递用户的凭据等。

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

答案 1 :(得分:0)

好的,好像我们正在吠叫错误的树。 Kerbros从来没有被要求,有些人是如何通过中国的低语溜走的。我们已经改为NTLM,一切都很顺利。

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

其中1152622725是网站ID

感谢所有帮助人员,吸取了教训:不要跟kerbros说话,因为它咬回来了!