Azure Active Directory-Authentifizierungsbibliothek
Warnung
Dieser Inhalt gilt für den älteren v1.0-Endpunkt von Azure AD. Verwenden Sie Microsoft Identity Platform für neue Projekte.
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. ADAL bietet Entwicklern folgende Features, um die Authentifizierung zu vereinfachen:
- Konfigurierbarer Tokencache zum Speichern von Zugriffs- und Aktualisierungstoken
- Automatische Tokenaktualisierung, wenn ein Zugriffstoken abläuft und ein Aktualisierungstoken verfügbar ist
- Unterstützung für asynchrone Methodenaufrufe
Hinweis
Suchen Sie nach den Azure AD v2.0-Bibliotheken? Sehen Sie den Leitfaden zu den MSAL-Bibliotheken ein.
Warnung
Die Azure Active Directory-Authentifizierungsbibliothek (Active Directory Authentication Library, ADAL) ist veraltet. Verwenden Sie die Microsoft-Authentifizierungsbibliothek (Microsoft Authentication Library, MSAL). Wenn Sie über vorhandene Anwendungen verfügen, die ADAL verwenden, migrieren Sie diese unbedingt zu MSAL.
Von Microsoft unterstützte Clientbibliotheken
Plattform | Bibliothek | Download | Quellcode | Beispiel | Verweis |
---|---|---|---|---|---|
.NET-Client, Windows Store, UWP, Xamarin iOS und Android | ADAL .NET v3 | NuGet | GitHub | Desktop-App | |
JavaScript | ADAL.js | GitHub | GitHub | Einseitige App | |
iOS, macOS | ADAL | GitHub | GitHub | iOS-App | |
Android | ADAL | Maven | GitHub | Android-Apps | JavaDocs |
Node.js | ADAL | npm | GitHub | Node.js-Web-Apps | Referenz |
Java | ADAL4J | Maven | GitHub | Java-Web-App | Referenz |
Python | ADAL | GitHub | GitHub | Python-Web-App | Referenz |
Von Microsoft unterstützte Serverbibliotheken
Plattform | Bibliothek | Download | Quellcode | Beispiel | Verweis |
---|---|---|---|---|---|
.NET | OWIN für Azure AD | NuGet | GitHub | MVC-App | |
.NET | OWIN für OpenIDConnect | NuGet | GitHub | Web App | |
.NET | OWIN für WS-Federation | NuGet | GitHub | MVC-Web-App | |
.NET | Identitätsprotokollerweiterungen für .NET 4.5 | NuGet | GitHub | ||
.NET | JWT-Handler für .NET 4.5 | NuGet | GitHub | ||
Node.js | Azure AD Passport | npm | GitHub | Web-API |
Szenarien
Im Folgenden werden drei allgemeine Szenarien für die Verwendung von ADAL in einem Client vorgestellt, der auf eine Remoteressource zugreift:
Authentifizieren von Benutzern einer auf einem Gerät ausgeführten nativen Clientanwendung
In diesem Szenario hat ein Entwickler eine mobile Client- oder Desktopanwendung erstellt, die auf eine Remoteressource (z.B. eine Web-API) zugreifen muss. Die Web-API lässt keine anonymen Aufrufe zu und muss im Kontext eines authentifizierten Benutzers aufgerufen werden. Die Web-API ist so vorkonfiguriert, dass sie den von einem bestimmten Azure AD-Mandanten ausgestellten Zugriffstoken vertraut. Azure AD ist für die Ausstellung von Zugriffstoken für diese Ressource vorkonfiguriert. Für den Aufruf der Web-API vom Client verwendet der Entwickler ADAL, um die Authentifizierung mit Azure AD zu vereinfachen. 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.
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.
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.
Authentifizieren einer auf einem Webserver ausgeführten vertraulichen Clientanwendung
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. Die Web-API lässt keine anonymen Aufrufe zu und muss daher von einem autorisierten Dienst aufgerufen werden. Die Web-API ist so vorkonfiguriert, dass sie den von einem bestimmten Azure AD-Mandanten ausgestellten Zugriffstoken vertraut. Azure AD ist für die Ausstellung von Zugriffstoken für diese Ressource für einen Dienst mit Clientanmeldeinformationen (Client-ID und Geheimnis) vorkonfiguriert. ADAL vereinfacht die Authentifizierung des Diensts bei Azure AD, wobei ein Zugriffstoken für den Aufruf der Web-API zurückgegeben werden kann. ADAL übernimmt außerdem die Verwaltung der Lebensdauer des Zugriffstokens, indem es zwischengespeichert und bei Bedarf erneuert wird. Ein Codebeispiel, das dieses Szenario veranschaulicht, finden Sie unter Daemon console Application to Web API (Daemon-Konsolenanwendung für Web-API).
Authentifizieren einer auf einem Server ausgeführten vertraulichen Clientanwendung im Namen eines Benutzers
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. Die Web-API lässt keine anonymen Aufrufe zu und muss daher im Auftrag eines authentifizierten Benutzers von einem autorisierten Dienst aufgerufen werden. Die Web-API ist so vorkonfiguriert, dass sie von einem bestimmten Microsoft Entra-Mandanten ausgestellte Zugriffstoken vertraut, während Microsoft Entra ID dafür vorkonfiguriert ist, dass Zugriffstokens für diese Ressource in einem Dienst mit Clientanmeldeinformationen ausgestellt werden. Sobald der Benutzer in der Webanwendung authentifiziert ist, kann die Anwendung einen Autorisierungscode für den Benutzer aus Microsoft Entra ID abrufen. 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 Microsoft Entra ID zugeordnet sind. Sobald die Webanwendung im Besitz des Zugriffstokens ist, kann sie bis zum Ablauf des Tokens die Web-API aufrufen. Nach Ablauf des Tokens kann die Webanwendung über ADAL mit dem zuvor empfangenen Aktualisierungstoken ein neues Zugriffstoken abrufen. Ein Codebeispiel, das dieses Szenario veranschaulicht, finden Sie unter Native client to Web API to Web API (Nativer Clientaufruf zwischen Web-APIs).