HTTP-server hinter IIS: pass-authentication-Header
Habe ich ein IIS-Instanz konfiguriert mit Windows-Authentifizierung und URL-Rewrite, so dass es im Grunde arbeitet als reverse proxy. Meine backend-server (auf Linux laufen) rechnet mit einem REMOTE_USER
header. Ist es möglich, konfigurieren Sie IIS zum weiterleiten von Informationen über den authentifizierten Benutzer auf den backend-server?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn IIS konfiguriert ist für
Windows Auth
, dannARR
Herausforderung und nur Anfragen sobald der Benutzer authentifiziert ist.Ist es möglich, vorwärts benutzerdefinierten Header mit der Anfrage unter Verwendung eines
HTTP
Namenskonvention undserverVariables
element in der rewrite-Regeln. Zum Beispiel, im folgenden Beispiel wird die server-variableLOCAL_ADDR
wird weitergeleitet zu einem header namensX-MY-HEADER
.Leider ist es nicht möglich, diese Technik für uns eine
REMOTE_USER
header. Dies ist, weil, wenn dieAuthorization
- header vorhanden ist, wird die Anfrage weitergeleitet wird, bevor die Authentifizierung-Modul läuft, und deshalb auth server-Variablen sind nicht gesetzt (wenn zugeordnet zu Kopf-Sie kommen einfach durch leer).Können Sie jedoch festlegen von IIS verwenden
Basic Windows Auth
, und extrahieren Sie dann den Benutzernamen aus derBase64
codiertAuthorization
- header auf Ihrem Linux-server.Ich habe ein ähnliches problem hatte und ich dachte, ich würde erwähnen, wie ich es geschafft, das zu umgehen. Ich habe installiert Helicon ISAPI-Rewrite 3 Lite, das ist ein ISAPI-filter "Anforderung". Da läuft es nach der Authentifizierung Stufe in der pipeline, hat er Zugriff auf die
REMOTE_USER
variabel und können schreiben Sie die Anfrage so um, dass ein neuer HTTP-header wird Hinzugefügt, um es mitREMOTE_USER
als Wert. Natürlich hilft dies nur, wenn Sie eine gewisse Kontrolle über die back-End-server, so dass Sie können machen, verwenden Sie den Wert dieses custom-header anstelle der ursprünglichenREMOTE_USER
variable.Den gewünschten Ausschnitt in ISAPI-Rewrite ist die Globale Konfigurationsdatei (
httpd.conf
) ist wie folgt:Den
RewriteCond
Teil Grenzen diese Regel auf URIs ab/MySite
; fühlen Sie sich frei, zu justieren, wie gebraucht.