Ho un'istanza IIS configurata con Autenticazione Windows e Riscrittura URL, quindi funziona fondamentalmente come proxy inverso. Il mio server di backend (eseguito su Linux) si aspetta un'intestazione REMOTE_USER
. È possibile configurare IIS per passare le informazioni sull'utente autenticato al server di back-end?Server HTTP dietro IIS: passa le intestazioni di autenticazione
risposta
Se IIS è configurato per Windows Auth
, quindi ARR
eseguirà la verifica e inoltrerà le richieste solo dopo che l'utente è stato autenticato.
È possibile inoltrare le intestazioni personalizzate con la richiesta utilizzando una convenzione di denominazione HTTP
e l'elemento serverVariables
nelle regole di riscrittura. Ad esempio, nel seguente esempio la variabile server LOCAL_ADDR
viene inoltrata come intestazione denominata X-MY-HEADER
.
<rule name="Reverse Proxy to MySite" stopProcessing="true">
<match url="^MySite/(.*)" />
<serverVariables>
<set name="HTTP_X_MY_HEADER" value="{LOCAL_ADDR}" />
</serverVariables>
<action type="Rewrite" url="http://www.myothersite.com/{R:1}" />
</rule>
Purtroppo non è possibile utilizzare questa tecnica per inoltrare un colpo di testa REMOTE_USER
. Questo perché quando è presente l'intestazione Authorization
, la richiesta viene inoltrata prima dell'esecuzione del modulo di autenticazione e quindi le variabili del server di autenticazione non sono impostate (quando mappate alle intestazioni vengono semplicemente visualizzate in bianco).
È tuttavia possibile impostare IIS per utilizzare Basic Windows Auth
e quindi estrarre il nome utente dall'intestazione Base64
codificata Authorization
sul server Linux.
Ho avuto un problema simile e ho pensato di menzionare come sono riuscito a risolvere il problema. Ho installato Helicon ISAPI-Rewrite 3 Lite, che è un filtro di richiesta ISAPI. Poiché viene eseguito dopo la fase di autenticazione nella pipeline, ha accesso alla variabile REMOTE_USER
e può riscrivere la richiesta in modo tale che venga aggiunta una nuova intestazione HTTP con il valore REMOTE_USER
. Naturalmente questo aiuta solo se hai un certo controllo sul server di backend in modo da poter utilizzare il valore di questa intestazione personalizzata invece della variabile originale REMOTE_USER
.
Il frammento di richieste nei ISAPI-riscrittura del file di configurazione globale (httpd.conf
) è la seguente:
RewriteBase/
RewriteCond %{REQUEST_URI} ^/MySite.*
RewriteHeader X-Remote-User: .* %{REMOTE_USER}
I RewriteCond
limiti parte questa regola URI che iniziano con /MySite
; sentiti libero di regolarlo come necessario.
- 1. Server HTTP dietro NAT
- 2. Comprimere le intestazioni Http
- 3. Passa intestazioni HTTP personalizzate a richieste RESTful
- 4. JSF, sovrascrive le intestazioni HTTP
- 5. Come ottenere le intestazioni HTTP
- 6. Errore HTTP 500.23 - Errore server interno Server Web IIS locale
- 7. Server Websocket dietro a IIS 7 Reverse Proxy
- 8. Autenticazione HTTP CURL sul lato server
- 9. Le intestazioni HTTP non vengono modificate: yii2
- 10. jQuery Autenticazione HTTP
- 11. Autenticazione integrata di Windows con IIS, Firefox e SQL Server
- 12. cache di autenticazione http
- 13. Invio di intestazioni HTTP con richiesta HTTP Web per autenticazione NTLM
- 14. Configurare le impostazioni di autenticazione IIS utilizzando la classe ServerManager
- 15. WebServiceHostFactory e autenticazione IIS
- 16. XmlSlurper.parse (uri) con autenticazione di base HTTP
- 17. intestazioni di autenticazione di base angularjs
- 18. IE/IIS problema di autenticazione integrata
- 19. Passa le intestazioni utilizzando l'interfaccia utente Swagger di ServiceStack
- 20. Come ottenere le intestazioni http nella beuta?
- 21. Non propagare le intestazioni sui reindirizzamenti HTTP
- 22. L'invio di autenticazione nelle intestazioni PHP arricciare
- 23. Leggi HTTP Post intestazioni
- 24. Come inoltrare le intestazioni sul reindirizzamento HTTP
- 25. ASP.NET che passa le credenziali di autenticazione di Windows
- 26. MVC4/IIS/Autenticazione moduli Autenticazione SSO
- 27. Laravel 5: autenticazione HTTP Apache php
- 28. Ajax: autenticazione di base HTTP e cookie di autenticazione
- 29. Genera PDF dietro il muro di autenticazione
- 30. Riscrivi le intestazioni di risposta con il nodo-http-proxy