Autenticación de seguridad <authentication>
Información general
La autenticación es el mecanismo que se usa para comprobar la identidad de los visitantes al sitio o aplicación web. Normalmente, se consigue al asignar un nombre de usuario y contraseña a un visitante o permitir que un visitante acceda de forma anónima al contenido público del sitio.
Aunque use la autenticación para confirmar la identidad de un visitante, use la autorización para controlar el acceso del visitante a las distintas áreas de su sitio o aplicación.
IIS 7 admite la autenticación anónima, básica, de asignación de certificado de cliente, implícita, de asignación de certificado de cliente de IIS y la de Windows. Los modulos de autenticación de terceros pueden proporcionar modos de autenticación adicionales.
Tras instalar uno de los módulos de autenticación, debe habilitarlo en el sitio web, aplicación web o servicio web donde desee usarlo.
De forma predeterminada, IIS 7 habilita la autenticación de modo kernel en el esquema de autenticación de Windows (que usa Kerberos o NTLM). La autenticación de modo kernel presenta las siguientes ventajas:
- Las aplicaciones web se pueden ejecutar con cuentas de privilegios inferiores.
- Si usa la autenticación Kerberos, puede usar una cuenta diferente a la cuenta predeterminada asociada al nombre de entidad de seguridad de servicio (SPN) del servidor.
- Si usa la autenticación de modo kernel, puede usar el proveedor Kerberos de autenticación de Windows sin hacer una configuración explícita del SPN.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <authentication> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <authentication> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <authentication> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <authentication> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <authentication> se introdujo en IIS 7.0. |
IIS 6,0 | N/D |
Configuración
El elemento <authentication>
se incluye en la instalación predeterminada de IIS 7.
Procedimientos
Cómo deshabilitar la autenticación anónima
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).
En el panel Conexiones, expanda el nombre del servidor, expanda Sitios y vaya al nivel del panel de jerarquía que desea configurar y, a continuación, haga clic en el sitio web o la aplicación web.
Desplácese hasta la sección Seguridad del panel Inicio y, a continuación, haga doble clic en Autenticación.
En el panel Autenticación, seleccione Autenticación anónima y, a continuación, haga clic en Desactivar en el panel Acciones.
Cómo cambiar las credenciales de autenticación anónima de la cuenta de IUSR
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).
En el panel Conexiones, expanda el nombre del servidor, expanda Sitiosy vaya al nivel del panel de jerarquía que desea configurar y, a continuación, haga clic en el sitio web o la aplicación web.
Desplácese hasta la sección Seguridad del panel Inicio y, a continuación, haga doble clic en Autenticación.
En el panel Autenticación, seleccione Autenticación anónima y, a continuación, haga clic en Editar... en el panel Acciones.
En el cuadro de diálogo Modificar credenciales de autenticación anónima, realice una de las siguientes acciones:
Seleccione Identidad del grupo de aplicaciones para usar el conjunto de identidades del grupo de aplicaciones y haga clic en Aceptar.
Haga clic en Establecer... y, después, en el cuadro de diálogo Establecer credenciales, escriba el nombre de usuario de la cuenta en el cuadro Nombre de usuario, escriba la contraseña de la cuenta en los cuadros Contraseña y Confirmar contraseña, Haga clic en Aceptar y, a continuación, haga clic en Aceptar de nuevo.
Nota:
Si usa este procedimiento, conceda solo los privilegios mínimos de la nueva cuenta en el equipo servidor IIS.
Cómo habilitar la autenticación de Windows para un sitio web, una aplicación web o un servicio web
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).
En el panel Conexiones, expanda el nombre del servidor, expanda Sitios y, a continuación, el sitio, la aplicación o el servicio web para el que desea habilitar la autenticación de Windows.
Desplácese hasta la sección Seguridad del panel Inicio y, a continuación, haga doble clic en Autenticación.
En el panel Autenticación, seleccione Autenticación de Windows y, a continuación, haga clic en Habilitar en el panel Acciones.
Configuración
El grupo de secciones <authentication>
está definido en la sección de configuración <system.webServer>
. Este grupo de secciones define las secciones de configuración de todos los tipos de autenticación de usuario que puede instalar y habilitar en el servidor. Puede configurarlo en el nivel de servidor en el archivo ApplicationHost.config y, en el nivel de aplicación, en el archivo Web.config.
Atributos
Ninguno.
Elementos secundarios
Elemento | Descripción |
---|---|
anonymousAuthentication |
Elemento opcional. Especifica la configuración de la autenticación anónima. |
basicAuthentication |
Elemento opcional. Especifica la configuración de la autenticación básica. |
clientCertificateMappingAuthentication |
Elemento opcional. Especifica la configuración de la autenticación de asignación de certificados de cliente con Active Directory. |
digestAuthentication |
Elemento opcional. Especifica la configuración de la autenticación implícita. |
iisClientCertificateMappingAuthentication |
Elemento opcional. Especifica la configuración de la autenticación de asignación de certificados de cliente con IIS. |
windowsAuthentication |
Elemento opcional. Especifica la configuración de la autenticación de Windows. |
Ejemplo de configuración
La siguiente configuración de ejemplo deshabilita la autenticación anónima de un sitio con el nombre Contoso y habilita la autenticación básica y de Windows en el sitio.
<location path="Contoso">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<basicAuthentication enabled="true" defaultLogonDomain="Contoso" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Código de ejemplo
Los siguientes ejemplos deshabilitan la autenticación anónima de un sitio con el nombre Contoso y, a continuación, habilitan la autenticación básica y de Windows en el sitio.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/basicAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost
Nota:
Debe asegurarse de establecer el parámetrocommit en apphost
cuando use AppCmd.exe para configurar estos valores. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.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.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
anonymousAuthenticationSection["enabled"] = false;
ConfigurationSection basicAuthenticationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso");
basicAuthenticationSection["enabled"] = true;
ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
windowsAuthenticationSection["enabled"] = true;
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.GetApplicationHostConfiguration
Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
anonymousAuthenticationSection("enabled") = False
Dim basicAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso")
basicAuthenticationSection("enabled") = True
Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
windowsAuthenticationSection("enabled") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;
var basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
basicAuthenticationSection.Properties.Item("enabled").Value = true;
var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False
Set basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
basicAuthenticationSection.Properties.Item("enabled").Value = True
Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True
adminManager.CommitChanges()