Bibliothèques d’authentification d’Azure Active DirectoryAzure Active Directory Authentication Libraries

La bibliothèque d’authentification Azure Active Directory v1.0 (ADAL, Azure Active Directory Authentication Library) permet aux développeurs d’applications d’authentifier les utilisateurs dans une instance locale d’Active Directory (AD) ou dans le cloud, puis d’obtenir des jetons pour sécuriser les appels d’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. La bibliothèque ADAL facilite l’authentification pour les développeurs grâce à des fonctionnalités comme :ADAL makes authentication easier for developers through features such as:

  • Un cache de jeton configurable qui stocke les jetons d’accès et les jetons d’actualisationConfigurable token cache that stores access tokens and refresh tokens
  • L’actualisation automatique des jetons lorsqu’un jeton d’accès expire et qu’un jeton d’actualisation est disponibleAutomatic token refresh when an access token expires and a refresh token is available
  • La prise en charge des appels de méthode asynchronesSupport for asynchronous method calls

Notes

Vous recherchez les bibliothèques Azure AD v2.0 (MSAL) ?Looking for the Azure AD v2.0 libraries (MSAL)? Consultez le guide des bibliothèques MSAL.Checkout the MSAL library guide.

Bibliothèques clientes prises en charge par MicrosoftMicrosoft-supported Client Libraries

PlateformePlatform BibliothèqueLibrary TéléchargementDownload Code sourceSource Code ExempleSample Informations de référenceReference
.NET Client, Windows Store, UWP, Xamarin iOS et Android.NET Client, Windows Store, UWP, Xamarin iOS and Android ADAL .NET v3ADAL .NET v3 NuGetNuGet GitHubGitHub Application de bureauDesktop app RéférenceReference
.NET Client, Windows Store, Windows Phone 8.1.NET Client, Windows Store, Windows Phone 8.1 ADAL .NET v2ADAL .NET v2 NuGetNuGet GitHubGitHub Application de bureauDesktop app
JavaScriptJavaScript ADAL.jsADAL.js GitHubGitHub GitHubGitHub Application à page uniqueSingle-page app
iOS, macOSiOS, macOS ADALADAL GitHubGitHub GitHubGitHub Application iOSiOS app RéférenceReference
AndroidAndroid ADALADAL MavenMaven GitHubGitHub Application AndroidAndroid app JavaDocsJavaDocs
Node.jsNode.js ADALADAL npmnpm GitHubGitHub Application web Node.jsNode.js web app RéférenceReference
JavaJava ADAL4JADAL4J MavenMaven GitHubGitHub Applications web JavaJava web app RéférenceReference
PythonPython ADALADAL GitHubGitHub GitHubGitHub Application Web PythonPython web app RéférenceReference

Bibliothèques serveur prises en charge par MicrosoftMicrosoft-supported Server Libraries

PlateformePlatform BibliothèqueLibrary TéléchargementDownload Code sourceSource Code ExempleSample RéférenceReference
.NET.NET OWIN pour Azure ADOWIN for AzureAD NuGetNuGet GitHubGitHub Application MVCMVC App
.NET.NET OWIN pour OpenIDConnectOWIN for OpenIDConnect NuGetNuGet GitHubGitHub Application webWeb App
.NET.NET OWIN pour WS-FederationOWIN for WS-Federation NuGetNuGet GitHubGitHub Application Web MVCMVC Web App
.NET.NET Extensions de protocole d’identité pour .NET 4.5Identity Protocol Extensions for .NET 4.5 NuGetNuGet GitHubGitHub
.NET.NET Gestionnaire JWT pour .NET 4.5JWT Handler for .NET 4.5 NuGetNuGet GitHubGitHub
Node.jsNode.js Azure AD PassportAzure AD Passport npmnpm GitHubGitHub API WebWeb API

ScénariosScenarios

Voici trois scénarios courants d’utilisation de la bibliothèque ADAL sur un client qui accède à une ressource distante :Here are three common scenarios for using ADAL in a client that accesses a remote resource:

Authentification des utilisateurs d’une application cliente native exécutée sur un appareilAuthenticating users of a native client application running on a device

Dans ce scénario, un développeur dispose d’une application mobile cliente ou de bureau qui doit accéder à une ressource distante, par exemple une 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 n’autorise pas les appels anonymes et doit être appelée dans le contexte d’un utilisateur authentifié.The web API does not allow anonymous calls and must be called in the context of an authenticated user. L’API web est préconfigurée de manière à approuver les jetons d’accès émis par un locataire Azure AD spécifique.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD est préconfiguré pour émettre des jetons d’accès pour cette ressource.Azure AD is pre-configured to issue access tokens for that resource. Pour appeler l’API web à partir du client, le développeur utilise la bibliothèque ADAL afin de faciliter l’authentification auprès d’Azure AD.To invoke the web API from the client, the developer uses ADAL to facilitate authentication with Azure AD. La méthode d’utilisation de la bibliothèque ADAL la plus sûre consiste à faire en sorte qu’elle affiche l’interface utilisateur pour recueillir les informations d’identification de l’utilisateur (sous forme de fenêtre de navigateur).The most secure way to use ADAL is to have it render the user interface for collecting user credentials (rendered as browser window).

La bibliothèque ADAL facilite l’authentification de l’utilisateur, l’obtention d’un jeton d’accès et d’un jeton d’actualisation à partir d’Azure AD, puis l’appel de l’API web à l’aide du jeton d’accès.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.

Pour voir un exemple de code qui illustre ce scénario en utilisant l’authentification auprès d’Azure AD, consultez la section Native Client WPF Application to Web API.For a code sample that demonstrates this scenario using authentication to Azure AD, see Native Client WPF Application to Web API.

Authentification d’une application cliente confidentielle exécutée sur un serveur webAuthenticating a confidential client application running on a web server

Dans ce scénario, un développeur a une application fonctionnant sur un serveur qui doit accéder à une ressource distante, par exemple une 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 n’autorisant pas les appels anonymes, elle doit être appelée à partir d’un service autorisé.The web API does not allow anonymous calls, so it must be called from an authorized service. L’API web est préconfigurée de manière à approuver les jetons d’accès émis par un locataire Azure AD spécifique.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD est préconfiguré pour délivrer des jetons d’accès pour cette ressource à un service avec des informations d’identification client (ID client et secret).Azure AD is pre-configured to issue access tokens for that resource to a service with client credentials (client ID and secret). La bibliothèque ADAL facilite l’authentification du service auprès d’Azure AD en retournant un jeton d’accès qui peut être utilisé pour appeler 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. La bibliothèque ADAL gère également la durée de vie du jeton d'accès en le mettant en cache et en le renouvelant si nécessaire.ADAL also handles managing the lifetime of the access token by caching it and renewing it as necessary. Pour voir un exemple de code qui illustre ce scénario, consultez Daemon console Application to Web API.For a code sample that demonstrates this scenario, see Daemon console Application to Web API.

Authentification d’une application cliente confidentielle exécutée sur un serveur, pour le compte d’un utilisateurAuthenticating a confidential client application running on a server, on behalf of a user

Dans ce scénario, un développeur a une application web fonctionnant sur un serveur qui doit accéder à une ressource distante, par exemple une 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 n’autorisant pas les appels anonymes, elle doit être appelée à partir d’un service autorisé pour le compte d’un utilisateur authentifié.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 est préconfigurée de manière à approuver les jetons d’accès émis par un locataire Azure spécifique, et Azure AD est préconfiguré pour délivrer des jetons d’accès pour cette ressource à un service avec des informations d’identification 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. Une fois l’utilisateur authentifié dans l’application web, l’application peut obtenir d’Azure AD un code d’autorisation pour l’utilisateur.Once the user is authenticated in the web application, the application can get an authorization code for the user from Azure AD. L'application web peut ensuite utiliser ADAL pour obtenir d’Azure AD un jeton d'accès et un jeton d’actualisation pour le compte de l'utilisateur en utilisant le code d'autorisation et les informations d’identification client associés à l'application.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. Une fois l'application web en possession du jeton d'accès, elle peut appeler l'API web jusqu’à expiration du jeton.Once the web application is in possession of the access token, it can call the web API until the token expires. Lorsque le jeton expire, l'application web peut utiliser la bibliothèque ADAL pour obtenir un nouveau jeton d'accès en utilisant le jeton d’actualisation reçu précédemment.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. Pour voir un exemple de code qui illustre ce scénario, consultez Native client to Web API to Web API.For a code sample that demonstrates this scenario, see Native client to Web API to Web API.

Voir aussiSee Also