Azure Active Directory Authentication Library

Azure Active Directory Authentication Library (ADAL) consente agli sviluppatori di applicazioni client di autenticare facilmente gli utenti in Active Directory (AD) locale o nel cloud e di ottenere token di accesso per proteggere le chiamate API. ADAL semplifica l'autenticazione per gli sviluppatori grazie a funzionalità come:

  • Supporto per le chiamate asincrone
  • Cache dei token configurabili in cui archiviare i token di accesso e i token di aggiornamento
  • Aggiornamento del token automatico quando un token di accesso scade ed è disponibile un token di aggiornamento
  • Altro

Poiché ADAL gestisce gli aspetti più complessi, gli sviluppatori possono concentrarsi sulla logica di business e proteggere facilmente le risorse pur non avendo competenze elevate in termini di sicurezza.

Azure AD Authentication Library è disponibile per una vasta gamma di piattaforme.

Librerie client

Piattaforma Libreria Download Codice sorgente Esempio Riferimento
.NET Client, Windows Store, UWP, Xamarin iOS e Android MSAL per .NET (anteprima) NuGet GitHub App desktop Riferimento
JavaScript MSAL per JavaScript (anteprima) GitHub GitHub App a pagina singola Riferimento
iOS MSAL per iOS (anteprima) GitHub GitHub App iOS Riferimento
Android MSAL per Android (anteprima) GitHub GitHub App Android Riferimento
.NET Client, Windows Store, UWP, Xamarin iOS e Android ADAL .NET v3 NuGet GitHub App desktop Riferimento
.NET Client, Windows Store, Windows Phone 8.1 ADAL .NET v2 NuGet GitHub App desktop
JavaScript ADAL.js GitHub GitHub App a pagina singola
iOS, macOS ADAL GitHub GitHub App iOS Riferimento
Android ADAL Repository centrale GitHub App Android JavaDocs
Node.js ADAL npm GitHub
Java ADAL4J GitHub GitHub App Web Java
Python ADAL GitHub GitHub

Librerie server

Piattaforma Libreria Download Codice sorgente Esempio Riferimenti
.NET OWIN per AzureAD NuGet CodePlex Applicazione MVC
.NET OWIN per OpenIDConnect NuGet CodePlex App Web
Node.js Passport Azure AD npm GitHub API Web
.NET OWIN per WS-Federation NuGet CodePlex App Web MVC
.NET Estensioni del protocollo di identità per .NET 4.5 NuGet GitHub
.NET Gestore token JWT per .NET 4.5 NuGet GitHub

Scenari

Di seguito sono illustrati i tre scenari comuni in cui è possibile usare Azure AD Authentication Library per l'autenticazione di un client che accede a una risorsa remota:

Autenticazione di utenti di un'applicazione client nativa in esecuzione su un dispositivo

In questo scenario, uno sviluppatore ha un'applicazione client WPF, che deve accedere a una risorsa remota protetta da Azure AD, ad esempio un'API Web. Ha una sottoscrizione di Azure, sa come richiamare l'API Web downstream e sa qual è il tenant di Azure AD usato dall'API Web. Può quindi usare Azure AD Authentication Library (ADAL) per semplificare l'autenticazione con Azure AD, sia delegando l'esperienza di autenticazione ad ADAL sia gestendo in modo esplicito le credenziali degli utenti. ADAL agevola l'autenticazione dell'utente, il recupero di un token di accesso e di un token di aggiornamento da Azure AD e quindi usa il token di accesso per inviare le richieste all'API Web.

Per un esempio di codice che illustra questo scenario usando l'autenticazione ad Azure AD, vedere chiamata di un'API Web da parte di un'applicazione WPF client nativa.

Autenticazione di un'applicazione client riservata in esecuzione in un server Web

In questo scenario, uno sviluppatore ha un'applicazione in esecuzione in un server che deve accedere a una risorsa remota protetta tramite Azure AD, ad esempio un'API Web. Ha una sottoscrizione di Azure, sa come richiamare il servizio downstream e sa qual è il tenant di Azure AD usato dall'API Web. Può quindi usare Azure AD Authentication Library (ADAL) per semplificare l'autenticazione con Azure AD gestendo in modo esplicito le credenziali dell'applicazione. ADAL semplifica il recupero di un token da Azure AD perché usa le credenziali client dell'applicazione e quindi il token per inviare richieste all'API Web. ADAL gestisce anche la durata del token di accesso memorizzandolo nella cache e rinnovandolo quando necessario. Per un esempio di codice che illustra questo scenario, vedere Daemon console Application to Web API (Accesso di un'applicazione console daemon a un'API Web).

Autenticazione di un'applicazione client riservata in esecuzione in un server, per conto di un utente

In questo scenario, uno sviluppatore ha un'applicazione in esecuzione in un server che deve accedere a una risorsa remota protetta tramite Azure AD, ad esempio un'API Web. La richiesta deve essere inviata per conto di un utente di Azure AD. Ha una sottoscrizione di Azure, sa come richiamare l'API Web downstream e sa qual è il tenant di Azure AD usato dal servizio. Una volta che l'utente ha eseguito l'autenticazione con l'applicazione Web, l'applicazione può ottenere un codice di autorizzazione per l'utente da Azure AD. L'applicazione Web può quindi usare Azure AD Authentication Library (ADAL) per ottenere un token di accesso e un token di aggiornamento per conto di un utente da Azure AD usando il codice di autorizzazione e le credenziali client associati all'applicazione. Non appena l'applicazione Web è in possesso del token di accesso, può chiamare l'API Web fino a quando il token non raggiunge la data di scadenza. Alla scadenza del token, l'applicazione Web potrà usare ADAL per ottenere un nuovo token di accesso usando il token di aggiornamento ricevuto in precedenza. Per un esempio di codice che illustra questo scenario, vedere Native client to Web API to Web API (Accesso di un client nativo a un'API Web).

Vedere anche