Bibliotecas de autenticación de Azure Active DirectoryAzure Active Directory Authentication Libraries

La Biblioteca de autenticación de Azure Active Directory (ADAL) versión 1.0 permite a los desarrolladores de aplicaciones autenticar a los usuarios en Active Directory (AD) local o en la nube y obtener tokens para proteger las llamadas 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 facilita la autenticación para los desarrolladores a través de características como:ADAL makes authentication easier for developers through features such as:

  • Una memoria caché de tokens configurable que almacena tokens de acceso y tokens de actualizaciónConfigurable token cache that stores access tokens and refresh tokens
  • Actualización de tokens automática disponible cuando expira un token de acceso y un token de actualizaciónAutomatic token refresh when an access token expires and a refresh token is available
  • Compatibilidad con las llamadas a métodos asincrónicosSupport for asynchronous method calls

Nota

¿Busca las bibliotecas de Azure AD v2.0 (MSAL)?Looking for the Azure AD v2.0 libraries (MSAL)? Revise la Guía de la biblioteca MSAL.Checkout the MSAL library guide.

Bibliotecas de cliente compatibles con MicrosoftMicrosoft-supported Client Libraries

PlataformaPlatform BibliotecaLibrary DescargarDownload Código fuenteSource Code MuestraSample ReferenciaReference
Cliente .NET, Tienda Windows, UWP, Xamarin iOS y Android.NET Client, Windows Store, UWP, Xamarin iOS and Android ADAL .NET v3ADAL .NET v3 NuGetNuGet GitHubGitHub Aplicación de escritorioDesktop app ReferenciaReference
Cliente .NET, Tienda Windows, Windows Phone 8.1.NET Client, Windows Store, Windows Phone 8.1 ADAL .NET v2ADAL .NET v2 NuGetNuGet GitHubGitHub Aplicación de escritorioDesktop app
JavaScriptJavaScript ADAL.jsADAL.js GitHubGitHub GitHubGitHub Aplicación de una sola páginaSingle-page app
iOS, macOSiOS, macOS ADALADAL GitHubGitHub GitHubGitHub Aplicación para iOSiOS app ReferenciaReference
AndroidAndroid ADALADAL MavenMaven GitHubGitHub Aplicación para AndroidAndroid app JavaDocsJavaDocs
Node.jsNode.js ADALADAL npmnpm GitHubGitHub Aplicación web para Node.jsNode.js web app ReferenciaReference
JavaJava ADAL4JADAL4J MavenMaven GitHubGitHub Aplicaciones web de JavaJava web app ReferenciaReference
PythonPython ADALADAL GitHubGitHub GitHubGitHub Aplicación web de PythonPython web app ReferenciaReference

Bibliotecas de servidor compatibles con MicrosoftMicrosoft-supported Server Libraries

PlataformaPlatform BibliotecaLibrary DescargarDownload Código fuenteSource Code MuestraSample ReferenciaReference
.NET.NET OWIN para AzureADOWIN for AzureAD NuGetNuGet GitHubGitHub Aplicación MVCMVC App
.NET.NET OWIN para OpenIDConnectOWIN for OpenIDConnect NuGetNuGet GitHubGitHub Aplicación webWeb App
.NET.NET OWIN para WS-FederationOWIN for WS-Federation NuGetNuGet GitHubGitHub Aplicación web MVCMVC Web App
.NET.NET Extensiones de protocolo de identidad para .NET Framework 4.5Identity Protocol Extensions for .NET 4.5 NuGetNuGet GitHubGitHub
.NET.NET Controlador JWT para .NET 4.5JWT Handler for .NET 4.5 NuGetNuGet GitHubGitHub
Node.jsNode.js Azure AD PassportAzure AD Passport npmnpm GitHubGitHub API webWeb API

EscenariosScenarios

Presentamos tres escenarios comunes para el uso de ADAL en un cliente que accede a un recurso remoto:Here are three common scenarios for using ADAL in a client that accesses a remote resource:

Autenticación de los usuarios de una aplicación cliente nativa que se ejecuta en un dispositivoAuthenticating users of a native client application running on a device

En este escenario, un desarrollador tiene un cliente móvil o una aplicación de escritorio que necesita acceso a un recurso remoto, como una 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. La API web no admite llamadas anónimas y se debe llamar en el contexto de un usuario autenticado.The web API does not allow anonymous calls and must be called in the context of an authenticated user. La API web está preconfigurada para confiar en los tokens de acceso emitidos por un inquilino de Azure AD determinado.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD está preconfigurado para emitir tokens de acceso para ese recurso.Azure AD is pre-configured to issue access tokens for that resource. Para invocar la API web desde el cliente, el desarrollador usa ADAL a fin de facilitar la autenticación con Azure AD.To invoke the web API from the client, the developer uses ADAL to facilitate authentication with Azure AD. El modo más seguro de usar ADAL es hacer que represente la interfaz de usuario para recopilar las credenciales de usuario (se representa como una ventana del explorador).The most secure way to use ADAL is to have it render the user interface for collecting user credentials (rendered as browser window).

ADAL hace que resulte fácil autenticar el usuario, obtener un token de acceso y un token de actualización de Azure AD, y luego llamar a la API web mediante el token de acceso.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.

Para un código de ejemplo que muestra este escenario con autenticación en Azure AD, vea Aplicación WPF cliente nativa para API web.For a code sample that demonstrates this scenario using authentication to Azure AD, see Native Client WPF Application to Web API.

Autenticación de una aplicación cliente confidencial que se ejecuta en un servidor webAuthenticating a confidential client application running on a web server

En este escenario, un desarrollador tiene una aplicación en ejecución en un servidor que necesita acceso a un recurso remoto, como una 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. La API no admite llamadas anónimas, por lo que debe llamarse desde un servicio autorizado.The web API does not allow anonymous calls, so it must be called from an authorized service. La API web está preconfigurada para confiar en los tokens de acceso emitidos por un inquilino de Azure AD determinado.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD está preconfigurado para emitir tokens de acceso para ese recurso a un servicio con las credenciales del cliente (identificador y secreto de cliente).Azure AD is pre-configured to issue access tokens for that resource to a service with client credentials (client ID and secret). ADAL facilita la autenticación del servicio con Azure AD al devolver un token de acceso que se puede usar para llamar a la 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 también controla la administración de la duración del token de acceso almacenándolo en la caché y renovándolo cuando sea necesario.ADAL also handles managing the lifetime of the access token by caching it and renewing it as necessary. Para un código de ejemplo que muestra este escenario, vea Aplicación de consola demonio para API web.For a code sample that demonstrates this scenario, see Daemon console Application to Web API.

Autenticación de una aplicación cliente confidencial que se ejecuta en un servidor web en nombre de un usuarioAuthenticating a confidential client application running on a server, on behalf of a user

En este escenario, un desarrollador tiene una aplicación web en ejecución en un servidor que necesita acceso a un recurso remoto, como una 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. La API no admite llamadas anónimas, por lo que debe llamarse desde un servicio autorizado en nombre de un usuario autenticado.The web API does not allow anonymous calls, so it must be called from an authorized service on behalf of an authenticated user. La API web está preconfigurada para confiar en los tokens de acceso emitidos por un inquilino de Azure determinado, y Azure AD está preconfigurado para emitir tokens de acceso para ese recurso a un servicio con las credenciales del cliente.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. Cuando el usuario se autentica en la aplicación web, la aplicación puede obtener un código de autorización para el usuario de Azure AD.Once the user is authenticated in the web application, the application can get an authorization code for the user from Azure AD. La aplicación web puede luego usar ADAL para obtener un token de acceso y un token de actualización en nombre del usuario con las credenciales de cliente y el código de autorización asociados a la aplicación de Azure AD.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. Cuando la aplicación web está en posesión del token de acceso, puede llamar a la API web hasta que el token expire.Once the web application is in possession of the access token, it can call the web API until the token expires. Cuando el token expira, la aplicación web puede usar ADAL para obtener un nuevo token de acceso con el token de actualización que recibió anteriormente.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. Para un código de ejemplo que muestra este escenario, vea Cliente nativo de API web a API web.For a code sample that demonstrates this scenario, see Native client to Web API to Web API.

Otras referenciasSee Also