IIS web.config Active Directory Windows Аутентификация с использованием ролей работает для пользователя AD, но не для группы AD или локальной группы - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь в конечном итоге заставить Windows Auth работать в моем web.config, используя локальные группы на веб-сервере windows. Вот моя проблема ...

У меня есть следующий тест виртуального env. setup

Windows 2019 AD DNS DC Windows 2012 R2 Веб-сервер, именем домена testweb является "test.local" netb ios Имя пользователя домена "test" - это группа домена "test \ testuser1", которая testuser1 принадлежит к «testgroup1», группа безопасности не является группой distb между локальными группами testweb с именем «localgroup1», к которым относится «test \ testuser1» .. «test \ testuser1» также является частью группы локальных администраторов testweb

Вот мой web.config

 <system.web>

    <compilation debug="true" targetFramework="4.7.2"/>
    <httpRuntime targetFramework="4.7.2"/>
    <pages>
      <namespaces>
        <add namespace="System.Web.Optimization"/>
      </namespaces>
      <controls>
        <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt"/>
      </controls>
    </pages>

    <authentication mode="Windows" />  

    <authorization>
      <allow roles="test\testuser1"/>
      <deny users="*" />
    </authorization>
   </system.web>

, он отлично работает, и я могу авторизоваться на своей странице default.asxp. если я изменю его на

<authorization>
          <allow roles="test\testuser2"/>
          <deny users="*" />
        </authorization>
       </system.web>

, тогда, конечно, мне будет отказано в доступе, как я и ожидал, потому что я не вошел в систему как testuser2, затем я изменю его на следующее ..

<authorization>
          <allow roles="test\testgroup1"/>
          <deny users="*" />
        </authorization>
       </system.web>

но получить доступ запрещен, даже если «test \ testuser1» принадлежит группе безопасности testgroup1 .. Я ожидаю, что, поскольку я вошел в систему с testuser1, это должно работать.

тогда я говорю, разрешите мне попробовать локальную группу на Тестовый веб-сервер. что опять же является моей конечной целью - использовать локальную группу

<authorization>
          <allow roles=".\localgroup1"/>
          <deny users="*" />
        </authorization>
       </system.web>

, когда я делаю это, это работает !! НО, вот НО, это работает LOL, является ли "test \ testuser1" членом локальной группы "localgroup1" или НЕ !!! что странно ..

, поэтому я не могу, во-первых, заставить группы AD работать даже, а во-вторых, мои локальные группы просто пропускают меня, независимо от того, находится ли моя учетная запись test \ testuser1 в локальной группе или нет :(

, поэтому на данный момент я полностью сбит с толку и расстроен тем, что не получается с получением ролей, работающих с группами AD или локальными группами, опять же моя цель - заставить его работать с локальными группами

1 Ответ

0 голосов
/ 02 марта 2020

Убедитесь, что вы создали новую группу в Locals User Group в Computer Management и добавили туда группу AD. а затем добавьте локальную группу в правило авторизации iis. также проверьте, что на сайте iis windows аутентификация включена, а остальные отключены.

enter image description here

добавьте код в ваш файл web.config как показано ниже:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>        
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
                <windowsAuthentication enabled="true" />
            </authentication>
            <authorization>
                <remove users="*" roles="" verbs="" />
                <add accessType="Allow" roles="MyDomain\SomeADGroup" />
                <add accessType="Deny" users="*" />
            </authorization>
        </security>
    </system.webServer>
    <system.web>
        <authentication mode="Windows" />
    </system.web>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...