S’applique aux abonnements Entreprise.
Liste de certaines erreurs courantes lors de l’exécution de l’utilitaire UST et conseils pour les résoudre
FileNotFoundError: [Errno 2]
Exemple de sortie d’erreur de console :
FileNotFoundError : [Errno 2] Aucun fichier ou répertoire de ce type : 'C:\\Users\\USER\\.pex\\install\\pycryptodome [...]'
Peut apparaître sous Windows à cause des chemins > 256 caractères.
Conseil : créez une variable d’environnement nommée PEX_ROOT avec la valeur C:\pex (si le script est exécuté à partir du lecteur C:, ou modifiez la lettre pour qu’elle corresponde). Parfois, un redémarrage du système est nécessaire pour appliquer les modifications.
can't open file 'user-sync.pex': [Errno 2]
Exemple de sortie d’erreur :
python : impossible d'ouvrir le fichier « user-sync.pex » : [Errno 2] Aucun fichier ou répertoire de ce type
Conseil : assurez-vous d’exécuter la ligne de commande python à partir du dossier où se trouve le fichier user-sync.pex.
Exemple de sortie d’erreur de journal :
2018-01-01 11:49:42 28102 AVERTISSEMENT umapi - Délai d'expiration UMAPI... service indisponible (code 429 à l'essai 1)
2018-01-01 11:49:42 28102 AVERTISSEMENT umapi - Prochaine tentative dans 42 secondes...
Conseil : si le délai d'expiration est inférieur à 30 minutes, ces messages d'avertissement sont reçus lorsque le quota d'appels API à effectuer en une minute est atteint. L’UST est doté d’un mécanisme de retour en arrière exponentiel pour réessayer l’appel, ce qui augmente la durée entre les tentatives.Le script s’arrête après trois tentatives échouées.
Dans la présente situation, il est recommandé de laisser le script s'exécuter jusqu'à la fin.
Si le délai d'expiration est supérieur à 1 000 secondes, il s'agirait d'une limitation liée à la fréquence d'exécution de chaque instance de l'outil de synchronisation des utilisateurs et utilisatrices.Si une Instance est observée comme étant exécutée plus fréquemment, elle sera limitée entre 30 et 75 minutes.Bien que le délai d'exécution mette simplement l'UST en pause pendant un certain temps (donc pas une erreur critique d'arrêt), l'UST saura récupérer et continuer la synchronisation juste après.
Comme le script reconnaît quand deux Instances sont lancées en même temps, aucune nouvelle instance ne peut être déclenchée tant que la première n'a pas fini de s'exécuter.Dans ce cas, un message d'erreur peut apparaître dans le journal UST indiquant qu'« un processus est déjà en cours ».
Voici quelques recommandations pour améliorer les performances de la fréquence d'exécution :
- révisez la fréquence de la tâche planifiée et assurez-vous qu'elle est configurée pour se répéter au moins toutes les 2 heures
- révisez l'heure de déclenchement de la tâche planifiée pour qu'elle ne démarre pas au temps :00 ou :30 (évitez les pics d'activité du trafic)
- s'il est nécessaire d'exécuter l'outil plus souvent, réfléchissez à la possibilité d'utiliser l'UST avec une stratégie push (delta des changements) au lieu d'une synchronisation complète
- adaptez le calendrier d'exécution de l'UST à la journée de travail de votre organisation lorsque les utilisateurs et utilisatrices ont besoin d'être configurés (par exemple, si votre organisation n'a pas besoin de modifier la configuration des utilisateurs et utilisatrices la nuit, n'exécutez pas de tâches de synchronisation pendant cette période)
error.user.belong_to_another_org
Exemple d’entrée de journal :
2018-01-01 11:49:42 28102 ERREUR umapi.action - Erreur dans requestID : action_1 (Utilisateur ou utilisatrice : {'user': 'myuser@domain2.com', 'requestID':'action_1'}, Command: {'createFederatedID': {'email': 'myuser@domain2.com', 'country': 'US', 'option': 'ignoreIfAlreadyExists', 'firstname': 'fname', 'lastname': 'lname'}}):: code : « error.user.belongs_to_another_org » message : « Illégal d'inviter un utilisateur ou une utilisatrice provenant de la source d'authentification appartenant à une autre organisation »
Conseil : le domaine utilisé pour créer le compte peut ne pas être déposé/approuvé au sein de vos organisations.Un drapeau ou un point vert doit apparaître pour les domaines actifs dans Admin Console -> Paramètres.Si ce n’est pas le cas, compléter le processus de revendication de domaine peut résoudre le problème.
Exemple d’entrée de journal :
2018-01-01 12:34:23 13383 ERREUR umapi.action - Erreur dans requestID : action_6 (Utilisateur ou utilisatrice : {'user': ‘user@domain.com’, 'requestID': 'action_6'}, Command: {'createEnterpriseID': {'email': 'user@domain.com', 'option': 'updateIfAlreadyExists', 'firstname': 'test', 'lastname': 'user', 'country': ‘US’}}): code : « error.user.type_mismatch » message : « Le type d'utilisateur ou d’utilisatrice demandé pour l'invitation ne correspond pas au type de domaine revendiqué »
Conseil : une tentative est effectuée pour créer un compte de type FederatedID, mais le répertoire est créé pour une utilisation en entreprise ou inversement.Recherchez l’attribut user_identity_type dans le fichier user-sync-config.yml. Modifiez la valeur en fonction du type de répertoire affiché dans la Admin Console (Paramètres > Identité > Domaines > Valeur du type de répertoire pour le domaine donné).
Exemple de sortie d’erreur de console :
Échec de l'exécution du fichier PEX, dépendances compatibles manquantes pour :
pyyaml
cryptography
cffi
umapi-client
pycryptodome
pyldap
psutil
user-sync
Conseils :
a) Vérifiez si la version de Python que vous avez installée dans votre système est la version 32 bits. Désinstallez la version 32 bits et installez la version 64 bits pour résoudre le problème.
b) Vérifiez si la version user-sync.pex que vous avez téléchargée à partir de GitHub correspond à votre version de Python et à votre type de système d’exploitation. Par exemple,user-sync-v2.3-win64-py365.zip doit être téléchargé pour Windows 64 bits et Python 3.
Utiliser la dernière version de Python n’est pas toujours le meilleur choix. Le .pex a été construit en premier, il vaut mieux essayer de faire correspondre la version de Python. Référez-vous au suffixe du fichier .zip téléchargé pour identifier la version de Python qui correspond. Dans l’exemple ci-dessus (user-sync-v2.3-win64-py365.zip), on peut identifier Python 3.6.5.
Erreur de déchiffrement de la clé privée
Exemple d’entrée de journal :
2018-01-01 09:52:23 7920 DÉBOGAGE umapi - umapi : lecture des données de clé privée à partir du fichier C:\path\to\private.key
2018-01-01 09:52:23 7920 CRITIQUE main - umapi configuration.enterprise : Erreur de déchiffrement de la clé privée, soit le mot de passe est incorrect, soit : le format de clé RSA n'est pas pris en charge
Conseils :
a) si le problème ne peut pas être identifié rapidement, il est plus rapide de rééditer la paire de clés
b) N’utilisez pas l’attribut umapi_private_key_data si vous exécutez le script sous Windows. Il vaut mieux chiffrer la clé et sauvegarder ce mot de passe dans le Gestionnaire d’informations identification.
c) Essayez une clé privée de longueur RSA256/2048 bits si vous utilisez un format différent pour émettre la paire de clés
d) Il est possible que vous configuriez la clé secure_private_key_pass_key: umapi_private_key_passphrase dans le fichier connector-umapi.yml. Dans ce cas, assurez-vous que l’entrée dans la sauvegarde d’informations d’identification pour cette valeur et les valeurs associées correspondent (voir ci-dessous).
Aucune valeur dans le stockage sécurisé pour l’utilisateur ou l’utilisatrice...
Exemple d’entrée de journal :
2018-01-01 09:52:23 7920 CRITIQUE main - umapi CRITIQUE main - umapi configuration.enterprise : Aucune valeur dans le stockage sécurisé pour l'utilisateur ou l’utilisatrice « someUUIDvalue@AdobeOrg », clé « umapi_api_key »
Conseils :
a) l’entrée dans la sauvegarde d’informations d’identification pour umapi_api_key peut être manquante. Créez l’entrée dans la sauvegarde d’informations d’identification. Vous trouverez la documentation d’aide ici.
b) Il se peut que la valeur ait été saisie avec un autre compte d’utilisateur dans la sauvegarde d’informations d’identification. Toutefois, pour l’utilisateur actuellement connecté, cette entrée est manquante. Si nécessaire, ajoutez-la ou changez de compte d’utilisateur.
error.internal.exceptionflys / error.unauthorized
Exemple de sortie d’erreur :
umapi_client.error.RequestError : Erreur de demande (401) : : {"lastPage":false,"result":"error.internal.exceptionflys","message":"Failed to exchange token"}
OR
"umapi_client.error.RequestError: Erreur de demande (401): {"lastPage":false,"result":"error.unauthorized","message":"Échec de l'authentification du jeton fourni"}"
Conseil : Il se peut que dans Admin Console -> Paramètres -> Paramètres d’authentification une option autre que Le plus simple pour les utilisateurs (le mot de passe n’expire jamais) soit sélectionnée.Si l’option Plus sécurisé ou Le plus sécurisé est activée, le mot de passe du compte technique lié à l’intégration peut expirer.
Pour résoudre ce problème, une nouvelle intégration doit être créée. Assurez-vous que les métadonnées soient également renouvelées dans le fichier connector-umapi.yml.
Un correctif a été déployé, mais cela peut affecter les intégrations créées avant octobre 2018.
Aucune connexion n’a pu être établie [Errno 10061]
Exemple de sortie d’erreur :
ConnectionError : HTTPSConnectionPool(host='usermanagement.adobe.io', port=443) : Nombre maximal de tentatives dépassé avec l'URL : /v2/usermanagement/users/someUUID@AdobeOrg/0?directOnly=True (Causé par NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000027B9630>' : Échec de l'établissement d'une nouvelle connexion : [Errno 10061] Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusée',))
Conseil :
Ce problème est lié au fait que UST ne peut pas se connecter aux points de terminaison de l’API publique. Les paramètres locaux peuvent empêcher l’accès en raison des règles de pare-feu, du blocage du trafic par proxy, des paramètres de compte pour l’accès Internet, etc.
Dans certaines situations, il peut être utile d'ajouter la variable d'environnement https_proxy avec une valeur telle que :
http://<adresseProxy>:<port> OU https://<adresseProxy>:<port>
Dans d’autres cas, autoriser l’accès à ces points de terminaison peut aider :
ims-na1.adobelogin.com:443
usermanagement.adobe.io:443
Ce problème peut uniquement être résolu localement en désactivant l’accès aux points de terminaison ci-dessus pour le compte en cours d’exécution.
Exemple d’entrée de journal :
2017-07-07 09:01:37 4916 CRITIQUE main - La connexion à l'organisation [...] au point d'entrée https://usermanagement.adobe.io/v2/usermanagement a échoué : Impossible d'autoriser par rapport à https://ims-na1.adobelogin.com/ims/exchange/jwt: Code de réponse : 400, Texte de réponse : {"error_description":"Les métascopes dans le JWT ne sont pas un sous-ensemble des métascopes dans la liaison.","error":"invalid_scope"}
Conseil : Accédez à l’intégration que vous avez créée à l’adresse https://developer.adobe.com/console/projects et consultez le menu de gauche dans lequel les API sont répertoriées.Assurez-vous que l’API User Management est ajoutée en tant que service (elle apparaît dans la liste).
Aucune liaison valide n’a été trouvée pour la combinaison entre l’organisation et le compte technique
Exemple d’entrée de journal (mode débogage) :
2017-07-07 09:01:37 4916 CRITIQUE main - La connexion UMAPI à l'identifiant d'organisation 'someUUIDvalue@AdobeOrg' a échoué : Impossible d'autoriser par rapport à https://ims-na1.adobelogin.com/ims/exchange/jwt:
Code de réponse : 400, Texte de réponse : {"error_description":"Aucune liaison valide n'a été trouvée pour la combinaison d'organisation et de compte technique","error":"invalid_token"}
Conseils :
a) Cela peut être dû au fait que la valeur tech_acct dans le fichier connector-umapi.yml correspond à une autre valeur que l’ID de compte technique dans l’intégration à l’adresse https://developer.adobe.com/console/projects.Vérifiez la valeur d’ID de compte technique de l’intégration actuelle et copiez-la dans ce fichier.
b) Cela peut également être dû au fait que le certificat public de l’intégration a expiré. Renouvelez la clé privée et la clé publique. Ensuite, téléchargez la clé publique et remplacez l’ancienne clé privée par la nouvelle. Vérifiez le chemin d’accès dans le fichier connector-umapi.yml pour qu’il pointe vers le fichier approprié.
c) Vérifiez si l’intégration est faite pour la bonne organisation. Sélectionnez l’organisation dans la liste déroulante située dans le coin supérieur gauche à l’adresse https://developer.adobe.com/console/projects. Ensuite, vérifiez la valeur d’ID de compte technique pour l’intégration active avec les autres métadonnées (ID d’organisation, secret et ID client).
SSL: CERTIFICATE_VERIFY_FAILED
Exemple d’entrée de journal :
2017-07-07 09:01:37 4916 CRITIQUE main - La connexion UMAPI à l'identifiant d'organisation 'someUUIDvalue@AdobeOrg' a échoué : [SSL: CERTIFICATE_VERIFY_FAILED] la vérification du certificat a échoué (_ssl.c:661)
Conseil : cela est causé par l'inspection SSL activée sur le serveur proxy local
Solution 1 : obtenez le CA racine du proxy au format PEM (supposons que son nom est thecert.crt).Si le format DER est utilisé, transformez-le en PEM à l’aide de la commande openssl :
openssl x509 -inform DER -in thecert.crt -out thecert.pem -outform PEM
Remarque : si vous voyez le contenu du certificat et une chaîne encodée en base64 entre les lignes
-----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----, cela signifie que vous avez le fichier au format PEM.
Ensuite, créez une variable d’environnement nommée REQUESTS_CA_BUNDLE et définissez sa valeur comme chemin d’accès au fichier thecert.pem.
Solution 2 : dans certains cas, il a été observé sous Windows que si l'outil est exécuté à partir d'un lecteur différent de celui du système d'exploitation et de Python installé, cette erreur peut se produire.Le déplacement de l’intégralité du script sur le lecteur où le système d’exploitation existe peut être une solution.S’il ne s’agit pas d’une option, le fichier cacert.pem contenant toutes les autorités de certification racine approuvées pourrait être copié dans l’autre lecteur et son chemin utilisé comme valeur d’entrée pour la variable d’environnement REQUESTS_CA_BUNDLE.Si un proxy inspecte également le trafic SSL, alors le contenu du certificat d’autorité de certification racine doit être copié dans le fichier cacert.pem pour garantir que le certificat proxy est également approuvé.
Remarque : Une installation Python par défaut aurait le bundle de certificats à l’adresse C:\Python36\Lib\site-packages\certifi\cacert.pem.
Solution 3 : désactiver l’inspection SSL côté proxy pour les points de terminaison API ims-na1.adobelogin.com et usermanagement.adobe.io
Aucun groupe trouvé [...]
Exemple d’entrée de journal :
2018-01-01 09:01:37 4916 AVERTISSEMENT ldap - Aucun groupe trouvé pour : Name_Of_The_Group
Conseils :
a) Ce groupe n’existe pas dans LDAP sous ce nom exact ; corrigez-le en ajoutant le nom LDAP correct du groupe.
b) Le groupe n’est pas détectable sous le nom déclaré base_dn (voir le fichier connector-ldap.yml). Modifiez la valeur base_dn pour qu’elle contienne le groupe mentionné (cela se produit principalement lorsque base_dn pointe vers une unité d’organisation, au lieu d’adopter un champ aussi large que possible).
Exemple d’entrée de journal :
2018-01-01 11:25:45 1 ERREUR umapi.action - Erreur dans requestID : action_1 (Utilisateur ou utilisatrice : {'user': 'myuser@domain.com', 'useAdobeID': True, 'requestID': 'action_1'}, Commande : {'add': {'product': ['group_name']}}): code : "error.group.not_found" message : « Le groupe my_group_name n'a pas été trouvé »
Conseil : le groupe utilisateur ou utilisatrice group_name dans la sortie ci-dessus n’existe pas côté Adobe. Vous pouvez le créer.Si vous souhaitez définir le nom d’un PLC au lieu de celui d’un groupe d’utilisateurs et d’utilisatrices, consultez cette page de documentation pour obtenir une explication plus visuelle.
Exemple d’entrée de journal :
2018-09-05 10:58:08 96329 CRITIQUE main - La connexion à l'organisation some_Org_UUID@AdobeOrg au point d'entrée https://usermanagement.adobe.io/v2/usermanagement a échoué : dlopen(/Users/user/.pex/install/cryptography-2.3-cp37-cp37m-macosx_10_12_x86_64.whl.f77d5cc74b0deef9f1df7eacfe5f5ea57ed94a63/cryptography-2.3-cp37-cp37m-macosx_10_12_x86_64.whl/cryptography/hazmat/bindings/_openssl.abi3.so, 2): Bibliothèque non chargée : /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Référencé depuis : /Users/user/.pex/install/cryptography-2.3-cp37-cp37m-macosx_10_12_x86_64.whl.f77d5cc74b0deef9f1df7eacfe5f5ea57ed94a63/cryptography-2.3-cp37-cp37m-macosx_10_12_x86_64.whl/cryptography/hazmat/bindings/_openssl.abi3.so
Raison : image non trouvée
2018-09-05 10:58:08 96329 INFO main - ========== Fin de l'exécution (version User Sync : 2.3) (Temps total : 0:00:00)
Conseil : cette erreur a été enregistrée sous macOS High Sierra, lors de l’utilisation de UST v2.3, à l’aide de Python 3.7.0.L'exécution de brew install openssl dans le terminal a résolu le problème lié à ce scénario particulier.
Impossible de créer une personne pour le type 2 ou 3 [...]
Exemple d’entrée de journal :
2019-07-28 07:17:51 2220 ERREUR umapi.action - Erreur dans requestID : action_1 (Utilisateur ou utilisatrice : {'user': 'user@claimed-domain.com', 'requestID': 'action_1'}, Commande : {'createFederatedID': {'email': 'user@claimed-domain.com', 'option': 'updateIfAlreadyExists', 'firstname': 'First', 'lastname': 'Last', 'country': 'US'}}): code : "error.internal.create_failed" message : « Impossible de créer une personne pour le type 2 ou 3.Le résultat Renga est NOT_ALLOWED, la ressource est gérée en externe et le jeton ne possède pas l'objectif GROUP_SOURCE_UPDATE. »
Parfois, la propriété @claimed-domain.com appartient à une autre organisation qui a configuré un connecteur Azure ou Google pour gérer la synchronisation des comptes avec Admin Console. Ce même domaine est ensuite confié à une autre organisation qui utilise l’outil User Sync pour synchroniser les comptes au format @claimed-domain.com
Cause : Le message enregistré s’affiche lorsque l’outil de synchronisation extrait le compte
user@claimed-domain.com d’un serveur LDAP pour le créer dans l’organisation secondaire. Cependant, le compte n’est pas encore créé/synchronisé dans l’organisation principale via Azure ou Google Connector.
Conseil : essayez de créer/synchroniser le compte user@claimed-domain.com dans l’organisation à l’aide du connecteur Azure ou Google, puis réessayez de synchroniser avec l’utilitaire UST dans l’organisation mandataire.
Erreur LDAP inattendue lors de la lecture de [...]
Exemple d’entrée de journal :
2018-09-05 10:58:08 96329 6348 CRITIQUE main - Échec LDAP inattendu lors de la lecture des informations de groupe : {'desc': 'Référence', 'info': 'Référence:\nldap://domain.local/DC=sub,DC=domain,DC=local'}
Cause possible : Le ou les groupes d’intérêt sont situés dans un sous-domaine, mais la valeur hôte est l’un des domaines racine.
Conseil : remplacez la valeur de l’hôte par l’un des sous-domaines où des groupes d’utilisateurs et d’utilisatrices sont disponibles. Si des utilisateurs ou des groupes d’intérêt se trouvent dans le domaine racine et dans son ou ses sous-domaines, utilisez le port de catalogue global sur le domaine racine. Passez les groupes du ou des sous-domaines en universel au lieu de global. Exemple de valeur d’hôte utilisant le catalogue global : ldap://domain.local:3268 ou ldaps://domain.local:3269
Dans ce dernier scénario, si le port de catalogue global est utilisé, assurez-vous que la valeur base_dn ne prend aucune valeur :
base_dn: ""
error.organization.invalid_id
Exemple d’entrée de journal :
2020-08-20 12:00:00 1892 ERREUR main - Exception non gérée
raise RequestError(result)
umapi_client.error.RequestError: Erreur de demande (401) : {"lastPage":false,"result":"error.organization.invalid_id",
"message":"UNAUTHORIZED"}
Cette erreur a été observée sur des intégrations plus anciennes.
La solution : créez une nouvelle intégration (ou un nouveau projet) sur https://developer.adobe.com/console/projects, à côté de celle existante, utilisée dans le même but.La nouvelle intégration fournira de nouvelles informations d'identification, assurez-vous donc de les mettre à jour dans le fichier connector-umapi.yml. Il est très probable que la paire de clés (clé privée/publique) doive être réémise, par conséquent la nouvelle clé privée doit remplacer celle existante.
Impossible de créer une personne de type createFederatedID
Exemple d’entrée de journal :
2021-01-01 18:00:00 14063 ERREUR umapi.action - Erreur dans requestID : action_19 (Utilisateur ou utilisatrice : {'user': 'some_user', 'domain': some.domain', 'requestID': 'action_19'}, Commande : {'createFederatedID': {'email': 'some_user@some.domain', 'option': 'ignoreIfAlreadyExists', 'firstname': 'FName', 'lastname': 'LName, 'country': 'GB'}}) : code : « error.internal.create_failed » message : « Impossible de créer une personne de type createFederatedID »
Il s'agit d'une erreur générique pour plusieurs causes, mais le problème habituel est que le domaine utilisé dans l'action de création est sous l'influence d'une configuration de synchronisation Azure ou Google.
Comment vérifier : connectez-vous à Admin Console avec le compte d'administration système, cliquez sur le menu Paramètres, cliquez à l'intérieur du répertoire qui contient le domaine, puis cliquez sur l'onglet du menu de synchronisation
Y a-t-il une carte Sync Source présente dans le menu Sync ?
Si Oui, la solution dépend de la façon dont la synchronisation doit se poursuivre :
-> si le connecteur Azure ou Google doit être celui qui effectue la synchronisation, continuez avec la configuration de la synchronisation de la source et supprimez complètement l’UST
-> si l’UST doit être celui qui effectue la synchronisation, cliquez sur les boutosn « Accéder aux paramètres » et « Supprimer la synchronisation » en bas de la page ; l’UST devrait ensuite fonctionner normalement
Si Non, il se peut que l'UST actuel s'exécute sur une console dans laquelle le domaine en question est confié à partir d'une console différente (organisation propriétaire).Cette autre organisation peut avoir activé la synchronisation Azure ou Google, ce qui pourrait conduire à l'erreur actuelle.La solution dans ce cas est de synchroniser d'abord le compte dans l'org/la console propriétaire, puis d'utiliser l’UST pour créer/ajouter le compte dans la console actuelle.
Si aucune des situations ci-dessus ne correspond au scénario actuel, il est préférable de contacter le support Entreprise.