Autorización de seguridad <de autorización>

Información general

El elemento <authorization> permite configurar las cuentas de usuario que pueden acceder a su sitio o aplicación. Use la autorización en combinación con la autenticación para proteger el acceso al contenido en el servidor. La autenticación confirma la identidad de un usuario, mientras que la autorización determina a qué recursos pueden acceder los usuarios o no pueden acceder.

IIS define dos tipos de reglas de autorización, Reglas de permiso y Reglas de denegación:

  • Las reglas de permiso permiten definir las cuentas de usuario o los grupos de usuarios que pueden acceder a un sitio, una aplicación o todos los sitios de un servidor.
  • Las reglas de denegación permiten definir las cuentas de usuario o los grupos de usuarios que no pueden acceder a un sitio, una aplicación o todos los sitios de un servidor.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <authorization> no se modificó en IIS 10.0.
IIS 8.5 El elemento <authorization> no se modificó en IIS 8.5.
IIS 8.0 El elemento <authorization> no se modificó en IIS 8.0.
IIS 7.5 El elemento <authorization> no se modificó en IIS 7.5.
IIS 7.0 El elemento <authorization> se introdujo en IIS 7.0.
IIS 6,0 La colección <authorization> reemplaza a las propiedades de la metabase AzEnable, AzStoreName, AzScopeName y AzImpersonationLevel de IIS 6.0.

Configuración

Para admitir y configurar la autorización para sitios y aplicaciones en el servidor web, debe instalar el módulo de autorización de direcciones URL. Para ello, siga estos pasos.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor. - En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características. - En el Asistente para agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente. - En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Seguridad y, a continuación, seleccione Autorización de dirección URL. Haga clic en Next.
    Image of Web Server and Security pane expanded with U R L Authorization highlighted.. - En la página Seleccionar características, haga clic en Siguiente. - En la página Confirmar selecciones de instalación, haga clic en Instalar. - En la página Resultados, haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control. - En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows. - Expanda Internet Information Services, expanda Servicios World Wide Web, expanda Seguridad y, a continuación, seleccione Autorización de dirección URL.
    Image of World Wide Web Services and Security pane expanded and U R L Authorization selected.: haga clic en Aceptar.
  2. Haga clic en Cerrar.

Windows Server 2008 o Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor. - En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS). - En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol. - En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione Autorización de dirección URL y haga clic en Siguiente.
    Screenshot of Security pane expanded in Select Role Services page of the Add Role Services Wizard with U R L Authorization selected.: en la página de Confirmar selecciones de instalación, haga clic en Instalar. - En la página Resultados, haga clic en Cerrar.

Windows Vista o Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control. - En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows. - Expanda Internet Information Services, seleccione Autorización de dirección URL y, a continuación, haga clic en Aceptar.
    Image of Internet Information Services pane expanded and U R L Authorization selected.

Procedimientos

Adición de una regla de autorización

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, expanda el nombre del servidor, expanda Sitios y, a continuación, vaya al sitio o a la aplicación web en el que desea configurar la autorización.

  3. En el panel Inicio, haga doble clic en Reglas de autorización.
    Image of Home pane with Authorization Rules highlighted.

  4. Para agregar una nueva regla de autorización, en el panel Acciones haga clic en Agregar regla de permiso... o Agregar regla de denegación...

  5. Aplique la configuración de autorización necesaria para su sitio o aplicación y, a continuación, haga clic en Aceptar. Por ejemplo:

    • Ejemplo 1: agregar una regla de permiso para todos los usuarios para verbos HTTP específicos:
      Image of Adding an Allow rule for all users for specific H T T P verbs dialog box showing verbs typed in the box for Apply this rule to specific verbs.

    • Ejemplo 2: agregar una regla de denegación para todos los usuarios para verbos HTTP específicos:
      Image of dialog box for Add Deny Authorization Rule for a specific user for all H T T P verbs.

      Nota:

      Para editar o eliminar una regla existente, seleccione la regla en el panel Reglas de autorización y, a continuación, haga clic en Editar o Quitar en el panel Acciones. Si hace clic en Editar..., aparecerá un cuadro de diálogo que le permite editar la regla; este cuadro de diálogo es similar a los cuadros de diálogo Agregar regla de autorización de permiso y Agregar regla de autorización de denegación.

Configuración

Puede configurar el elemento <authorization> a nivel de servidor en el archivo ApplicationHost.config y a nivel de sitio y aplicación en el archivo Web.config adecuado.

Puede establecer reglas de autorización predeterminadas para todo el servidor mediante la configuración de reglas de autorización en el nivel de servidor. Puede quitar, borrar o invalidar estas reglas configurando reglas más específicas para sus sitios o aplicaciones.

Atributos

Atributo Descripción
bypassLoginPages Atributo Boolean opcional.

Especifica si se omitirá la comprobación de autorización de la página especificada como página de inicio de sesión para la autenticación de formularios. Esto permite a los usuarios no autenticados acceder a la página de inicio de sesión para iniciar sesión.

El valor predeterminado es true.

Elementos secundarios

Elemento Descripción
add Elemento opcional.

Agrega una regla de autorización a la colección de reglas de autorización.
remove Elemento opcional.

Quita una referencia a una regla de autorización a la colección de reglas de autorización.
clear Elemento opcional.

Quita todas las referencias a las reglas de autorización de la colección de reglas de autorización.

Ejemplo de configuración

En el siguiente ejemplo de configuración, cuando se incluye en un archivo Web.config, se quita la configuración de autorización predeterminada de IIS, que permite a todos los usuarios acceder al contenido del sitio web o de la aplicación. A continuación, configura una regla de autorización que solo permite a los usuarios con privilegios de administrador acceder al contenido.

<configuration>
   <system.webServer>
      <security>
         <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="" roles="Administrators" />
         </authorization>
      </security>
   </system.webServer>
</configuration>

Código de ejemplo

En los siguientes ejemplos se agrega una regla de autorización de permiso que permite a los usuarios del grupo de administradores acceder a un sitio web denominado Contoso.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authorization /+"[accessType='Allow',roles='administrators']"

Nota:

Opcionalmente, puede establecer el parámetro commit en apphost al usar AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.config en lugar de un archivo Web.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Contoso");
         ConfigurationSection authorizationSection = config.GetSection("system.webServer/security/authorization");
         ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();

         ConfigurationElement addElement = authorizationCollection.CreateElement("add");
         addElement["accessType"] = @"Allow";
         addElement["roles"] = @"administrators";
         authorizationCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim authorizationSection As ConfigurationSection = config.GetSection("system.webServer/security/authorization")
      Dim authorizationCollection As ConfigurationElementCollection = authorizationSection.GetCollection
      Dim addElement As ConfigurationElement = authorizationCollection.CreateElement("add")
      addElement("accessType") = "Allow"
      addElement("roles") = "administrators"
      authorizationCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso");
var authorizationCollection = authorizationSection.Collection;

var addElement = authorizationCollection.CreateNewElement("add");
addElement.Properties.Item("accessType").Value = "Allow";
addElement.Properties.Item("roles").Value = "administrators";
authorizationCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso")
Set authorizationCollection = authorizationSection.Collection

Set addElement = authorizationCollection.CreateNewElement("add")
addElement.Properties.Item("accessType").Value = "Allow"
addElement.Properties.Item("roles").Value = "administrators"
authorizationCollection.AddElement(addElement)

adminManager.CommitChanges()