Métodos de Autenticación en IIS
Métodos de Autenticación en IIS
Como ya se ha dicho, cada vez que una petición de un cliente hace a IIS leer un recurso de disco, éste impersona a una cuenta de usuario de Windows. Esta cuenta es la que se usa para comprobar si se tienen permisos suficientes para acceder a dicho recurso. Para ello, lo primero que hay que establecer es un procedimiento para que el usuario aporte información de su identidad y comprobar la validez de la misma en el sistema (autenticación). Si este proceso es satisfactorio, se debe comprobar si dicha identidad puede acceder al recurso, obteniendo para ello los permisos que el recurso tiene asignados a ese usuario (autorización). Hay siete tipos de autenticación soportados en IIS: Anónima, Básica, (Advanced) Digest, IWA, UNC y Passport.
Independientemente de las opciones de autenticación elegidas, la petición inicial del browser para obtener un recurso no mandará credenciales de ningún usuario, es decir, todas las peticiones inicialmente se harán como un usuario anónimo de IIS antes mencionado (IUSR_<nombre del equipo>). En este caso:
- Si el recurso tiene configurados permisos suficientes para el usuario anónimo, entonces se accederá como tal (aunque haya otros mecanismos activos para el recurso, el acceso anónimo, si está activo, siempre “gana”).
- Si no, entonces el servidor negociará con el browser el mecanismo de autenticación más seguro posible soportado por ambos:
- El orden de negociación es: IWA->Digest/Advanced Digest->Basic
- Passport no se incluye aquí, es un caso especial (si se habilita, se deshabilitan todos los demás)
- Si no es posible establecer un método de autenticación se devuelve un error 401.2 Unauthorized: Logon failed due to server configuration
Tras una autenticación con éxito, el método de autenticación usado inicialmente y las credenciales aportadas por el usuario se mantienen durante toda la comunicación, salvo que:
- El usuario cierre el browser (borrando la información privada relevante). La próxima petición se hará como anónima, recomenzando el proceso visto.
- El servidor web indique que las credenciales o el método de autenticación ya no son válidos. En este caso el browser renegociará otro mecanismo o volverá a pedir las credenciales de usuario.
Esto es muy importante: Si el método de autenticación usado manda la clave como texto plano sin proveer ninguna clase de encriptación, todas las peticiones siguientes a la que negoció y aceptó el método de autenticación y que requieran datos de autenticación mandarán las credenciales del usuario sin encriptar, lo cual puede ser un problema serio de seguridad. Por tanto, SIEMPRE debemos tener en cuenta las características de los métodos de autenticación que estamos usando y proveer un canal de transmisión seguro en caso necesario cuando haya información sensible. Para este fin veremos cómo configurar SSL en una próxima sección. A continuación describiremos las distintas opciones de autenticación disponibles en IIS.
IIS dispone de los siguientes métodos de autenticación:
- Autenticación Anónima
- Autenticación Básica
- Autenticación Digest (RFC 2617)
- Autenticación Advanced Digest
- Autenticación Integrada con Windows (IWA o Integrated Windows Authentication)
- Autenticación UNC
- .NET Passport /Windows Live ID
- Subautenticación
Podemos encontrar información de estos aspectos en IIS 7 en el siguiente enlace: http://technet.microsoft.com/en-us/library/cc733010%28WS.10%29.aspx