Compartir a través de


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

  1. En la barra de tareas, haga clic en Administrador del servidor.
  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
  3. 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.
  4. 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.
    Image of Web Server and Security pane expanded with Digest Authentication selected..
  5. En la página Seleccionar características, haz clic en Siguiente.
  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.
  7. 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.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, expanda World Wide Web Services, expanda Security y, a continuación, seleccione Autenticación implícita.
    Screenshot of World Wide Web Services and Security pane expanded with Digest Authentication highlighted.
  4. Haga clic en OK.
  5. 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.
  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
  4. 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. Image of Select Role Services page displaying Digest Authentication option selected.
  5. En la página Confirmar selecciones de instalación, haz clic en Instalar.
  6. 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.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda sucesivamente Internet Information Services, Servicios World Wide Web y Seguridad, luego, seleccione Autenticación implícita y haga clic en Aceptar.
    Screenshot of World Wide Web Services and Security pane expanded showing Digest Authentication selected.

Procedimientos

Habilitación de la autenticación implícita y deshabilitación de la autenticación anónima

  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 haga clic en el sitio, aplicación o servicio web para el que desea habilitar la autenticación de Windows.

  3. Desplácese hasta la sección Seguridad en el panel Inicio y, a continuación, haga doble clic en Autenticación.
    Image of Home pane in Security section with Authentication application highlighted.

  4. En el panel Autenticación, seleccione Autenticación implícitay, a continuación, en el panel Acciones, haga clic en Habilitar.

  5. En el panel Autenticación, seleccione Autenticación anónima y, a continuación, haga clic en Deshabilitar en el panel Acciones.
    Image of Authentication pane displaying Anonymous Authentication option highlighted.

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