Bibliothèque de client Azure Identity Brokered Authentication pour .NET - version 1.0.0
La bibliothèque étend la bibliothèque Azure.Identity pour fournir la prise en charge du répartiteur d’authentification. Il inclut les dépendances nécessaires et fournit la InteractiveBrowserCredentialBrokerOptions
classe . Cette classe d’options peut être utilisée pour créer un capable d’utiliser InteractiveBrowserCredential
le répartiteur d’authentification système au lieu du navigateur système lorsqu’il est disponible.
| Code sourcePackage (nuget) | Documentation de référence sur les | APIdocumentation sur l’ID Microsoft Entra
Prise en main
Installer le package
Installez la bibliothèque de client Azure Identity pour .NET avec NuGet :
dotnet add package Azure.Identity.Broker
Prérequis
- La bibliothèque Azure.Identity est une dépendance d’Azure.Identity.Broker.
Authentifier le client
Concepts clés
Ce package permet la prise en charge du répartiteur d’authentification via InteractiveBrowserCredentialBrokerOptions
, en combinaison avec InteractiveBrowserCredential
dans le Azure.Identity
package.
Handles de fenêtre parente
Lors de l’authentification interactive via InteractiveBrowserCredential
construit avec , InteractiveBrowserCredentialBrokerOptions
un handle de fenêtre parent est nécessaire pour garantir que la boîte de dialogue d’authentification s’affiche correctement sur la fenêtre de demande. Dans le contexte des interfaces utilisateur graphiques sur les appareils, un handle de fenêtre est un identificateur unique que le système d’exploitation attribue à chaque fenêtre. Pour le système d’exploitation Windows, ce handle est une valeur entière qui sert de référence à une fenêtre spécifique.
Passthrough de compte Microsoft (MSA)
Les comptes Microsoft (MSA) sont des comptes personnels créés par des utilisateurs pour accéder aux services Microsoft. Le passthrough MSA est une configuration héritée qui permet aux utilisateurs d’obtenir des jetons pour des ressources qui n’acceptent normalement pas les connexions MSA. Cette fonctionnalité est uniquement disponible pour les applications internes. Les utilisateurs qui s’authentifient auprès d’une application configurée pour utiliser le passthrough MSA peuvent définir la InteractiveBrowserCredentialBrokerOptions.IsLegacyMsaPassthroughEnabled
propriété sur true
pour permettre à ces comptes personnels d’être répertoriés par WAM.
URI de redirection
Microsoft Entra applications s’appuient sur des URI de redirection pour déterminer où envoyer la réponse d’authentification une fois qu’un utilisateur s’est connecté. Pour activer l’authentification répartie via WAM, un URI de redirection correspondant au modèle suivant doit être inscrit dans l’application :
ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}
Exemples
Configuration de pour InteractiveBrowserCredential
utiliser le répartiteur d’authentification système
Cet exemple montre comment configurer avec le type InteractiveBrowserCredentialBrokerOptions
d’options spécialisées pour activer l’authentification InteractiveBrowserCredential
répartie.
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);
Dépannage
Consultez le guide de résolution des problèmes pour plus d’informations sur la façon de diagnostiquer différents scénarios d’échec.
Gestion des erreurs
Les erreurs résultant de l’authentification peuvent être déclenchées sur n’importe quelle méthode cliente de service qui effectue une demande au service. Cela est dû au fait que la première fois que le jeton est demandé à partir des informations d’identification se trouve lors du premier appel au service, et tous les appels suivants peuvent avoir besoin d’actualiser le jeton. Afin de distinguer ces échecs des échecs dans le client de service, les classes Azure Identity déclenchent le AuthenticationFailedException
avec les détails sur la source de l’erreur dans le message d’exception, ainsi que éventuellement le message d’erreur. Selon l’application, ces erreurs peuvent ou non être récupérables.
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}");
}
Pour plus d’informations sur la gestion des erreurs résultant d’un échec de demandes d’ID Microsoft Entra ou de points de terminaison d’identité managée, reportez-vous à la documentation relative à l’ID de Microsoft Entra sur les codes d’erreur d’autorisation.
Journalisation
La bibliothèque d’identités Azure fournit les mêmes fonctionnalités de journalisation que le reste du Kit de développement logiciel (SDK) Azure.
La façon la plus simple de voir les journaux pour faciliter le débogage des problèmes d’authentification consiste à activer la journalisation de la console.
// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();
Toutes les informations d’identification peuvent être configurées avec des options de diagnostic, de la même façon que d’autres clients dans le Kit de développement logiciel (SDK).
DefaultAzureCredentialOptions options = new DefaultAzureCredentialOptions()
{
Diagnostics =
{
LoggedHeaderNames = { "x-ms-request-id" },
LoggedQueryParameters = { "api-version" },
IsLoggingContentEnabled = true
}
};
ATTENTION : Les demandes et les réponses dans la bibliothèque d’identités Azure contiennent des informations sensibles. Des précautions doivent être prises pour protéger les journaux lors de la personnalisation de la sortie afin d’éviter de compromettre la sécurité du compte.
Sécurité des threads
Nous garantissons que toutes les méthodes d’informations d’identification instance sont thread-safe et indépendantes les unes des autres (instructions). Cela garantit que la recommandation de réutilisation des instances d’informations d’identification est toujours sécurisée, même entre les threads.
Concepts supplémentaires
Options | du clientAccès à la réponse | Diagnostics | Moqueur | Durée de vie du client
Étapes suivantes
Bibliothèques clientes prenant en charge l’authentification avec Azure Identity
La plupart des bibliothèques clientes répertoriées ici prennent en charge l’authentification avec TokenCredential
et la bibliothèque Azure Identity.
Vous y trouverez également des liens où vous pouvez en savoir plus sur leur utilisation, notamment une documentation et des exemples supplémentaires.
Problèmes connus
Cette bibliothèque ne prend actuellement pas en charge les scénarios liés au service AAD B2C .
Les problèmes actuellement en cours pour la bibliothèque Azure.Identity se trouvent ici.
Contribution
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.
Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.
Azure SDK for .NET