¿Nginx admite la autenticación ldap? Acabo de migrar de Apache y me gustaría mover todas mis autenticaciones basadas en openldap y mod_auth_ldap a nginx. Avísame si eso es posible.
Desde esta página que enumera todos los módulos que tiene nginx, no veo ninguna mención sobre LDAP. Gracias,
Hay un módulo LDAP no oficial para nginx: nginx-auth-ldap .
fuente
Hay un módulo de terceros
nginx-auth-ldap
que puede usar. Todavía no lo he probado, pero puedo actualizar mi respuesta más tarde.usando nginx X-accel
La documentación para
X-accel
simplemente explica que una página puede utilizar un encabezado tener nginx servir un archivo (en lugar dePHP
odjango
oruby
o nombre-su-no-como-eficiente-como-nginx-stack-aquí ).por ejemplo, flujo de trabajo:
/download.php?path=/data/file1.txt
,download.php
devuelveWWW-Authenticate
+401 Unauthorized
,/download.php?path=/data/file1.txt
pero ahoranginx
tiene las credenciales,nginx
puede pasar$remote_user
y$http_authorization
alfastcgi
script,download.php
realiza la autenticación y decide si devolver403 Forbidden
o establecer el encabezado delX-Accel-Redirect
encabezado.establecer la
internal
ubicación de nginxSi bien puede usar
X-Accel
para servir activos estáticos, el caso de uso aquí es que queremos que las solicitudes se autentiquen, por eso lo usamosinternal
.configurar el script de descarga
Aquí vamos:
tenga en cuenta : el script PHP usa
PHP_AUTH_USER
yPHP_AUTH_PW
, que es capturado pornginx
, por lo que para usarlos en el script PHP, debemos darlos para proporcionarlos explícitamente.cocinando una autenticación ldap en PHP
Para mi caso de uso, instalé
php-fpm
yphp-ldap
en mi sistema.Aquí hay una función de autenticación decente:
Aquí hay una ruta de código decente para el acceso prohibido:
Y para la carne de la autenticación LDAP:
Aquí tienes el cuerpo principal del script que usa la uri de solicitud.
exploración de archivos semitransparente
También publiqué esto como una esencia :
y prácticamente el mismo script PHP, excepto el cuerpo:
fuente
En resumen: Sí, NGINX es compatible con LDAP. Hay dos módulos adicionales disponibles: NGINX tiene uno, y hay otro disponible en github. La solución NGINX parecía bastante compleja a primera vista, así que elegí la última opción, que se llama nginx-auth-ldap. Puse algunas notas de instalación con respecto a mi experiencia en el siguiente hilo:
Agregue autenticación ldap a nginx en RHEL 7
fuente
Parece que alguien recibió una respuesta a su pregunta en http://forum.nginx.org/read.php?2,18552
fuente