Auswählen einer Version von MSAL.NET

Important

Ab dem 1. Mai 2025 ist Azure AD B2C nicht mehr für neue Kunden erhältlich. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

Je nach Typ der Anwendung, die Sie erstellen, und der zugrunde liegenden Plattform können Sie MSAL.NET, Microsoft Identity Web oder beides verwenden.

Microsoft Identity Web ist eine Reihe von ASP.NET Core Bibliotheken, die das Hinzufügen von Authentifizierungs- und Autorisierungsunterstützung zu Web-Apps und Web-APIs vereinfacht, die in die Microsoft Identity Platform integriert werden. Sie stellt eine einfache API-Komfortebene bereit, die ASP.NET Core, die Authentifizierungs-Middleware und die Microsoft Authentication Library (MSAL) (MSAL) für .NET miteinander verbindet.

Folgen Sie der folgenden Entscheidungsstruktur, um zu bestimmen, ob Ihr Szenario MSAL.NET, Microsoft Identity Web oder beides erfordert.

Abbildung der Entscheidungsstruktur beim Arbeiten mit .NET Authentifizierungsbibliotheken

Wann verwende ich MSAL.NET

Sie erstellen eine Desktop- oder mobile App. Verwenden Sie MSAL.NET direkt, und beginnen Sie mit dem Abrufen von Token für Ihre öffentliche Clientanwendung. Einzelheiten dazu finden Sie unter:

Verwenden Microsoft Identity Web

Sie erstellen eine vertrauliche Clientanwendung (Web-App, Web-API, Daemon/Dienst-App), die auf ASP.NET Core, ASP.NET OWIN oder .NET Framework/.NET Core ausgeführt wird. Sehen Sie, was Microsoft Identity Web zu bieten hat:

  • Anmelden von Benutzern über Web-Apps in Microsoft Entra ID, Azure AD B2C und Microsoft Entra External ID Anwendungen
    • Unterstützung Microsoft persönlichen Konten
    • Unterstützen von Gastbenutzern
    • Inkrementelle Zustimmung und bedingter Zugriff in Web-Apps
    • Behandeln von SameSite
    • Integration in "App-Dienste-Authentifizierung"
    • Unterstützt PKCE für vertrauliche Clientanwendungen
    • Bietet performante Tokencache-Serialisierer, einschließlich verteilter
  • Schützen der Web-API (mit Microsoft Entra ID, Azure AD B2C oder Microsoft Entra External ID)
    • Überprüft den Aussteller (einschließlich In-Multi-Mandanten-Apps, beliebiger Cloud)
    • unterstützt Tokenentschlüsselungszertifikate in Web-APIs
    • Überprüft die Bereichs- und App-Rolle in Web-APIs
    • Generiert WWW-authenticate Header in APIs (CA, CAE)
    • Schützen von gRPC-Diensten und Azure-Funktionen
  • Web-App/API-Aufruf nachgelagerter APIs (einschließlich Graph mit Ausnahme von B2C)
  • Unterstützt mehrere Authentifizierungsschemas in ASP.NET Core
  • Unterstützt Proof of Possession-Protokoll
  • Robust (unterstützt regionale Tokenakquisition und Routinghinweise für das Tokensicherungssystem)

Sie erstellen eine neue Anwendung

Verwenden Sie die Project Vorlagen und das msidentity-app-sync Tool. Wir haben Web-App-Vorlagen für Web MVC, Razor, Blazor Server, Blazorwasm gehostet und nicht gehostet. Alles für Microsoft Entra ID oder Azure AD B2C.

Abbildung mit ASP.NET Core Projektvorlagen zum Erstellen von Web-Apps

Web App-Projektvorlagen.

Wir verfügen über Web-API-Vorlagen für gRPC und Azure Functions.

Web-API-Projektvorlagen.

Hier finden Sie Informationen zum Ausführen des Tools "msidentity-app-sync", das ein Befehlszeilentool ist, das Microsoft Identity Platform Anwendungen in einem Mandanten (Microsoft Entra ID oder Azure AD B2C) erstellt und den Konfigurationscode Ihrer ASP.NET Core Anwendungen aktualisiert. Das Tool kann auch verwendet werden, um Code aus einer vorhandenen Microsoft Entra Anwendung oder Azure AD B2C-Anwendung zu aktualisieren.

Es ist in NuGet verfügbar.

Sie fügen einer vorhandenen App eine Authentifizierung hinzu, oder ich migrieren von ADAL

Nehmen Sie einfach den Code, den Sie von Microsoft Identity Web benötigen, um Ihre App zu aktualisieren. Im Folgenden finden Sie ein Beispiel:

Abbildung mit Codeaktualisierungen beim Erstellen einer Web-App, die eine Web-API aufruft

Abbildung mit Codeaktualisierungen beim Erstellen einer B2C-Web-App oder -API

Abbildung mit Codeupdates für eine B2C-Web-App, die Benutzer anmeldet und eine geschützte Web-API

Abbildung der Codeaktualisierungen in einer Web-App oder Web-API, die eine nachgeschaltete API aufruft

Wann verwenden Sie das Hybridmodell (MSAL.NET und Microsoft Identity Web)

Sie erstellen ein SDK für vertrauliche Clientanwendungen und möchten MSAL.NET APIs auf niedriger Ebene verwenden. In MSAL.NET wird standardmäßig ein Cache für In-Memory-Token bereitgestellt, bei Web-Apps oder Web-APIs sollte die Zwischenspeicherung jedoch anders verwaltet werden als für öffentliche Clientanwendungen (Desktop- oder mobile Apps), da sie ordnungsgemäß partitioniert werden muss. Es wird dringend empfohlen, einen Tokencache-Serialisierer zu nutzen, bei dem es sich um einen verteilten Cache (z. B. Redis, Cosmos oder SQL Server, verteilt im Speichercache) oder um einen ordnungsgemäß partitionierten Cache handelt.

Mithilfe von Tokencache-Serialisierern partitionieren Sie die Tokencaches abhängig vom verwendeten Cacheschlüssel, da der Cache zwischen dem Speicher und dem MSAL-Speicher ausgetauscht wird. Dieser Cacheschlüssel wird von MSAL.NET als Funktion des von Ihnen verwendeten Flusses berechnet.

Abbildung mit Tokencaches mit und ohne benutzerdefinierte Serialisierer

Warum benötigen Sie Microsoft. Identity.Web.TokenCache?

Microsoft. Identity.Web.TokenCache stellt die Serialisierung des Tokencaches für Sie bereit. Details finden Sie unter Tokencache-Serialisierung .

Beispiele für die Verwendung von Tokencaches für Web-Apps und Web-APIs finden Sie im Lernprogramm ASP.NET Core Web App im Phase 2-2-Tokencache. Für Implementierungen sehen Sie sich den Ordner TokenCacheProviders im Microsoft an. Identity.Web-Repository.

Microsoft Identity Web hilft auch beim Laden von Zertifikaten.