Azure Active Directory-AuthentifizierungsbibliothekenAzure Active Directory Authentication Libraries

Azure Active Directory Authentication Library (ADAL) v1.0 ermöglicht es Entwicklern von Anwendungen, eine Benutzerauthentifizierung mit Active Directory (AD) (Cloud oder lokal) bereitzustellen und Token zur Absicherung von API-Aufrufen abzurufen.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 bietet Entwicklern folgende Features, um die Authentifizierung zu vereinfachen:ADAL makes authentication easier for developers through features such as:

  • Konfigurierbarer Tokencache zum Speichern von Zugriffs- und AktualisierungstokenConfigurable token cache that stores access tokens and refresh tokens
  • Automatische Tokenaktualisierung, wenn ein Zugriffstoken abläuft und ein Aktualisierungstoken verfügbar istAutomatic token refresh when an access token expires and a refresh token is available
  • Unterstützung für asynchrone MethodenaufrufeSupport for asynchronous method calls

Hinweis

Suchen Sie nach den Azure AD v2.0-Bibliotheken (MSAL)?Looking for the Azure AD v2.0 libraries (MSAL)? Sehen Sie den Leitfaden zu den MSAL-Bibliotheken ein.Checkout the MSAL library guide.

Von Microsoft unterstützte ClientbibliothekenMicrosoft-supported Client Libraries

PlattformPlatform BibliothekLibrary DownloadDownload QuellcodeSource Code BeispielSample VerweisReference
.NET-Client, Windows Store, UWP, Xamarin iOS und Android.NET Client, Windows Store, UWP, Xamarin iOS and Android ADAL .NET v3ADAL .NET v3 NuGetNuGet GitHubGitHub Desktop-AppDesktop app ReferenzReference
.NET-Client, Windows Store, Windows Phone 8.1.NET Client, Windows Store, Windows Phone 8.1 ADAL .NET v2ADAL .NET v2 NuGetNuGet GitHubGitHub Desktop-AppDesktop app
JavaScriptJavaScript ADAL.jsADAL.js GitHubGitHub GitHubGitHub Einseitige AppSingle-page app
iOS, macOSiOS, macOS ADALADAL GitHubGitHub GitHubGitHub iOS-AppsiOS app ReferenzReference
AndroidAndroid ADALADAL MavenMaven GitHubGitHub Android-AppsAndroid app JavaDocsJavaDocs
Node.jsNode.js ADALADAL npmnpm GitHubGitHub Node.js-Web-AppsNode.js web app ReferenzReference
JavaJava ADAL4JADAL4J MavenMaven GitHubGitHub Java-Web-AppJava web app ReferenzReference
PythonPython ADALADAL GitHubGitHub GitHubGitHub Python-Web-AppPython web app ReferenzReference

Von Microsoft unterstützte ServerbibliothekenMicrosoft-supported Server Libraries

PlattformPlatform BibliothekLibrary DownloadDownload QuellcodeSource Code BeispielSample VerweisReference
.NET.NET OWIN für Azure ADOWIN for AzureAD NuGetNuGet GitHubGitHub MVC-AppMVC App
.NET.NET OWIN für OpenIDConnectOWIN for OpenIDConnect NuGetNuGet GitHubGitHub Web AppWeb App
.NET.NET OWIN für WS-FederationOWIN for WS-Federation NuGetNuGet GitHubGitHub MVC-Web-AppMVC Web App
.NET.NET Identitätsprotokollerweiterungen für .NET 4.5Identity Protocol Extensions for .NET 4.5 NuGetNuGet GitHubGitHub
.NET.NET JWT-Handler für .NET 4.5JWT Handler for .NET 4.5 NuGetNuGet GitHubGitHub
Node.jsNode.js Azure AD PassportAzure AD Passport npmnpm GitHubGitHub Web-APIWeb API

SzenarienScenarios

Im Folgenden werden drei allgemeine Szenarien für die Verwendung von ADAL in einem Client vorgestellt, der auf eine Remoteressource zugreift:Here are three common scenarios for using ADAL in a client that accesses a remote resource:

Authentifizieren von Benutzern einer auf einem Gerät ausgeführten nativen ClientanwendungAuthenticating users of a native client application running on a device

In diesem Szenario hat ein Entwickler eine mobile Client- oder Desktopanwendung erstellt, die auf eine Remoteressource (z.B. eine Web-API) zugreifen muss.In this scenario, a developer has a mobile client or desktop application that needs to access a remote resource, such as a web API. Die Web-API lässt keine anonymen Aufrufe zu und muss im Kontext eines authentifizierten Benutzers aufgerufen werden.The web API does not allow anonymous calls and must be called in the context of an authenticated user. Die Web-API ist so vorkonfiguriert, dass sie den von einem bestimmten Azure AD-Mandanten ausgestellten Zugriffstoken vertraut.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD ist für die Ausstellung von Zugriffstoken für diese Ressource vorkonfiguriert.Azure AD is pre-configured to issue access tokens for that resource. Für den Aufruf der Web-API vom Client verwendet der Entwickler ADAL, um die Authentifizierung mit Azure AD zu vereinfachen.To invoke the web API from the client, the developer uses ADAL to facilitate authentication with Azure AD. Die sicherste Möglichkeit zur Verwendung von ADAL besteht darin, darüber die Benutzeroberfläche für die Sammlung von Benutzeranmeldeinformationen (als Browserfenster gerendert) zu rendern.The most secure way to use ADAL is to have it render the user interface for collecting user credentials (rendered as browser window).

Dank ADAL ist es einfach, den Benutzer zu authentifizieren, ein Zugriffstoken und ein Aktualisierungstoken aus Azure AD abzurufen und mithilfe des Zugriffstokens dann die Web-API aufzurufen.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.

Ein Codebeispiel, in dem dieses Szenario mithilfe von Authentifizierung für Azure AD veranschaulicht wird, finden Sie unter Systemeigene Client-WPF-Anwendung für Web-API.For a code sample that demonstrates this scenario using authentication to Azure AD, see Native Client WPF Application to Web API.

Authentifizieren einer auf einem Webserver ausgeführten vertraulichen ClientanwendungAuthenticating a confidential client application running on a web server

In diesem Szenario verwendet ein Entwickler eine Anwendung, die auf einem Server ausgeführt wird und auf eine Remoteressource (z.B. eine Web-API) zugreifen muss.In this scenario, a developer has an application running on a server that needs to access a remote resource, such as a web API. Die Web-API lässt keine anonymen Aufrufe zu und muss daher von einem autorisierten Dienst aufgerufen werden.The web API does not allow anonymous calls, so it must be called from an authorized service. Die Web-API ist so vorkonfiguriert, dass sie den von einem bestimmten Azure AD-Mandanten ausgestellten Zugriffstoken vertraut.The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD ist für die Ausstellung von Zugriffstoken für diese Ressource für einen Dienst mit Clientanmeldeinformationen (Client-ID und Geheimnis) vorkonfiguriert.Azure AD is pre-configured to issue access tokens for that resource to a service with client credentials (client ID and secret). ADAL vereinfacht die Authentifizierung des Diensts bei Azure AD, wobei ein Zugriffstoken für den Aufruf der Web-API zurückgegeben werden kann.ADAL facilitates authentication of the service with Azure AD returning an access token that can be used to call the web API. ADAL übernimmt außerdem die Verwaltung der Lebensdauer des Zugriffstokens, indem es zwischengespeichert und bei Bedarf erneuert wird.ADAL also handles managing the lifetime of the access token by caching it and renewing it as necessary. Ein Codebeispiel, das dieses Szenario veranschaulicht, finden Sie unter Daemon console Application to Web API (Daemon-Konsolenanwendung für Web-API).For a code sample that demonstrates this scenario, see Daemon console Application to Web API.

Authentifizieren einer auf einem Server ausgeführten vertraulichen Clientanwendung im Namen eines BenutzersAuthenticating a confidential client application running on a server, on behalf of a user

In diesem Szenario verwendet ein Entwickler eine Webanwendung, die auf einem Server ausgeführt wird und auf eine Remoteressource (z.B. eine Web-API) zugreifen muss.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. Die Web-API lässt keine anonymen Aufrufe zu und muss daher im Auftrag eines authentifizierten Benutzers von einem autorisierten Dienst aufgerufen werden.The web API does not allow anonymous calls, so it must be called from an authorized service on behalf of an authenticated user. Die Web-API ist so vorkonfiguriert, dass sie von einem bestimmten Azure AD-Mandanten ausgestellte Zugriffstoken vertraut, während Azure AD dafür vorkonfiguriert ist, dass Zugriffstokens für diese Ressource in einem Dienst mit Clientanmeldeinformationen ausgestellt werden.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. Sobald der Benutzer in der Webanwendung authentifiziert ist, kann die Anwendung einen Autorisierungscode für den Benutzer aus Azure AD abrufen.Once the user is authenticated in the web application, the application can get an authorization code for the user from Azure AD. Die Webanwendung kann dann ADAL verwenden, um im Auftrag eines Benutzers ein Zugriffstoken und ein Aktualisierungstoken abzurufen, wobei der Autorisierungscode und die Clientanmeldeinformationen verwendet werden, die der Anwendung aus Azure AD zugeordnet sind.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. Sobald die Webanwendung im Besitz des Zugriffstokens ist, kann sie bis zum Ablauf des Tokens die Web-API aufrufen.Once the web application is in possession of the access token, it can call the web API until the token expires. Nach Ablauf des Tokens kann die Webanwendung über ADAL mit dem zuvor empfangenen Aktualisierungstoken ein neues Zugriffstoken abrufen.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. Ein Codebeispiel, das dieses Szenario veranschaulicht, finden Sie unter Native client to Web API to Web API (Nativer Clientaufruf zwischen Web-APIs).For a code sample that demonstrates this scenario, see Native client to Web API to Web API.

Siehe auchSee Also