Problèmes d’authentification dans Azure HDInsight

Cet article décrit les éventuelles solutions à appliquer pour résoudre les problèmes rencontrés lors d’interactions avec des clusters Azure HDInsight.

Sur les clusters sécurisés soutenus par Azure Data Lake (Gen1 ou Gen2), lorsque les utilisateurs du domaine se connectent aux services du cluster via HDI Gateway (comme en se connectant au portail Apache Ambari), HDI Gateway tente d'abord d'obtenir un jeton OAuth de Microsoft Entra. puis obtenez un ticket Kerberos auprès de Microsoft Entra Domain Services. L’authentification peut échouer dans l’une de ces étapes. Cet article vise à déboguer certains de ces problèmes.

Quand l’authentification échoue, vous êtes invité à entrer vos informations d’identification. Si vous annulez cette boîte de dialogue, le message d’erreur est imprimé. Voici quelques messages d’erreur courants :

invalid_grant ou unauthorized_client, 50126

Problème

La connexion échoue pour les utilisateurs fédérés avec le code d’erreur 50126 (la connexion réussie pour les utilisateurs Cloud). Le message d’erreur ressemble à :

Reason: Bad Request, Detailed Response: {"error":"invalid_grant","error_description":"AADSTS70002: Error validating credentials. AADSTS50126: Invalid username or password\r\nTrace ID: 09cc9b95-4354-46b7-91f1-efd92665ae00\r\n Correlation ID: 4209bedf-f195-4486-b486-95a15b70fbe4\r\nTimestamp: 2019-01-28 17:49:58Z","error_codes":[70002,50126], "timestamp":"2019-01-28 17:49:58Z","trace_id":"09cc9b95-4354-46b7-91f1-efd92665ae00","correlation_id":"4209bedf-f195-4486-b486-95a15b70fbe4"}

Cause

Le code d'erreur Microsoft Entra 50126 signifie que la stratégie AllowCloudPasswordValidation n'est pas définie par le locataire.

Résolution

L'administrateur général du locataire Microsoft Entra doit permettre à Microsoft Entra ID d'utiliser des hachages de mot de passe pour les utilisateurs soutenus par ADFS. Appliquez la stratégie AllowCloudPasswordValidationPolicy comme montré dans l’article Utiliser le pack Sécurité Entreprise dans HDInsight.


invalid_grant ou unauthorized_client, 50034

Problème

La connexion échoue avec le code d’erreur 50034. Le message d’erreur ressemble à :

{"error":"invalid_grant","error_description":"AADSTS50034: The user account Microsoft.AzureAD.Telemetry.Diagnostics.PII doesn't exist in the 0c349e3f-1ac3-4610-8599-9db831cbaf62 directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: bbb819b2-4c6f-4745-854d-0b72006d6800\r\nCorrelation ID: b009c737-ee52-43b2-83fd-706061a72b41\r\nTimestamp: 2019-04-29 15:52:16Z", "error_codes":[50034],"timestamp":"2019-04-29 15:52:16Z","trace_id":"bbb819b2-4c6f-4745-854d-0b72006d6800", "correlation_id":"b009c737-ee52-43b2-83fd-706061a72b41"}

Cause :

Le nom d’utilisateur est incorrect (il n’existe pas). L’utilisateur n’utilise pas le même nom d’utilisateur que celui utilisé dans le portail Azure.

Résolution

Utilisez le nom d’utilisateur qui fonctionne dans ce portail.


invalid_grant ou unauthorized_client, 50053

Problème

Le compte d’utilisateur est verrouillé, code d’erreur 50053. Le message d’erreur ressemble à :

{"error":"unauthorized_client","error_description":"AADSTS50053: You've tried to sign in too many times with an incorrect user ID or password.\r\nTrace ID: 844ac5d8-8160-4dee-90ce-6d8c9443d400\r\nCorrelation ID: 23fe8867-0e8f-4e56-8764-0cdc7c61c325\r\nTimestamp: 2019-06-06 09:47:23Z","error_codes":[50053],"timestamp":"2019-06-06 09:47:23Z","trace_id":"844ac5d8-8160-4dee-90ce-6d8c9443d400","correlation_id":"23fe8867-0e8f-4e56-8764-0cdc7c61c325"}

Cause :

Un trop grand nombre de tentatives de connexion avec un mot de passe incorrect.

Résolution

Patientez 30 minutes, arrêtez toutes les applications susceptibles de tenter de s’authentifier.


invalid_grant ou unauthorized_client, 50053 (#2)

Problème

Le mot de passe a expiré, code d’erreur 50053. Le message d’erreur ressemble à :

{"error":"user_password_expired","error_description":"AADSTS50055: Password is expired.\r\nTrace ID: 241a7a47-e59f-42d8-9263-fbb7c1d51e00\r\nCorrelation ID: c7fe4a42-67e4-4acd-9fb6-f4fb6db76d6a\r\nTimestamp: 2019-06-06 17:29:37Z","error_codes":[50055],"timestamp":"2019-06-06 17:29:37Z","trace_id":"241a7a47-e59f-42d8-9263-fbb7c1d51e00","correlation_id":"c7fe4a42-67e4-4acd-9fb6-f4fb6db76d6a","suberror":"user_password_expired","password_change_url":"https://portal.microsoftonline.com/ChangePassword.aspx"}

Cause :

Le mot de passe a expiré.

Résolution

Modifiez le mot de passe dans le Portail Azure (sur votre système local), puis patientez 30 minutes que la synchronisation reprenne.


interaction_required

Problème

Réception du message d’erreur interaction_required.

Cause :

La stratégie d’accès conditionnel ou MFA est appliquée à l’utilisateur. Étant donné que l’authentification interactive n’est pas encore prise en charge, l’utilisateur ou le cluster doit être exempté de l’accès conditionnel/MFA. Si vous choisissez d’exempter le cluster (stratégie d’exemption basée sur l’adresse IP), assurez-vous que les ServiceEndpoints AD sont activés pour ce réseau virtuel.

Résolution

Utilisez une stratégie d'accès conditionnel et exemptez les clusters HDInsight de la MFA, comme indiqué dans Configurer un cluster HDInsight avec Pack Sécurité Entreprise à l'aide de Microsoft Entra Domain Services.


Connexion refusée

Problème

Connexion refusée.

Cause

Pour accéder à cette phase, c’est l’authentification Kerberos qui pose problème, pas l’authentification OAuth. Si ce cluster est sauvegardé par ADLS, la connexion OAuth a réussi avant la tentative d’authentification Kerberos. Sur les clusters WASB, la connexion OAuth n’est pas tentée. L'échec de Kerberos peut avoir de nombreuses raisons – par exemple, les hachages de mots de passe sont désynchronisés, le compte d'utilisateur est verrouillé dans les services de domaine Microsoft Entra, etc. La synchronisation des hachages de mot de passe se fait uniquement lorsque l’utilisateur modifie le mot de passe. Lorsque vous créez l'instance Microsoft Entra Domain Services, elle commence à synchroniser les mots de passe modifiés après la création. Elle ne synchronise pas rétroactivement les mots de passe qui ont été définis avant son commencement.

Résolution

Si vous pensez que les mots de passe ne sont pas synchronisés, essayez de modifier le mot de passe et attendez quelques minutes pour la synchronisation.

Essayez de vous connecter par SSH. Vous devez essayer de vous authentifier (kinit) avec les mêmes informations d’identification, depuis une machine jointe au domaine. Connectez-vous par SSH dans le nœud de périphérie / principal avec un utilisateur local et exécutez kinit.


échec de kinit

Problème

Échec de kinit.

Cause :

Varie.

Résolution

Pour que kinit réussisse, vous devez connaître votre sAMAccountName (il s’agit du nom de compte court sans le domaine). sAMAccountName constitue généralement le préfixe du compte (comme bob dans bob@contoso.com). Pour certains utilisateurs, il peut être différent. Vous devez avoir la possibilité de parcourir/rechercher le répertoire pour connaître votre sAMAccountName.

Moyens de rechercher sAMAccountName :

  • Si vous pouvez vous connecter à Ambari à l’aide de l’administrateur Ambari local, examinez la liste des utilisateurs.

  • Si vous disposez d'un ordinateur Windows joint à un domaine, vous pouvez utiliser les outils Windows AD standard pour parcourir. Cela nécessite un compte opérationnel dans le domaine.

  • À partir du nœud principal, vous pouvez utiliser des commandes SAMBA pour effectuer une recherche. Cela nécessite une session Kerberos valide (kinit réussi). net ads search "(userPrincipalName=bob*)"

    Les résultats de la recherche/navigation doivent vous indiquer l’attribut sAMAccountName. En outre, vous pouvez examiner d’autres attributs tels que pwdLastSet, badPasswordTime, userPrincipalName, etc., pour voir si ces propriétés correspondent à ce que vous attendez.


kinit échoue avec échec de préauthentification

Problème

kinit échoue avec échec Preauthentication.

Cause :

Nom d’utilisateur ou mot de passe incorrect.

Résolution

Vérifiez votre nom d’utilisateur et votre mot de passe. Vérifiez également les autres propriétés décrites. Pour activer le débogage détaillé, exécutez export KRB5_TRACE=/tmp/krb.log à partir de la session avant d’essayer kinit.


La commande Job/HDFS échoue à cause de TokenNotFoundException

Problème

La commande Job/HDFS échoue à cause de TokenNotFoundException.

Cause :

Le jeton d’accès OAuth requis est introuvable pour que le travail/la commande aboutisse. Le pilote ADLS/ABFS essaie de récupérer le jeton d’accès OAuth auprès du service d’informations d’identification avant d’effectuer des demandes de stockage. Ce jeton est inscrit lorsque vous vous connectez au portail Ambari à l’aide du même utilisateur.

Résolution

Vérifiez que vous êtes connecté au portail Ambari une seule fois via le nom d’utilisateur dont l’identité est utilisée pour exécuter le travail.


Erreur lors de la récupération du jeton d’accès

Problème

L’utilisateur reçoit un message d’erreur Error fetching access token.

Cause :

Cette erreur se produit par intermittence lorsque les utilisateurs essaient d’accéder au ADLS Gen2 à l’aide de listes de contrôle d’accès et que le jeton Kerberos a expiré.

Résolution

  • Pour Azure Data Lake Storage Gen1, nettoyez le cache du navigateur et reconnectez-vous à Ambari.

  • Par Azure Data Lake Storage Gen2, exécutez /usr/lib/hdinsight-common/scripts/RegisterKerbTicketAndOAuth.sh <upn> pour l’utilisateur auquel l’utilisateur tente de se connecter.


Étapes suivantes

Si votre problème ne figure pas dans cet article ou si vous ne parvenez pas à le résoudre, utilisez un des canaux suivants pour obtenir de l’aide :

  • Obtenez des réponses de la part d’experts Azure en faisant appel au Support de la communauté Azure.

  • Connectez-vous à @AzureSupport, le compte Microsoft Azure officiel pour améliorer l’expérience client. Connexion de la communauté Azure aux ressources appropriées : réponses, support technique et experts.

  • Si vous avez besoin d’une aide supplémentaire, vous pouvez envoyer une requête de support à partir du Portail Microsoft Azure. Sélectionnez Support dans la barre de menus, ou ouvrez le hub Aide + Support. Pour plus d’informations, consultez Création d’une demande de support Azure. L’accès au support relatif à la gestion et à la facturation des abonnements est inclus avec votre abonnement Microsoft Azure. En outre, le support technique est fourni avec l’un des plans de support Azure.