Azure Active Directory Authentication LibraryAzure Active Directory Authentication Libraries

Azure Active Directory Authentication Library (ADAL) versione 1.0 consente agli sviluppatori di applicazioni di autenticare gli utenti in Active Directory (AD) locale o nel cloud e di ottenere token per proteggere le chiamate API.The Azure Active Directory Authentication Library (ADAL) v1.0 enables application developers to authenticate users to cloud or on-premises Active Directory (AD), and obtain tokens for securing API calls. ADAL semplifica l'autenticazione per gli sviluppatori grazie a funzionalità come:ADAL makes authentication easier for developers through features such as:

  • Cache dei token configurabili in cui archiviare i token di accesso e i token di aggiornamentoConfigurable token cache that stores access tokens and refresh tokens
  • Aggiornamento del token automatico quando un token di accesso scade ed è disponibile un token di aggiornamentoAutomatic token refresh when an access token expires and a refresh token is available
  • Supporto per le chiamate di metodo asincroneSupport for asynchronous method calls

Nota

Si cercano le librerie v2.0 di Azure AD (MSAL)?Looking for the Azure AD v2.0 libraries (MSAL)? Controllare la Guida alle librerie MSAL.Checkout the MSAL library guide.

Librerie client supportate da MicrosoftMicrosoft-supported Client Libraries

PiattaformaPlatform LibreriaLibrary DownloadDownload Codice sorgenteSource Code EsempioSample RiferimentiReference
.NET Client, Windows Store, UWP, Xamarin iOS e Android.NET Client, Windows Store, UWP, Xamarin iOS and Android ADAL .NET v3ADAL .NET v3 NuGetNuGet GitHubGitHub App desktopDesktop app RiferimentoReference
.NET Client, Windows Store, Windows Phone 8.1.NET Client, Windows Store, Windows Phone 8.1 ADAL .NET v2ADAL .NET v2 NuGetNuGet GitHubGitHub App desktopDesktop app
JavaScriptJavaScript ADAL.jsADAL.js GitHubGitHub GitHubGitHub App a pagina singolaSingle Page App
iOS, macOSiOS, macOS ADALADAL GitHubGitHub GitHubGitHub App iOSiOS app RiferimentoReference
AndroidAndroid ADALADAL Repository centraleThe Central Repository GitHubGitHub App AndroidAndroid app JavaDocsJavaDocs
Node.jsNode.js ADALADAL npmnpm GitHubGitHub App Web Node.jsNode.js web app RiferimentoReference
JavaJava ADAL4JADAL4J MavenMaven GitHubGitHub App Web JavaJava web app RiferimentoReference
PythonPython ADALADAL GitHubGitHub GitHubGitHub App Web PythonPython web app RiferimentoReference

Librerie server supportate da MicrosoftMicrosoft-supported Server Libraries

PiattaformaPlatform LibreriaLibrary DownloadDownload Codice sorgenteSource Code EsempioSample RiferimentiReference
.NET.NET OWIN per AzureADOWIN for AzureAD NuGetNuGet CodePlexCodePlex Applicazione MVCMVC App
.NET.NET OWIN per OpenIDConnectOWIN for OpenIDConnect NuGetNuGet CodePlexCodePlex App WebWeb App
.NET.NET OWIN per WS-FederationOWIN for WS-Federation NuGetNuGet CodePlexCodePlex App Web MVCMVC Web App
.NET.NET Estensioni del protocollo di identità per .NET 4.5Identity Protocol Extensions for .NET 4.5 NuGetNuGet GitHubGitHub
.NET.NET Gestore token JWT per .NET 4.5JWT Handler for .NET 4.5 NuGetNuGet GitHubGitHub
Node.jsNode.js Passport Azure ADAzure AD Passport npmnpm GitHubGitHub API WebWeb API

ScenariScenarios

Ecco tre scenari comuni per l'uso di ADAL in un client che accede a una risorsa remota:Here are three common scenarios for using ADAL in a client that accesses a remote resource:

Autenticazione di utenti di un'applicazione client nativa in esecuzione su un dispositivoAuthenticating users of a native client application running on a device

In questo scenario uno sviluppatore ha un'applicazione client per dispositivi mobili o desktop che deve accedere a una risorsa remota, ad esempio un'API Web.In this scenario, a developer has a mobile client or desktop application that needs to access a remote resource, such as a web API. L'API Web non consente chiamate anonime e deve essere chiamata nel contesto di un utente autenticato.The web API does not allow anonymous calls and must be called in the context of an authenticated user. L'API Web è stata preconfigurata per considerare attendibili i token di accesso rilasciati da uno specifico tenant di Azure AD.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD è preconfigurato per rilasciare token di accesso per tale risorsa.Azure AD is pre-configured to issue access tokens for that resource. Per chiamare l'API Web dal client, lo sviluppatore usa ADAL per semplificare l'autenticazione con Azure AD.To invoke the web API from the client, the developer uses ADAL to facilitate authentication with Azure AD. Il modo più sicuro per usare ADAL è fare in modo che esegua il rendering dell'interfaccia utente per raccogliere le credenziali dell'utente (il rendering viene eseguito come finestra del browser).The most secure way to use ADAL is to have it render the user interface for collecting user credentials (rendered as browser window).

ADAL agevola l'autenticazione dell'utente, il recupero di un token di accesso e di un token di aggiornamento da Azure AD e quindi chiama l'API Web usando il token di accesso.ADAL makes it easy to authenticate the user, obtain an access token and refresh token from Azure AD, and then call the web API using the access token.

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.For a code sample that demonstrates this scenario using authentication to Azure AD, see Native Client WPF Application to Web API.

Autenticazione di un'applicazione client riservata in esecuzione in un server WebAuthenticating a confidential client application running on a web server

In questo scenario uno sviluppatore ha un'applicazione in esecuzione in un server che deve accedere a una risorsa remota, ad esempio un'API Web.In this scenario, a developer has an application running on a server that needs to access a remote resource, such as a web API. L'API Web non consente chiamate anonime, pertanto deve essere chiamata da un servizio autorizzato.The web API does not allow anonymous calls, so it must be called from an authorized service. L'API Web è stata preconfigurata per considerare attendibili i token di accesso rilasciati da uno specifico tenant di Azure AD.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD è preconfigurato per rilasciare token di accesso per quella risorsa a un servizio con le credenziali del client (ID client e segreto).Azure AD is pre-configured to issue access tokens for that resource to a service with client credentials (client ID and secret). ADAL facilita l'autenticazione del servizio con Azure AD restituendo un token di accesso che può essere usato per chiamare l'API Web.ADAL facilitates authentication of the service with Azure AD returning an access token that can be used to call the web API. ADAL gestisce anche la durata del token di accesso memorizzandolo nella cache e rinnovandolo quando necessario.ADAL also handles managing the lifetime of the access token by caching it and renewing it as necessary. 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).For a code sample that demonstrates this scenario, see Daemon console Application to Web API.

Autenticazione di un'applicazione client riservata in esecuzione in un server, per conto di un utenteAuthenticating a confidential client application running on a server, on behalf of a user

In questo scenario uno sviluppatore ha un'applicazione Web in esecuzione in un server che deve accedere a una risorsa remota, ad esempio un'API Web.In this scenario, a developer has a web application running on a server that needs to access a remote resource, such as a web API. L'API Web non consente chiamate anonime, pertanto deve essere chiamata da un servizio autorizzato per conto di un utente autenticato.The web API does not allow anonymous calls, so it must be called from an authorized service on behalf of an authenticated user. L'API Web è stata preconfigurata per considerare attendibili i token di accesso rilasciati da un tenant di Azure specifico e Azure AD è preconfigurato per rilasciare token di accesso per quella risorsa a un servizio con le credenziali del client.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant, and Azure AD is pre-configured to issue access tokens for that resource to a service with client credentials. Una volta che l'utente ha eseguito l'autenticazione nell'applicazione Web, l'applicazione può ottenere un codice di autorizzazione per l'utente da Azure AD.Once the user is authenticated in the web application, the application can get an authorization code for the user from 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.The web application can then use ADAL to obtain an access token and refresh token on behalf of a user using the authorization code and client credentials associated with the application from Azure AD. 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.Once the web application is in possession of the access token, it can call the web API until the token expires. 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.When the token expires, the web application can use ADAL to get a new access token by using the refresh token that was previously received. 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).For a code sample that demonstrates this scenario, see Native client to Web API to Web API.

Vedere ancheSee Also