2014-09-29 14 views
7

Abbiamo un sito Web (costruito su un framework php) in cui forniamo strumenti didattici online per insegnanti/studenti. Abbiamo effettuato un'integrazione OAuth con google.com in cui gli utenti possono "registrarsi" e "accedere" al nostro sito utilizzando i propri account Google (potrebbe essere un account personale Gmail o un membro di un dominio Google Apps).L'integrazione OAuth con O365 non riesce con errore AADSTS65005

Stiamo provando a fare un'integrazione simile con O365 dove il nostro sito Web può chiedere a O365 l'e-mail e il nome/cognome degli utenti in modo che possiamo creare un account per loro sul nostro sito e, una volta creato l'account, registrarli in Abbiamo creato un elenco di applicazioni in Azure -> Active Directory, e abbiamo generato l'ID client e il segreto e le abbiamo inserite nel codice PHP. Il flusso di lavoro OAuth described here funziona fino al punto in cui provo e richiede il token di accesso utilizzando una richiesta POST a https://login.windows.net/common/oauth2/token. Si reindirizza indietro al mio redirect_uri ma invece di darmi il codice di autenticazione, mi dà questi params nella URL:

[error] => access_denied 
[error_description] => AADSTS65005: The client application has requested access to resource 'https://outlook.office365.com/'. This request has failed because the client has not specified this resource in its requiredResourceAccess list. 
Trace ID: xxxxxx 
Correlation ID: xxxxxx 
Timestamp: 2014-09-29 06:28:25Z 
[state] => xxxxxx 

Tutto quello che serve è per O365 a darmi i nomi di posta elettronica e F/L dell'utente. Sicuramente c'è una soluzione rapida per questo che mi manca?

risposta

11

Per impostazione predefinita, un'applicazione raccomandata è configurato per richiedere "Leggi profilo dell'utente", che un tempo acconsentito da parte dell'utente, permette l'applicazione per ottenere un token dell'utente (id gettone se usando OpenID Connect) e leggere il sottoscritto nel profilo dell'utente (incluso il loro indirizzo e-mail o gli indirizzi) quando si chiama lo Azure AD Graph API. Le app protette da Azure AD devono attualmente configurare gli ambiti di autorizzazione che richiedono in anticipo (come parte dell'esperienza di registrazione dell'app, nella sezione "Autorizzazioni per altre applicazioni"). Qui sembra che tu abbia specificato Outlook.com come la risorsa per la quale desideri un codice e un token di accesso, ma la tua app non è configurata per consentire l'accesso a O365 Outlook.com/Exchange Online.

Provare a impostare la risorsa nella richiesta in Azure AD - https://graph.windows.net/. Che dovrebbe lavoro per voi. È quindi possibile scambiare il codice per un token di accesso per chiamare l'API Graph di Azure AD.

Spero che questo aiuti

+0

Ciao Dan, ho provato il passaggio della risorsa per https://graph.windows.net/ ma ora sono presentato con questo errore: AADSTS50001: Resource 'http: // grafico. windows.net/ 'non è registrato per l'account. Sul lato configurazione dell'applicazione, tutto quello che vedo come opzioni per il permesso sono questi:! [permessi] (http://i.imgur.com/Jha9O1O.png) Grazie! – user2950957

+0

Sono riuscito a farlo funzionare ora. La tua risposta è stata corretta. Ho dovuto cambiare l'URL per usare https invece di http. – user2950957

+0

Se potessi invitare ancora un milione di volte, lo farei! –

Problemi correlati