2014-07-09 7 views
6

Ho registrato un'app angolare con Azure AD per l'autenticazione. Dopo l'autenticazione, Azure reindirizza nuovamente alla mia app come designato dall'URL di risposta nella configurazione di Azure.Il reindirizzamento di autenticazione di Azure AD non utilizza l'url di risposta configurato

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

L'applicazione prevede un parametro URL frammenti (come il codice di autenticazione, segno, stato, ecc) aggiunti all'URL di reindirizzamento, che vengono verificati se autenticazione utente riuscita.

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

Questo stava lavorando prima, ma come di ieri l'URL di reindirizzamento ora sembra sono state fatte questa

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

Nessuna modifica alla configurazione di applicazione in portale di gestione azzurro.

Questo nuovo formato interrompe il routing angolare nell'app ei parametri di autenticazione non vengono acquisiti/analizzati. Tutto dopo il "#" nell'URL di risposta sembra essere ignorato.

Qualche idea su cosa causa l'url di reindirizzamento a non utilizzare l'url completo di risposta configurato in Azure AD?

+0

Stiamo riscontrando lo stesso problema. Hai trovato un modo per superare questo? – qmo

+0

Aggiunto feedback su Azure http://feedback.azure.com/forums/169401-azure-active-directory/suggestions/6535001-openidconnect-bug-in-azure-ad-sso-reply-url – qmo

+0

Ho lo stesso problema , tranne il mio redirect_uri non ha nemmeno # in esso, solo alcuni normali parametri di stringa di query. Lavorava ieri, ha rotto oggi. La mia soluzione è impostare un reindirizzamento nel file .htaccess e utilizzarlo come redirect_uri, ovvero /azureredirect.html reindirizzare a /index.php?param1=value1¶m2=value2%{QUERY_STRING} –

risposta

0

Per quanto ne so, Reply Url configurato su Azure AD è solo per convalidare la location.origin dell'url reindirizzato.

Questo reindirizzato URL può essere configurato impostando redirectUri opzione nel metodo adalAuthenticationServiceProvider.init (come si sta facendo app angolare).

Torna alla tua domanda, ho lo stesso formato di URL di redirezione #id_token=... senza ? carattere. Ma va tutto bene perché posso accedere a tutti i valori necessari accedendo all'oggetto adalAuthenticationService.userInfo.

Check out here per informazioni più dettagliate.

Spero che ti aiuti nel tuo caso.

0

Quello che ho fatto è stato utilizzare la modalità HTML5 sul lato Angolare.

Si può vedere come ho configurato ADAL e il routing:

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

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

Sul lato server è stato allora importante per tornare alla pagina indice non importa quale percorso è stato colpito, dal momento che il routing è fatto sul lato client. Ora AAD restituisce il codice nel frammento come al solito e funziona anche tutto il routing.