Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article traite des techniques d’investigation des défaillances, des erreurs courantes pour les types d’informations d’identification dans la bibliothèque cliente Java d’Azure Identity et des étapes d’atténuation pour résoudre ces erreurs. Étant donné que de nombreux types d’informations d’identification sont disponibles dans le Kit de développement logiciel (SDK) Azure pour Java, ce guide de résolution des problèmes est divisé en sections en fonction du scénario d’utilisation. Les sections suivantes sont disponibles :
- Résoudre les problèmes d’authentification d’application hébergée par Azure
- Résoudre les problèmes d’authentification de l’environnement de développement
- Résolution des problèmes liés à l’authentification du principal de service
- Résolution des problèmes liés à l’authentification multilocataire
Le reste de cet article traite des techniques de dépannage générales et des conseils qui s’appliquent à tous les types d’informations d’identification.
Gérer les exceptions d’identité Azure
Comme indiqué dans la gestion des exceptions dans la Kit de développement logiciel (SDK) Azure pour Java section de la vue d’ensemble de la résolution des problèmes, le Kit de développement logiciel (SDK) Azure pour Java peut lever un ensemble complet d’exceptions et de codes d’erreur. Pour Azure Identity spécifiquement, quelques types d’exceptions clés sont importants à comprendre.
ClientAuthenticationException
Toute méthode cliente de service qui envoie une demande au service peut déclencher des exceptions à partir d’erreurs d’authentification. Ces exceptions peuvent se produire, car le jeton est demandé à partir des informations d’identification lors du premier appel au service et sur toutes les demandes suivantes adressées au service qui doivent actualiser le jeton.
Pour distinguer ces défaillances de celles du client de service, les classes Azure Identity déclenchent ClientAuthenticationException avec des détails décrivant la source de l'erreur dans le message d’exception et éventuellement le message d’erreur. Selon l’application, ces erreurs peuvent être récupérables. Le code suivant montre un exemple d'interception ClientAuthenticationException :
// Create a secret client using the DefaultAzureCredential
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://myvault.vault.azure.net/")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
try {
KeyVaultSecret secret = client.getSecret("secret1");
} catch (ClientAuthenticationException e) {
//Handle Exception
e.printStackTrace();
}
CredentialUnavailableException
CredentialUnavailableException est un type d’exception spécial dérivé de ClientAuthenticationException. Utilisez ce type d’exception pour indiquer que les informations d’identification ne permettent pas de s’authentifier dans l’environnement actuel en raison de l’absence de configuration ou de paramétrage requis. Cette exception indique également aux types d’informations d’identification chaînés, tels que DefaultAzureCredential et ChainedTokenCredential, que les informations d’identification chaînées doivent continuer à tester d’autres types d’informations d’identification plus tard dans la chaîne.
Problèmes d’autorisation
Les appels aux clients de service qui entraînent HttpResponseException avec un StatusCode de 401 ou 403 indiquent souvent que l’appelant ne dispose pas des autorisations suffisantes pour l’API spécifiée. Consultez la documentation du service pour déterminer quels rôles sont nécessaires pour la demande spécifique. Vérifiez que l’utilisateur ou le principal de service authentifié reçoit les rôles appropriés sur la ressource.
Rechercher des informations pertinentes dans les messages d’exception
L’exception ClientAuthenticationException est levée lorsque des erreurs inattendues se produisent pendant l’authentification d’informations d’identification. Ces erreurs peuvent inclure des erreurs renvoyées lors de requêtes adressées au service de jetons de sécurité (STS) de Microsoft Entra et contiennent souvent des informations utiles au diagnostic. Tenez compte du message suivant ClientAuthenticationException :
ClientSecretCredential authentication failed: A configuration issue is preventing authentication - check the error message from the server for details. You can modify the configuration in the application registration portal. See https://aka.ms/msal-net-invalid-client for details.
Original exception:
AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.
Trace ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Correlation ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Timestamp: 2022-01-01 00:00:00Z
Ce message d’erreur contient les informations suivantes :
Type d’informations d’identification défaillant : type d’informations d’identification qui n’ont pas pu s’authentifier ( dans ce cas,
ClientSecretCredential. Ces informations sont utiles lors du diagnostic des problèmes liés aux types d’informations d’identification chaînées, tels queDefaultAzureCredentialouChainedTokenCredential.Code et message d’erreur STS : code d’erreur et message retournés par le sts Microsoft Entra . Dans ce cas,
AADSTS7000215: Invalid client secret provided.ces informations donnent un aperçu de la raison spécifique de l’échec de la requête. Par exemple, dans ce cas précis, la clé secrète client fournie est incorrecte. Pour plus d’informations sur les codes d’erreur STS, consultez la section Codes d’erreur AADSTS des codes d’erreur d'authentification et d’autorisation de Microsoft Entra.ID de corrélation et horodatage : ID de corrélation et horodatage d’appel utilisés pour identifier la requête dans les journaux côté serveur. Ces informations aident les ingénieurs dans le diagnostic d’échecs STS inattendus.
Activez et configurez la journalisation
Kit de développement logiciel (SDK) Azure pour Java offre un article de journalisation cohérent pour aider à résoudre les erreurs d’application et à accélérer leur résolution. Les journaux consignent le déroulement d’une application avant qu’elle n’atteigne son état final, afin d’aider à localiser la cause profonde du problème. Pour obtenir des conseils sur la journalisation, consultez Configurer la journalisation dans le Kit de développement logiciel (SDK) Azure pour Java et résolution des problèmes.
La bibliothèque MSAL sous-jacente, MSAL4J, a également une journalisation détaillée. Cette journalisation est très détaillée et inclut toutes les données personnelles, y compris les jetons. Cette journalisation est particulièrement utile lors de la collaboration avec le support produit. À partir de la version 1.10.0, les informations d’identification qui offrent cette journalisation ont une méthode appelée enableUnsafeSupportLogging().
Avertissement
Les demandes et les réponses dans la bibliothèque d’identités Azure contiennent des informations sensibles. Prenez des précautions pour protéger les fichiers journaux lorsque vous personnalisez la sortie afin d’éviter de compromettre la sécurité du compte.
Étapes suivantes
Si les conseils de dépannage de cet article ne permettent pas de résoudre les problèmes lorsque vous utilisez le Kit de développement logiciel (SDK) Azure pour Java bibliothèques clientes, placez un problème dans le Kit de développement logiciel (SDK) Azure pour Java GitHub référentiel.