Restrinja el acceso al sitio IIS a un grupo de AD

Respuestas:

18

Lo siguiente debería funcionar, dependiendo de su versión de IIS. Tendrá que agregar un web.config si no tiene uno (aunque debería hacerlo en IIS7) en la raíz del directorio de su sitio. Lo siguiente permitirá Administradores de dominio y denegará usuarios de dominio (bastante explicativo). Asegúrese de alinear las secciones de configuración si ya tiene una sección, etc.

<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>

Necesitará la autenticación de Windows habilitada en Autenticación en las preferencias de su sitio para que esto funcione, obviamente, pero supongo que ya tiene esto habilitado.

Josh Atkins
fuente
¿En qué versiones de IIS funciona esto?
svandragt
14

La respuesta de joshatkins no funciona en IIS7. Para IIS7, debe usar el atributo de rol. Además, si desea restringir todo el sitio, no necesita el elemento de ubicación.

<authorization>
  <allow roles="DOMAIN\Domain Users"/>
  <deny users="*" />
</authorization>
Anders
fuente
99
No utilice referencias como "arriba" o "abajo" porque no tiene forma de saber en qué orden un individuo ve las respuestas. El problema empeora con el tiempo a medida que se publican más respuestas. En su lugar, debe referirse al nombre del afiche de la respuesta a la que se hace referencia.
John Gardeniers
11

Solo agregué un par de puntos más a las otras respuestas que me ayudaron a descubrir cómo hacer que esto funcione después de que la autenticación AD básica funcionara bien con IIS.

  1. Agregue rol o característica a través del Administrador del servidor de Windows : Servidor web (IIS) -> Servidor web -> Seguridad -> Autorización de URL.
  2. Cierre y vuelva a abrir el Administrador de IIS (si lo tiene abierto), ahora verá (en la Sección IIS de su sitio) Reglas de autorización . Abre esto.
  3. Haga clic en el panel lateral derecho: Agregar regla de permiso
  4. En Roles especificados o grupos de usuarios, escriba el nombre del grupo de AD que necesita. p.ej. myDomain \ myGroup y seleccione OK .
  5. Repita 4 para los grupos que necesita.

si solo desea editar el archivo de configuración directamente, se vería así:

<?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>
Chris
fuente
También deberá habilitar la autenticación de Windows (NTLM / Curb). De lo contrario, si no se puede determinar la identidad de la sesión del navegador, ¿cómo podría funcionar la autorización basada en roles? Después de seguir sus instrucciones y habilitar la autenticación de Windows, ¡esto funciona!
KFL
3

Si el uso de las reglas de autorización web.config no funciona (por ejemplo, porque se ejecuta un script CGI), puede usar el sistema de permisos de carpeta para deshabilitar la herencia, eliminar usuarios de IIS (para que nadie tenga acceso de lectura) y simplemente agregue el grupo de seguridad en Con acceso de lectura. También debe habilitar algún tipo de método de autenticación (por ejemplo, Basic o Windows Integrated) para que el visitante sea reconocido.

svandragt
fuente
Me gusta este método, puede que no se adapte a las necesidades de todos, pero no hay necesidad de perder el tiempo con web.config
persona
1

Dar permiso de lectura en la carpeta solo a ese grupo de dominio también funciona.

Hüseyin Yağlı
fuente
0

Sé que es una pregunta muy antigua, pero esto es algo que necesito en mi entorno de prueba.

Este enfoque funciona para mí y obtengo una ventana emergente para iniciar sesión y puedo iniciar sesión sin ningún problema.

Me preguntaba cómo puedo configurarlo para usar SSO. Si el usuario conectado es miembro del grupo de seguridad, solicite las credenciales.

Mi IIS está en Windows Server 2016 1607 y el sitio web es HTML estático.

9944990
fuente