Autenticación implícita <digestAuthentication>
Información general
El elemento <digestAuthentication>
contiene opciones de configuración para el módulo de autenticación implícita de Internet Information Services (IIS) 7. Puede configurar este elemento para habilitar o deshabilitar la autenticación implícita y, opcionalmente, puede especificar el dominio de autenticación implícita.
La autenticación implícita no se usa tan ampliamente como autenticación básica, pero tiene algunas ventajas distintas sobre la autenticación básica o la autenticación de Windows. La principal desventaja de usar la autenticación básica sobre medios de comunicación no cifrados es que el nombre de usuario y la contraseña del cliente se envían como un mensaje de texto no cifrado codificado en base 64, lo que facilita mucho que un usuario malintencionado intercepte la comunicación y recupere el nombre de usuario y la contraseña. La autenticación de Windows resuelve ese problema a través de una variedad de opciones de seguridad, pero la autenticación de Windows no suele funcionar en un entorno de Internet.
La autenticación implícita aborda las dos limitaciones anteriores por los siguientes medios:
- A diferencia del esquema de texto no cifrado usado por la autenticación básica, la autenticación implícita tiene el cliente que envía un hash de la información del cliente a través del canal de comunicación, por lo que el nombre de usuario y la contraseña del cliente nunca se envían a través de la red.
- La autenticación implícita funciona bien a través de Internet, lo que hace que la autenticación implícita sea más adecuada para ese entorno que la autenticación de Windows.
Nota:
La autenticación implícita solo protege el nombre de usuario y la contraseña del cliente: el cuerpo de la comunicación HTTP sigue en texto no cifrado. Para proteger el cuerpo de la comunicación, debe usar capa de sockets seguros (SSL).
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <digestAuthentication> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <digestAuthentication> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <digestAuthentication> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <digestAuthentication> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <digestAuthentication> se introdujo en IIS 7.0. |
IIS 6,0 | El elemento <digestAuthentication> reemplaza partes de las propiedades de la metabase AuthType y AuthFlags de IIS 6.0. |
Configuración
La instalación predeterminada de IIS 7 y versiones posteriores no incluye el servicio de rol de autenticación implícita. Para usar la autenticación implícita en IIS 7 y versiones posteriores, debe instalar el servicio de rol, deshabilitar la autenticación anónima para su sitio web o aplicación y, a continuación, habilitar la autenticación implícita para el sitio o la aplicación.
Para instalar el servicio de rol de autenticación implícita siga estos pasos.
Windows Server 2012 o Windows Server 2012 R2
- 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 Autenticación implícita. Haga clic en Next.
. - En la página Seleccionar características, haz 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
- 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 World Wide Web Services, expanda Security y, a continuación, seleccione Autenticación implícita.
- Haga clic en OK.
- Haga clic en Cerrar.
Windows Server 2008 o Windows Server 2008 R2
- 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 Autenticación implícita y, a continuación, haga clic en Siguiente.
- En la página Confirmar selecciones de instalación, haz clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows Vista o Windows 7
- 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 sucesivamente Internet Information Services, Servicios World Wide Web y Seguridad, luego, seleccione Autenticación implícita y haga clic en Aceptar.
Procedimientos
Habilitación de la autenticación implícita y deshabilitación de 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 haga clic en el sitio, aplicación o servicio web para el que desea habilitar la autenticación de Windows.
Desplácese hasta la sección Seguridad en el panel Inicio y, a continuación, haga doble clic en Autenticación.
En el panel Autenticación, seleccione Autenticación implícitay, a continuación, en el panel Acciones, haga clic en Habilitar.
En el panel Autenticación, seleccione Autenticación anónima y, a continuación, haga clic en Deshabilitar en el panel Acciones.
Configuración
El elemento <digestAuthentication>
se puede configurar en el nivel de sitio, aplicación, directorio virtual y URL. Después de instalar el servicio de rol, IIS 7 confirma las siguientes opciones de configuración en el archivo ApplicationHost.config.
<digestAuthentication enabled='false' />
Atributos
Atributo | Descripción |
---|---|
enabled |
Atributo Boolean opcional. Especifica si la autenticación implícita está habilitada. El valor predeterminado es false . |
realm |
Atributo String opcional. Especifica el dominio kerberos para la autenticación implícita. |
Elementos secundarios
Ninguno.
Ejemplo de configuración
En el ejemplo de configuración siguiente se habilita la autenticación implícita para un sitio web, una aplicación web o un servicio web. De forma predeterminada, esta configuración debe incluirse en el archivo ApplicationHost.config en un elemento <location>
y usar el atributo path para definir el sitio web o aplicación donde desea aplicar la configuración de autenticación.
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<digestAuthentication enabled="true" />
</authentication>
</security>
Código de ejemplo
En los ejemplos siguientes se habilita la autenticación implícita para un sitio.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/digestAuthentication /enabled:"True" /commit:apphost
Nota:
Debe asegurarse de establecer el parámetro de confirmación en apphost
cuando use 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.
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 digestAuthenticationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso");
digestAuthenticationSection["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 digestAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso")
digestAuthenticationSection("enabled") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var digestAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/digestAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
digestAuthenticationSection.Properties.Item("enabled").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set digestAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/digestAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
digestAuthenticationSection.Properties.Item("enabled").Value = True
adminManager.CommitChanges()