NGINX: Zugriff auf einen Standort sowohl mit auth_basic als auch mit auth_ldap steuern?

NGINX: Zugriff auf einen Standort sowohl mit auth_basic als auch mit auth_ldap steuern?

Ich verwende NGINX 1.8.0 mit nginx-auth-ldap. Ich habe eine Anwendung zur Authentifizierung/Autorisierung laufen /app. auth_ldapSie funktioniert.

server {
    listen 80;
    ...
    location /app/ {
        auth_ldap "Restricted";
        auth_ldap_servers test;
        ...
    }
}

Ich möchte einem zusätzlichen Konto Zugriff gewähren, um automatisierte Wartungsarbeiten durchzuführen (Web-API). Aus Sicherheitsgründen botkann ich kein LDAP-Konto erstellen .bot

auth_ldapIch habe versucht , und gleichzeitig zu verwenden auth_basic(mit einem einzelnen botBenutzer für Letzteres), aber alle Anmeldeinformationen führen zu einer 401. Habe ich einen Fehler gemacht oder ist es einfach nicht möglich, es auf diese Weise zum Laufen zu bringen?

server {
    listen 80;
    ...
    location /app/ {
        auth_ldap "Restricted";
        auth_ldap_servers test;
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htaccess
        ...
    }
}

Wenn das nicht funktioniert, hätten Sie eine andere Empfehlung, wie ich weiter vorgehen soll?

Hinweis: Ich habe versucht, die Anwendung an einem anderen Ort zu spiegeln auth_basic. Die Zugriffskontrolle funktioniert, aber die App codiert ihre URL fest: Antworten von /app-auth-basicenthalten Links zurück zu /app. Ich habe keine Kontrolle über die Anwendung, daher scheint dies nirgendwohin zu führen.

server {
    listen 80;
    ...
    location /app/ {
        auth_ldap "Restricted";
        auth_ldap_servers test;
        ...
    }
    location /app-auth-basic/ {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htaccess
        ...
    }
}

Antwort1

Sie hatten fast recht, aber die satisfyAnweisung fehlte:

server {
    listen 80;
    ...
    location /app/ {
        satisfy any;

        auth_ldap "Restricted LDAP";
        auth_ldap_servers test;

        auth_basic "Restricted htaccess";
        auth_basic_user_file /etc/nginx/.htaccess

        ...
    }
}

Dabei wird Ihnen zuerst ein Authentifizierungsdialogfeld mit der Meldung „Eingeschränktes LDAP“ angezeigt (das nur LDAP-Anmeldeinformationen akzeptiert). Wenn Sie auf „Abbrechen“ klicken, wird Ihnen ein weiteres Authentifizierungsdialogfeld mit der Meldung „Eingeschränkter htaccess“ angezeigt (das nur Benutzer/Passwörter akzeptiert, die in Ihrer htaccess-Datei enthalten sind). Beachten Sie, dass das zweite Dialogfeld nie angezeigt wird, wenn Sie im ersten Dialogfeld bereits korrekte Anmeldeinformationen eingegeben haben.

Alternativ können Sie zum Einloggen auch direkt Ihre htaccess-Anmeldedaten per senden.http://user:[email protected]

verwandte Informationen