2015-10-10 21 views
17

Quando registriamo un'applicazione in Azure Active Directory per l'utilizzo di api grafico, vedo che esistono due tipi di applicazione Web dell'applicazione e applicazione nativa.Qual è la differenza esatta tra app nativa e web in Azure Active Directory

Durante la creazione dell'applicazione Web sono richiesti due valori 1. URL di accesso e 2. URL di ID dell'app. Qual è l'uso di questi valori? Abbiamo richiesto l'URL del mondo reale o solo lo https://localhost:randomePort?

D'altra parte durante la creazione di un'applicazione nativa, posso vedere solo un valore richiesto 'URL di reindirizzamento'.

posso ottenere token di accesso per l'applicazione web utilizzando REST chiamata

POST https://login.microsoftonline.com/<tenant-id>/oauth2/token 

grant_type  client_credentials 
client_id  (the client ID of the calling service application in the AD) 
client secret (the key configured in the calling service application in the AD) 
resource  https://graph.windows.net 

Ma come posso ottenere token di accesso per l'applicazione nativa utilizzando tale chiamata REST? perché non esiste il client secret per l'applicativo nativo

Arrivando alle autorizzazioni, per l'app nativa, posso vedere solo l'opzione delle autorizzazioni delegate disponibile mentre per l'app web posso vedere l'autorizzazione dell'applicazione e l'opzione delle autorizzazioni delegate.

Un'altra cosa, sopra l'esempio di chiamata REST autentica l'applicazione, Come posso autenticare l'utente utilizzando le sue credenziali utilizzando la chiamata REST?

risposta

30

Le applicazioni native sono clienti pubblici nel linguaggio OAuth2. Queste app sono pensate per essere eseguite su un dispositivo e non sono considerate affidabili per mantenere un segreto, quindi la loro entrata nella directory non ha la proprietà corrispondente. Senza un segreto, non c'è modo di affermare l'identità dell'app - quindi tali app non possono ottenere permessi a livello di app e il portale UX lo riflette. Viceversa, le app Web sono, di nuovo nel linguaggio OAuth2, clienti confidenziali. Possono ottenere token delegati per i propri utenti, ma possono anche utilizzare le credenziali del client per ottenere token come se stessi. Le app native possono ottenere token per l'utente tramite la concessione di autorizzazione OAuth2. È possibile trovare una panoramica completa di tutte le topologie supportate allo https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/. Ogni descrizione dello scenario punta a una guida più orientata all'implementazione.

+0

Grazie per l'informazione. Un'altra cosa, dove posso ottenere informazioni dettagliate sulle 'autorizzazioni dell'applicazione' richieste sull'applicazione 'Windows Azure Active Directory' per aggiornare, eliminare, creare oggetti usando l'applicazione web del client. Penso che "Leggi i dati della directory" sarà per la lettura delle informazioni sugli oggetti e "Leggi e scrivi i dati della directory" per l'oggetto di aggiornamento, ma per alcune applicazioni Web non sembra funzionare – sagar

+0

Ciao Sagar, per informazioni sulla mappatura tra la diversa Applicatoin/Autorizzazioni di delega e l'accesso che si desidera all'API Graph si prega di dare un'occhiata a questo post del blog: http://blogs.msdn.com/b/aadgraphteam/archive/2015/10/06/new-graph-api-consent -permissions.aspx e questo post MSDN: https://msdn.microsoft.com/en-us/Library/Azure/Ad/Graph/api/graph-api-permission-scopes –