Activando NTLM en Apache
Simplificando el proceso de Autenticación del Usuario
Una de las comodidades que podemos ofrecer a nuestros usuarios en las aplicaciones Web que desarrollemos y que pertenezcan y estén logados en un dominio interno (mediante Directorio Activo o contra un servidor LDAP) es simplificarles el proceso de autenticación en la aplicación mediante un proceso automático.
La configuración a incluir en Apache para que esto sea operativo es bastante sencillo, tan sólo tenemos que recurrir a la creación de un fichero .htaccess que esté situado en la carpeta raíz de nuestra aplicación web e incluir en él algo parecido a lo siguiente:
AuthName "MiAplicacionWeb"
AuthType NTLM
NTLMAuth on
NTLMAuthoritative on
NTLMDomain DOMINIO
NTLMServer servidor.autenticador.dominio.com
require valid-user
Satisfy all
En el código de nuestra aplicación (por ejemplo PHP) simplemente revisaremos si el usuario está logado en el servidor correspondiente y permitiremos el acceso directamente a nuestra aplicación.
// Autenticacion automática mediante NTLM para mi APP
// Codigo de ejemplo simplificado...
if (getApplication() == 'MiAplicacionWeb'){
// NTLM
if ( isset($_SERVER["REMOTE_USER"]) && $_GET['action']!='logout' ){
$_SESSION["logged"] = true;
$_SESSION["login_usuario"] = strtolower($_SERVER["REMOTE_USER"]);
}
}
También hay que tener en cuenta que dependiendo de tu Sistema Operativo y/o del Navegador, puede ser necesario realizar algunos pequeños ajustes, como por ejemplo en Linux usando Firefox para mantener el Single-Sign-On y el Auth del dominio.
Mantener el Single-Sign-On y el Auth de Dominio en Firefox
Si queremos que nuestro navegador una vez que se haya logado en alguna página web controlada mediante SSO en el dominio y queremos que se mantenga esta autenticación para otras paginas web de nuestra red interna, deberemos realizar algunos pequeños cambios en nuestro navegador Firefox para que funcione correctamente.
Para ello escribimos como URL en la entrada de navegación about:config
Aceptamos, y en la opción de 'Buscar' escribimos: ntlm
Las opciones que tienes que cambiar de false a true (con un doble clic) son:
- network.auth.force-generic-ntlm
- network.auth.force-generic-ntlm-v1
- network.automatic-ntlm-auth.allow-non-fqdn
En las opciones trusted-uris deberás escribir URL contra la que realizas una primera conexión autenticada en alguna web de tu dominio (por ejemplo tu intranet)
En la opción auth.workstation deberás escribir tu dominio.