Dies ist die letzte Folge (hoffe ich) der langen Geschichte namensAzurblau. URL neu schreiben Authentifizierungsmodus Formulare.
Zurück Folgen „Wie ich in der Regel iis verwandte Themen behandeln“: Ep1. Ep2.
So.
Ich habe URL-Rewrite eingerichtet, um alle Hauptwebseiten-API-Anfragen mit dem Reverse-Proxy zu behandeln und sie an die neue API hinter der Szene zu übergeben.
Alles funktioniert gut außer dem Fall, wenn die API (die neue Web-App) Status 401 zurückgibt (wegen des falschen Tokens usw.).
Der Benutzer sollte die 401 nicht autorisierte sehen, aber es versucht, ihn stattdessen an die "/login?returnUrl=some/api/url/which/returns/401/status"
umleiten.
Wie ich verstehe, geschah es aufgrund der Tatsache, dass ich solche Authentifizierung Setup in web.config
der Hauptwebsite habe.
<authentication mode="Forms">
<forms loginUrl="~/login" timeout="100000" requireSSL="false" />
</authentication>
So ist die Anfrage-Workflow sieht wie folgt aus:
- Benutzer fordert
mainapp.com/api/some/endpoint
. - IIS behandelt sie mit URL Rewrite und Umleitungen an die
apiapp.com/api/some/endpoint
- apiapp.com es Griffe und gibt Status-401
- mainapp.com 401 Status Griffe und gibt 302 Status mit
/login?returnUrl=api/some/endpoint
Warum die p .4 ist passiert? Ich muss nur die Antwort weitergeben und mainapp.com nicht daran denken.
Ist es möglich, es irgendwie zu lösen?
apiapp.com Was Sie erwarten ist ein Reverse-Proxy-Verhalten von mainapp.com. Ich habe Ihren EP1 überprüft, daher nehme ich an, dass Sie Reverse Proxy konfiguriert haben. Dies widerspricht jedoch Ihrem Punkt 2, wie Sie hier erwähnt haben, dass die Anfrage umgeleitet wird. Es wird hilfreich sein, wenn Sie angeben, wo die Websites in Azure gehostet werden, und die URL-Rewrite-Abschnitte für beide Websites. Ohne diese ist es sehr schwierig, etwas zu sagen. Möglicherweise möchten Sie auch die Verfolgung fehlgeschlagener Anfragen für die Webanwendung aktivieren, um dies weiter zu untersuchen. –
URL Nur für die MainApp neu schreiben. Ja beide auf azurblau. Keine Umleitung, nur umschreiben. – korovaisdead
Also, wenn Sie Azure sagen, ist es Azure App Service oder VM oder Cloud-Service? –