Azure Identity Brokered Authentication-Clientbibliothek für .NET – Version 1.0.0
Die Bibliothek erweitert die Azure.Identity-Bibliothek, um Unterstützung für den Authentifizierungsbroker bereitzustellen. Sie enthält die erforderlichen Abhängigkeiten und stellt die InteractiveBrowserCredentialBrokerOptions
-Klasse bereit. Diese Optionsklasse kann verwendet werden, um einen InteractiveBrowserCredential
zu erstellen, der den Systemauthentifizierungsbroker anstelle des Systembrowsers verwenden kann, sofern verfügbar.
Quellcode | Paket (Nuget) | API-Referenzdokumentation | Dokumentation zur Microsoft Entra ID
Erste Schritte
Installieren des Pakets
Installieren Sie die Azure Identity-Clientbibliothek für .NET mit NuGet:
dotnet add package Azure.Identity.Broker
Voraussetzungen
- Die Azure.Identity-Bibliothek ist eine Abhängigkeit von Azure.Identity.Broker.
Authentifizieren des Clients
Wichtige Begriffe
Dieses Paket ermöglicht die Unterstützung des Authentifizierungsbrokers über InteractiveBrowserCredentialBrokerOptions
in Kombination mit InteractiveBrowserCredential
im Azure.Identity
Paket.
Übergeordnete Fensterhandle
Bei der interaktiven Authentifizierung über InteractiveBrowserCredential
mit konstruiertem InteractiveBrowserCredentialBrokerOptions
ist ein übergeordnetes Fensterhandle erforderlich, um sicherzustellen, dass das Authentifizierungsdialogfeld über das anfordernde Fenster ordnungsgemäß angezeigt wird. Im Kontext grafischer Benutzeroberflächen auf Geräten ist ein Fensterhandle ein eindeutiger Bezeichner, den das Betriebssystem jedem Fenster zuweist. Für das Windows-Betriebssystem ist dieses Handle ein ganzzahliger Wert, der als Verweis auf ein bestimmtes Fenster dient.
Passthrough für Microsoft-Konto (MSA)
Microsoft-Konten (MSA) sind persönliche Konten, die von Benutzern für den Zugriff auf Microsoft-Dienste erstellt werden. MSA-Passthrough ist eine Legacykonfiguration, mit der Benutzer Token an Ressourcen abrufen können, die normalerweise keine MSA-Anmeldungen akzeptieren. Dieses Feature ist nur für Erstanbieteranwendungen verfügbar. Benutzer, die sich bei einer Anwendung authentifizieren, die für die Verwendung von MSA-Passthrough konfiguriert ist, können die InteractiveBrowserCredentialBrokerOptions.IsLegacyMsaPassthroughEnabled
-Eigenschaft auf true
festlegen, damit diese persönlichen Konten von WAM aufgelistet werden können.
Umleitungs-URIs
Microsoft Entra Anwendungen basieren auf Umleitungs-URIs, um zu bestimmen, wohin die Authentifizierungsantwort gesendet werden soll, nachdem sich ein Benutzer angemeldet hat. Um die Brokerauthentifizierung über WAM zu aktivieren, sollte ein Umleitungs-URI, der dem folgenden Muster entspricht, bei der Anwendung registriert werden:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}
Beispiele
Konfigurieren des InteractiveBrowserCredential
für die Verwendung des Systemauthentifizierungsbrokers
In diesem Beispiel wird veranschaulicht, wie InteractiveBrowserCredential
sie mit dem spezialisierten Optionstyp InteractiveBrowserCredentialBrokerOptions
konfiguriert wird, um die Brokerauthentifizierung zu aktivieren.
IntPtr parentWindowHandle = GetForegroundWindow();
// Create an interactive browser credential which will use the system authentication broker
var credential = new InteractiveBrowserCredential(new InteractiveBrowserCredentialBrokerOptions(parentWindowHandle));
// Use the credential to authenticate a secret client
var client = new SecretClient(new Uri("https://myvault.vault.azure.net/"), credential);
Problembehandlung
Ausführliche Informationen zur Diagnose verschiedener Fehlerszenarien finden Sie im Leitfaden zur Problembehandlung .
Fehlerbehandlung
Fehler, die aus der Authentifizierung entstehen, können für jede Dienstclientmethode ausgelöst werden, die eine Anforderung an den Dienst sendet. Dies liegt daran, dass das Token beim ersten Aufruf des Diensts zum ersten Mal von den Anmeldeinformationen angefordert wird, und alle nachfolgenden Aufrufe das Token möglicherweise aktualisieren müssen. Um diese Fehler von Fehlern im Dienstclient zu unterscheiden, führen Azure Identity-Klassen mit AuthenticationFailedException
Details zur Fehlerquelle in der Ausnahmemeldung sowie möglicherweise der Fehlermeldung aus. Je nach Anwendung können diese Fehler möglicherweise nicht wiederhergestellt werden.
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
// Create a secret client using the DefaultAzureCredential
var client = new SecretClient(new Uri("https://myvault.vault.azure.net/"), new DefaultAzureCredential());
try
{
KeyVaultSecret secret = await client.GetSecretAsync("secret1");
}
catch (AuthenticationFailedException e)
{
Console.WriteLine($"Authentication Failed. {e.Message}");
}
Weitere Informationen zum Umgang mit Fehlern, die sich aus fehlerhaften Anforderungen an Microsoft Entra-ID oder verwaltete Identitätsendpunkte ergeben, finden Sie in der dokumentation Microsoft Entra ID zu Autorisierungsfehlercodes.
Protokollierung
Die Azure Identity-Bibliothek bietet dieselben Protokollierungsfunktionen wie der Rest des Azure SDK.
Die einfachste Möglichkeit, die Protokolle zum Debuggen von Authentifizierungsproblemen anzuzeigen, besteht darin, die Konsolenprotokollierung zu aktivieren.
// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();
Alle Anmeldeinformationen können mit Diagnoseoptionen konfiguriert werden, auf die gleiche Weise wie andere Clients im SDK.
DefaultAzureCredentialOptions options = new DefaultAzureCredentialOptions()
{
Diagnostics =
{
LoggedHeaderNames = { "x-ms-request-id" },
LoggedQueryParameters = { "api-version" },
IsLoggingContentEnabled = true
}
};
ACHTUNG: Anforderungen und Antworten in der Azure Identity-Bibliothek enthalten vertrauliche Informationen. Beim Anpassen der Ausgabe müssen Vorkehrungen getroffen werden, um Protokolle zu schützen, um die Kontosicherheit zu vermeiden.
Threadsicherheit
Wir garantieren, dass alle Anmeldeinformationen instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung der Wiederverwendung von Anmeldeinformationsinstanzen immer sicher ist, auch über Threads hinweg.
Zusätzliche Konzepte
Clientoptionen | Zugreifen auf die Antwort | Diagnose | Spott | Clientlebensdauer
Nächste Schritte
Clientbibliotheken, die die Authentifizierung mit Azure Identity unterstützen
Viele der hier aufgeführten Clientbibliotheken unterstützen die Authentifizierung mit TokenCredential
und der Azure Identity-Bibliothek.
Dort finden Sie auch Links, in denen Sie mehr über deren Verwendung erfahren können, einschließlich zusätzlicher Dokumentation und Beispiele.
Bekannte Probleme
Diese Bibliothek unterstützt derzeit keine Szenarien im Zusammenhang mit dem AAD B2C-Dienst .
Derzeit offene Probleme für die Azure.Identity-Bibliothek finden Sie hier.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.
Azure SDK for .NET