2015-09-23 23 views
7

Possiedo un'applicazione API Web di Azure che è protetta da un titolare di directory attivo in azzurro. Tramite Postman sto cercando di ottenere il token di accesso OAuth2 utilizzando l'helper OAuth2 di Postman. Il token di accesso get richiede quattro bit di informazioni: l'endpoint auth del titolare, l'endpoint del token tenant, l'ID client e il segreto client dell'applicazione titolare associata. Sembra anche che l'url di risposta dell'applicazione inquilino debba includere https://www.getpostman.com/oauth2/callback, che è dove il postino deve recuperare il token nell'helper.azure active directory e postman

Non riesco a farlo funzionare. Il pulsante get token di accesso riporta un errore ma è molto difficile decifrare l'errore: l'URL di debug non rivela nulla.

Qualcuno ha avuto esperienza nel tentativo di ottenere un token di accesso AAD Oauth con l'helper OAuth2 del postino? In tal caso, hai qualche indicazione su dove dovrei cercare di eseguire il debug di cosa sta succedendo?

+0

Hai riscontrato errori specifici? Non ho esperienza specifica con Postman ma hai controllato che l'applicazione in Azure AD abbia le autorizzazioni appropriate richieste e convalidate che i token e le chiavi siano tutti corretti? Hai anche guardato questo post su [Windows IT Pro] (http://windowsitpro.com/azure/q-what-postman-and-how-do-i-use-it-azure)? –

+1

Quando ho ricevuto una risposta errata, l'URL di debug che hai menzionato, in realtà aveva una descrizione molto dettagliata dell'errore, stranamente * nella stringa di query dell'URL * – bkwdesign

risposta

0

Sto tentando lo stesso flusso di autenticazione con l'applicazione postino (vs estensione). Guardando il violinista sembra che la concessione di autorizzazione sta tornando come vedo una risposta da AAD del modulo, GET https://www.getpostman.com/oauth2/callback?code=AAABAAAAiL9Kn2Z27UubvWFPbm0gLTo3oWq ....

Sto assumendo che il "codice" è la concessione di autorizzazione perché se provo a utilizzare come token di accesso non autorizzato. Anche la sessione di violinista risponde con un 301 spostato in modo permanente a https://app.getpostman.com/oauth2/callback ...

Questa è la mia esperienza con AAD e Postman. Per prima cosa devi verificare di essere stato autenticato con successo tramite AAD e Postman.

2

L'estensione manca purtroppo di un campo critico per Azure AD. AAD deve sapere per quale risorsa desideri il token, poiché un token non funzionerà per tutte le API per cui la tua app ha permessi. Il codice di autorizzazione viene effettivamente recuperato correttamente, ma la richiesta all'endpoint del token non riesce con un messaggio di errore sull'identificatore di risorsa mancante. Pertanto non è possibile utilizzarlo con AAD, né il codice di autorizzazione né il flusso di credenziali del client funzionano.

2

È possibile impostare l'ID risorsa come parametro per Auth URL.

Auth URL: https://_______________?resource=https://_________ 
+0

FWIW - l'ID della risorsa, a quanto ho capito, è un URI. non necessariamente un URL. Nella registrazione del tenant AD, il campo è chiamato: 'URI ID app' – bkwdesign

0

adattati da this post

  1. istituito un apposito 'postino-test' registrazione app in AD inquilino, con il permesso di accedere al tuo API di destinazione. Assicurati che abbia già menzionato lo postman callback url.
  2. riempimento in forma di supporto OAuth del postino con i seguenti dati:

    • Token Nome - Un nome per salvare il token.
    • Auth URL - https://login.microsoftonline.com/{tenant}/oauth2/authorize?resource={testing-appId-uri}
    • token di accesso URL-https://login.microsoftonline.com/{tenant}/oauth2/token
    • Client ID - Cliente Id dalla scheda Configura di “postino-test” app.
    • Segreto client - Segreto client copiato dalla scheda di configurazione dell'app "postman-test".
    • omologazione - codice di autorizzazione

Nota:

  • tenant Può essere il nome della directory attiva o TenantId dell'amministratore, che ha creato la directory attiva.

  • testing-appId-uri è l'ID di applicazione Uri dell'applicazione che si sta testando. Dovrebbe includere http: // o https: // e non è necessario eseguire l'escape