Wer weiß, ob es möglich ist, Reverse-Proxy mit Windows-Authentifizierung, die NTLM verwendet, zu tun? Ich kann kein Beispiel dafür finden. Was sollten die Werte des Feldes more_set_headers sein?
%Vor%Wenn ich direkt auf den Host zugreife, gelingt die Authentifizierung, wenn ich mit dem Reverse Proxy auf die Authentifizierung stehe, jedes Mal fehlgeschlagen.
Soweit ich weiß, ist dies derzeit mit nginx nicht möglich. Ich habe das vor einiger Zeit selbst gründlich untersucht. Das grundlegende Problem besteht darin, dass für die NTLM-Authentifizierung der gleiche Socket für die nachfolgende Anforderung verwendet werden muss, der Proxy jedoch nicht. Bis das nginx-Entwicklungsteam irgendeine Art von Unterstützung für dieses Verhalten bietet, habe ich dies mit der Authentifizierung im Reverse-Proxy selbst gemacht. Ich mache das gerade mit Apache 2.2, mod_proxy, mod_auth_sspi (nicht perfekt, aber funktioniert). Viel Glück! Sorry, nginx, ich liebe dich, aber wir könnten wirklich Hilfe für diesen häufigen Anwendungsfall gebrauchen.
Seitdem habe ich eine andere Lösung gefunden. Das ist immer noch nicht dasselbe wie nginx, das den NTLM erledigt (was nett sein wird, wenn das nginx-Team dies jemals implementiert). Aber vorerst funktioniert das, was ich tue, für uns.
Ich habe einen Lua-Code geschrieben, der ein verschlüsseltes Cookie verwendet. Das verschlüsselte Cookie enthält die ID des Benutzers, die Uhrzeit der Authentifizierung und die IP-Adresse, von der aus er sich authentifiziert hat. Ich befestige dieses Zeug hier als Referenz. Es ist nicht poliert, aber vielleicht können Sie es verwenden, um Ihr eigenes ähnliches Schema zu entwickeln.
Grundsätzlich funktioniert es wie folgt:
access.lua:
%Vor%strings.lua:
%Vor%enc.lua:
%Vor%Beispiel nginx conf:
%Vor%Tags und Links nginx reverse-proxy ntlm