Activando NTLM en Apache

Linux Nivel Medio 30 de abr. de 2024

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.

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux