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 Gen2, lorsque les utilisateurs du domaine se connectent aux services du cluster au travers de HDI Gateway (comme lors d’une connexion au portail Apache Ambari), HDI Gateway tente d’abord d’obtenir un jeton OAuth auprès de Microsoft Entra, puis obtient 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: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\n Correlation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: 2019-01-28 17:49:58Z","error_codes":[70002,50126], "timestamp":"2019-01-28 17:49:58Z","trace_id":"0000aaaa-11bb-cccc-dd22-eeeeee333333","correlation_id":"aaaa0000-bb11-2222-33cc-444444dddddd"}
Cause
Le code d'erreur Microsoft Entra 50126 signifie que la stratégie AllowCloudPasswordValidation
n'est pas définie par le locataire.
Résolution
Utilisez les informations d’identification de l’Administrateur d’identité hybridepour utiliser des hachages de mots 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 aaaabbbb-0000-cccc-1111-dddd2222eeee directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: 2222cccc-33dd-eeee-ff44-aaaaaa555555\r\nCorrelation ID: cccc2222-dd33-4444-55ee-666666ffffff\r\nTimestamp: 2019-04-29 15:52:16Z", "error_codes":[50034],"timestamp":"2019-04-29 15:52:16Z","trace_id":"2222cccc-33dd-eeee-ff44-aaaaaa555555", "correlation_id":"cccc2222-dd33-4444-55ee-666666ffffff"}
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: 00aa00aa-bb11-cc22-dd33-44ee44ee44ee\r\nCorrelation ID: 11bb11bb-cc22-dd33-ee44-55ff55ff55ff\r\nTimestamp: 2019-06-06 09:47:23Z","error_codes":[50053],"timestamp":"2019-06-06 09:47:23Z","trace_id":"aaaa0000-bb11-2222-33cc-444444dddddd","correlation_id":"aaaa0000-bb11-2222-33cc-444444dddddd"}
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: 6666aaaa-77bb-cccc-dd88-eeeeee999999\r\nCorrelation ID: eeee4444-ff55-6666-77aa-888888bbbbbb\r\nTimestamp: 2019-06-06 17:29:37Z","error_codes":[50055],"timestamp":"2019-06-06 17:29:37Z","trace_id":"6666aaaa-77bb-cccc-dd88-eeeeee999999","correlation_id":"eeee4444-ff55-6666-77aa-888888bbbbbb","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 des 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 quepwdLastSet
,badPasswordTime
,userPrincipalName
, etc., pour voir si ces propriétés correspondent à ce que vous attendez.
Échec de kinit 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 essayant 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.