Czy nginx obsługuje uwierzytelnianie LDAP? Właśnie przeprowadziłem migrację z Apache i chciałbym przenieść wszystkie moje uwierzytelnienia oparte na openldap i mod_auth_ldap na nginx. Daj mi znać, jeśli to możliwe.
Na tej stronie z listą wszystkich modułów, które ma nginx, nie widzę żadnej wzmianki o LDAP. Dzięki,
Istnieje nieoficjalny moduł LDAP dla nginx: nginx-auth-ldap .
źródło
Istnieje moduł innej firmy
nginx-auth-ldap
, którego możesz użyć. Nie próbowałem tego jeszcze, ale mogę zaktualizować swoją odpowiedź później.za pomocą nginx X-accel
Dokumentacja
X-accel
wyjaśniająca po prostu wyjaśnia, że strona może używać nagłówka, aby nginx obsługiwał plik (zamiastPHP
lubdjango
lubruby
lub nazwać-nie-tak-wydajne-jak-stos-nginx tutaj ).np. przepływ pracy:
/download.php?path=/data/file1.txt
,download.php
zwracaWWW-Authenticate
+401 Unauthorized
,/download.php?path=/data/file1.txt
ale teraznginx
ma poświadczenia,nginx
może przejść$remote_user
i$http_authorization
dofastcgi
skryptu,download.php
wykonuje uwierzytelnianie i decyduje o zwrocie403 Forbidden
lub ustawieniuX-Accel-Redirect
nagłówka.ustawienie
internal
lokalizacji nginxChociaż możesz używać
X-Accel
do obsługi zasobów statycznych, tutaj przypadek użycia polega na tym, że chcemy, aby żądania były uwierzytelniane, dlatego używamyinternal
.konfiguracja skryptu pobierania
No to ruszamy:
Uwaga : skrypt PHP używa
PHP_AUTH_USER
iPHP_AUTH_PW
, który jest przechwytywanynginx
, więc aby użyć ich w skrypcie PHP, musimy dać je wyraźnie.gotowanie uwierzytelniania LDAP w PHP
Dla mojego przypadku użycia zainstalowałem
php-fpm
iphp-ldap
w swoim systemie.Oto przyzwoita funkcja uwierzytelniania:
Oto przyzwoita ścieżka kodu dla zabronionego dostępu:
A jeśli chodzi o autentyczność uwierzytelniania LDAP:
Tutaj masz główną treść skryptu, który używa URI żądania.
półprzezroczyste przeglądanie plików
Opublikowałem to również jako sedno :
i prawie taki sam skrypt PHP oprócz ciała:
źródło
W skrócie: Tak, NGINX obsługuje LDAP. Dostępne są dwa dodatkowe moduły: NGINX ma jeden, a drugi jest dostępny na github. Rozwiązanie NGINX na pierwszy rzut oka wydawało się dość skomplikowane, więc wybrałem ten drugi wybór, który nazywa się nginx-auth-ldap. W tym wątku zamieściłem kilka uwag dotyczących instalacji dotyczących mojego doświadczenia:
Dodaj uwierzytelnianie LDAP do nginx na RHEL 7
źródło
Wygląda na to, że ktoś otrzymał odpowiedź na twoje pytanie na http://forum.nginx.org/read.php?2,18552
źródło