将 IIS 站点的访问权限限制为 AD 组

Joh*_*ohn 30 permissions iis-7 active-directory

是否可以在 IIS 中在 IIS 中设置站点并只让某个 AD 组的用户访问它?

Jos*_*ins 23

以下应该有效,具体取决于您的 IIS 版本。如果您的站点的目录根目录中没有 web.config(尽管您应该在 IIS7 上),则需要添加一个 web.config。下面将允许域管理员并拒绝域用户(相当不言自明)。如果您已经有一个部分等,请确保将配置部分排成一行。

<configuration>
  <location path="MyPage.aspx/php/html">
      <system.web>
         <authorization>
            <allow users="DOMAIN\Domain Admins"/>
            <deny users="DOMAIN\Domain Users"/>
         </authorization>
      </system.web>
   </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

显然,您需要在站点首选项中的身份验证下启用 Windows 身份验证才能正常工作,但我假设您已经启用了此功能。


小智 18

joshatkins 的回答在 IIS7 中不起作用。对于 IIS7,您需要使用 role 属性。此外,如果您想限制整个站点,则不需要位置元素。

<authorization>
  <allow roles="DOMAIN\Domain Users"/>
  <deny users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)

  • 请不要使用诸如“上面”或“下面”之类的引用,因为您无法知道个人看到答案的顺序。随着更多答案的发布,问题会随着时间的推移而变得更糟。您应该改为参考所引用答案的发布者的名称。 (12认同)

小智 17

只需在其他答案中添加更多点,帮助我弄清楚在我的基本 AD 身份验证与 IIS 一起正常工作后如何使其工作。

  1. 通过Windows 服务器管理器添加角色或功能:Web 服务器 (IIS) --> Web 服务器 --> 安全性 --> URL 授权。
  2. 关闭然后重新打开IIS 管理器(如果已打开),现在您将看到(在您站点的 IIS 部分下)Authorization Rules。打开这个。
  3. 单击右侧面板:添加允许规则
  4. 指定的角色或用户组下键入您需要的 AD 组的名称。例如。myDomain\myGroup并选择OK
  5. 对您需要的组重复 4。

如果你只想直接编辑配置文件,那么它看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        ...
        <security>
            <authorization>
                <remove users="*" roles="" verbs="" />
                <add accessType="Allow" roles="myDomain\myGroup01" />
                <add accessType="Allow" roles="myDomain\myGroup02" />
            </authorization>
        </security>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

  • 您还需要启用 Windows 身份验证 (NTLM/Kerb)。否则,如果无法确定浏览器会话身份,基于角色的授权如何工作?按照您的指示并启用 Windows 身份验证后,这有效了! (2认同)