2014-07-09 6 views
6

Ich habe eine eckige App mit Azure AD für die Authentifizierung registriert. Nach der Authentifizierung leitet Azure eine Weiterleitung zu meiner App durch, wie von der "Antwort-URL" in der Azure-Konfiguration festgelegt.Azure AD Auth Redirect nicht mit konfigurierter Antwort URL

Reply Url = http://myapp.com/#/? 

Die App erwartet URL-Parameter-Fragmente (wie Auth-Code, Token, Zustand, usw.) an die Umleitungs-URL angehängt, die überprüft werden, wenn der Benutzer auth gelungen.

Redirect Url = http://myapp.com/#/?code=<some code>&id_token=<id token>&... 

Dies war vor der Arbeit, aber wie von gestern nun die Umleitungs-URL sieht wie folgt aus

Redirect Url = http://myapp.com/#code=<some code>&id_token=<id token>&... 

sind keine Änderungen an der App config in azur Management-Portal gemacht wurden.

Dieses neue Format bricht das Winkelrouting in der App und die Auth-Parameter werden nicht erfasst/analysiert. Alles nach dem "#" in der Antwort-URL scheint ignoriert zu werden.

Gibt es eine Idee, was bewirkt, dass die Weiterleitungs-URL nicht die vollständige Antwort-URL verwendet, die in Azure AD konfiguriert ist?

+0

Wir erleben das gleiche Problem. Hast du einen Weg gefunden, das zu überwinden? – qmo

+0

Feedback zu Azure hinzugefügt http://feedback.azure.com/forums/169401-azure-active-directory/suggestions/6535001-openidconnect-bug-in-azure-ad-sso-reply-url – qmo

+0

Ich habe das gleiche Problem , außer dass mein redirect_uri nicht einmal # enthält, sondern nur einige normale Abfragezeichenfolgenparameter. Arbeitet gestern, brach heute. Meine Problemumgehung besteht darin, eine Umleitung in der .htaccess einzurichten und diese als redirect_uri zu verwenden, dh /azureredirect.html Umleitung zu /index.php?param1=value1¶m2=value2%{QUERY_STRING} –

Antwort

0

Wie ich weiß, Reply Url konfiguriert AD Azure ist nur die location.origin der umgeleitet URL zu validieren.

Dieses umgeleitet url kann, indem redirectUri Option im adalAuthenticationServiceProvider.init Verfahren konfiguriert werden (wie Sie Angular App machen).

Zurück zu Ihrer Frage, ich habe die gleiche Umleitung URL-Format #id_token=... ohne ? Zeichen. Aber alles gut für mich, denn ich kann auf alle notwendigen Werte zugreifen, indem ich auf adalAuthenticationService.userInfo Objekt zugreife.

Weitere Informationen finden Sie unter here.

Ich hoffe, es hilft in Ihrem Fall.

0

Was ich tat, war HTML5-Modus auf der Angular-Seite zu verwenden.

können Sie sehen, wie ich konfiguriert ADAL und Routing:

$locationProvider.html5Mode(true).hashPrefix("!"); 

var endpoints = { 
    "/api": "https://app-id-uri" 
}; 
adalAuthenticationServiceProvider.init(
{ 
    clientId: "12345678-1234-1234-1234-123456789012", 
    endpoints: endpoints 
}, 
$httpProvider 
); 

Auf Server-Seite war es dann wichtig, dass die Index-Seite, egal zurückzukehren, welchen Weg getroffen wurde, da Routing-Client-Seite durchgeführt wird. Jetzt gibt AAD den Code im Fragment wie gewohnt zurück und auch das Routing funktioniert.

Verwandte Themen