Applicazioni a pagina singola

Avviso

Questo contenuto riguarda l'endpoint di Azure AD v1.0 meno recente. Per i nuovi progetti, usare Microsoft Identity Platform.

Le applicazioni a pagina singola sono in genere strutturate come livello di presentazione JavaScript (front-end) in esecuzione nel browser e un back-end API Web eseguito in un server e implementa la logica di business dell'applicazione. Per altre informazioni sulla concessione di autorizzazione implicita e per decidere se è adatta allo scenario dell'applicazione, vedere Informazioni sul flusso di concessione implicita OAuth2 in Azure Active Directory.

In questo scenario, quando l'utente accede, il front-end JavaScript utilizza Active Directory Authentication Library per JavaScript (ADAL.JS) e la concessione di autorizzazione implicita per ottenere un token ID (id_token) da Azure AD. Il token viene memorizzato nella cache e il client lo associa alla richiesta come token di connessione quando si effettuano chiamate al relativo back-end dell'API Web, protetto tramite il middleware OWIN.

Diagramma

Diagramma Applicazione a pagina singola

Flusso del protocollo

  1. L'utente passa all'applicazione Web.
  2. L'applicazione restituisce al browser il front-end JavaScript (livello di presentazione).
  3. L'utente avvia l'accesso, ad esempio facendo clic su un collegamento di accesso. Il browser invia una richiesta GET all'endpoint di autorizzazione di Azure AD per richiedere un token ID. Nei parametri di query di questa richiesta sono inclusi l'URL di risposta e l'ID applicazione.
  4. Azure AD convalida l'URL di risposta confrontandolo con l'URL di risposta registrato, configurato nel portale di Azure.
  5. L'utente accede nella pagina di accesso.
  6. Se l'autenticazione ha esito positivo, Azure AD crea un token ID e lo restituisce come frammento di URL (#) all'URL di risposta dell'applicazione. Per un'applicazione di produzione, questo URL di risposta deve essere HTTPS. Il token restituito include le attestazioni sull'utente e Azure AD richieste dall'applicazione per convalidare il token.
  7. Il codice client JavaScript in esecuzione nel browser estrae il token dalla risposta da usare per proteggere le chiamate al back-end dell'API Web dell'applicazione.
  8. Il browser chiama il back-end dell'API Web dell'applicazione con il token ID nell'intestazione dell'autorizzazione. Il servizio di autenticazione di Azure AD emette un token ID che può essere usato come token di connessione se la risorsa è uguale all'ID client (in questo caso la condizione è vera perché l'API Web è il back-end stesso dell'app).

Esempi di codice

Vedere gli esempi di codice per gli scenari di applicazioni a pagina singola. Consultare spesso questa pagina perché vengono aggiunti regolarmente nuovi esempi.

Registrazione delle app

  • Tenant singolo: se si sta creando un'applicazione solo per l'organizzazione, è necessario registrarla nella directory aziendale usando il portale di Azure.
  • Multi-tenant: se si sta creando un'applicazione che può essere usata dagli utenti esterni all'organizzazione, deve essere registrata nella directory dell'azienda, ma deve anche essere registrata nella directory di ogni organizzazione che utilizzerà l'applicazione. Per rendere disponibile l'applicazione nella propria directory, è possibile includere un processo di accesso per i clienti che permetta loro di concedere il consenso all'applicazione. Al momento dell'iscrizione all'applicazione, viene visualizzata una finestra di dialogo in cui sono indicate le autorizzazioni richieste dall'applicazione e quindi viene presentata l'opzione per il consenso. A seconda delle autorizzazioni richieste, è possibile che il consenso debba essere fornito da un amministratore dell'altra organizzazione. Quando l'utente o l'amministratore acconsente, l'applicazione viene registrata nella directory.

Dopo la registrazione dell'applicazione, è necessario configurarla per l'uso del protocollo di concessione implicita OAuth 2.0. Per impostazione predefinita, questo protocollo è disabilitato per le applicazioni. Per abilitare il protocollo di concessione implicita OAuth2 per l'applicazione, modificare il manifesto dell'applicazione dal portale di Azure e impostare il valore "oauth2AllowImplicitFlow" su true. Per altre informazioni, vedere Manifesto dell'applicazione.

Scadenza del token

L'uso di ADAL.js consente di:

  • Aggiornare un token scaduto
  • Richiedere un token di accesso per chiamare una risorsa API Web

Dopo che l'autenticazione ha esito positivo, Azure AD scrive un cookie nel browser dell'utente per stabilire una sessione. Tenere presente che la sessione esiste tra l'utente e Azure AD e non tra l'utente e l'applicazione Web. Quando un token scade, ADAL.js usa questa sessione per ottenere automaticamente un altro token. ADAL.js usa un iFrame nascosto per inviare e ricevere la richiesta tramite il protocollo di concessione implicita OAuth. ADAL.js può anche usare questo stesso meccanismo per ottenere automaticamente i token di accesso per altre risorse API Web chiamate dall'applicazione, purché queste risorse supportino la condivisione di risorse tra le origini (CORS), siano registrate nella directory dell'utente e qualsiasi consenso richiesto sia stato fornito dall'utente durante l'accesso.

Passaggi successivi