我正在尝试保护内部IIS10实例上托管的简单ASP.net网站,以便仅特定的AD组可以访问它。
我所有的测试(以及最终使用情况)都将在IIS服务器所在的同一域内部进行-不会发生外部或跨域使用情况。
在站点身份验证内,我仅启用了HTTP 401质询响应类型的Windows身份验证。启用的提供程序是“协商”和NTLM(按此顺序),“扩展保护”已关闭,并且启用了内核模式身份验证
在.NET授权规则中,我没有明确的拒绝规则。
如果我为我的用户帐户(并因此要测试其访问网站的用户)添加“指定用户”允许规则,则可以访问该网站。此时,web.config文件的相关区域如下所示:
<authorization>
<allow users="MYDOMAIN\MYUSERACCOUNT" />
</authorization>
如果我删除了“允许规则”并为用户帐户所属的广告组添加了“指定角色或用户组”“允许行”,则我将无法访问该网站,浏览该网站会提示我登录对话框,输入我的AD凭据后会出现401错误。
这时,web.config文件的相关区域如下所示:
<authorization>
<allow roles="MYDOMAIN\AwesomeUsers" />
</authorization>
我尝试更改各种身份验证设置(更改顺序,禁用内核模式身份验证等),在Web.config的“允许用户”部分中添加域组,但是我无法使AD组身份验证正常工作。
IIS不是我的强项,所以我非常感谢我可以尝试的任何提示或技巧,谢谢! :)
答案 0 :(得分:0)
尝试使用以下代码:
web.config:
<configuration>
<system.web>
<authentication mode="Windows" />
<authorization>
<allow roles="DOMAIN\ADGROUP" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
applicationHost.config:
<configuration>
<location path="YOUR-APP">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
</configuration>