首页 > 解决方案 > AD 组的 IIS 10 .Net 授权问题

问题描述

我正在尝试保护托管在内部 IIS10 实例上的简单 ASP.net 网站,以便只有特定的 AD 组可以访问它。

我的所有测试(以及最终使用)都将在 IIS 服务器所在的同一域内部进行 - 不会发生外部或跨域使用。

在站点身份验证中,我仅启用了带有 HTTP 401 质询响应类型的 Windows 身份验证。启用的提供程序是 Negotiate 和 NTLM(按此顺序),Extended Protection is Off 并且内核模式身份验证已启用

在 .NET 授权规则中,我没有明确的拒绝规则。

如果我为我的用户帐户(以及我正在测试访问网站的用户)添加“指定用户”允许规则,那么我就可以访问该网站。此时 web.config 文件的相关区域如下所示:

<authorization>
<allow users="MYDOMAIN\MYUSERACCOUNT" />
</authorization>

如果我删除该允许规则并为我的用户帐户所属的 AD 组添加“指定角色或用户组”允许行,那么我将无法访问该网站并浏览它会提示我进入登录对话框输入我的 AD 凭据的框会出现 401 错误。

此时 web.config 文件的相关区域如下所示:

<authorization>
<allow roles="MYDOMAIN\AwesomeUsers" />
</authorization>

我尝试更改各种身份验证设置(更改顺序、禁用内核模式身份验证等),在 Web.config 的“允许用户”部分添加域组,但我无法让 AD 组身份验证正常工作。

IIS 不是我的强项,因此非常感谢我可以尝试的任何提示或技巧,谢谢!:)

标签: iisactive-directoryauthorization

解决方案


尝试使用以下代码:

网络配置:

<configuration>
  <system.web>
    <authentication mode="Windows" />
    <authorization>
      <allow roles="DOMAIN\ADGROUP" />
      <deny users="*" />
    </authorization>
  </system.web>
</configuration>

应用程序主机配置:

<configuration>
  <location path="YOUR-APP">
    <system.webServer>
      <security>
        <authentication>
          <anonymousAuthentication enabled="false" />
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
  </location>
</configuration>

推荐阅读