Enumeración de varios errores comunes al ejecutar User Sync Tool y sugerencias para resolverlos
Archivo no encontrado: [Núm. error 2]
Salida de error de consola de ejemplo:
FileNotFoundError: [Errno 2] No existe el archivo o el directorio: 'C:\\Users\\USER\\.pex\\install\\pycryptodome [...]'
Puede aparecer en Windows debido a rutas superiores a 256 caracteres.
Sugerencia: Cree una variable de entorno denominada PEX_ROOT con el valor C:\pex (si el script se ejecuta en la unidad C:; de lo contrario, cambie la letra a la unidad que corresponda). A veces es necesario reiniciar el sistema para que surta efecto.
No se puede abrir el archivo user-sync.pex: [Núm. error 2]
Salida de error de muestra:
python: no se puede abrir el archivo 'user-sync.pex': [Errno 2] No existe el archivo o el directorio
Sugerencia: Ejecute la línea de comandos python dentro de la carpeta donde se ubica el archivo user-sync.pex.
Se ha excedido el tiempo de espera de UMAPI
Salida de error del registro de muestra:
2018-01-01 11:49:42 28102 WARNING umapi - Tiempo de espera de UMAPI... servicio no disponible (código 429 en el intento 1)
2018-01-01 11:49:42 28102 WARNING umapi - Próximo reintento en 42 segundos...
Sugerencia: Si el tiempo de espera es inferior a 30 minutos, estos mensajes de advertencia se reciben cuando se alcanza la cuota de llamadas a la API que se pueden realizar en un minuto.UST tiene un mecanismo de retroceso exponencial para volver a intentar la llamada, lo que incrementa el intervalo de tiempo entre reintentos. El script se detiene después de tres reintentos incorrectos.
La recomendación aquí es dejar que el script se ejecute hasta el final.
Si el tiempo de espera es superior a 1000 segundos, esto sería una limitación relacionada con la frecuencia de ejecución de cada instancia de la herramienta de sincronización de usuarios.Si se observa que una instancia se ejecuta con más frecuencia, se limitará entre 30 y 75 minutos.Aunque el tiempo de espera solo pone el UST en espera durante un período de tiempo (por lo que no es un error crítico de detención), el UST sabrá recuperarse y continuar la sincronización justo después.
Dado que el script reconoce cuando se lanzan dos instancias al mismo tiempo, no se puede activar una nueva instancia hasta que la inicial haya terminado de ejecutarse.En este caso, puede aparecer un mensaje de error en el registro de UST que hace referencia a 'un proceso ya está en curso'.
Aquí hay algunas recomendaciones para un mejor rendimiento, con respecto a la frecuencia de ejecución:
- revise la frecuencia de la tarea programada y asegúrese de que esté configurada para repetirse al menos cada 2 horas
- revise la hora de activación de la tarea programada para que no comience en el minuto :00 o :30 (evite la actividad de tráfico pico)
- si se requiere ejecutar la herramienta con más frecuencia, considere la posibilidad de usar UST con push strategy (delta de cambios) en lugar de sincronización completa
- adapte el horario de ejecución del UST al día laboral de su organización cuando los usuarios necesiten aprovisionamiento (por ejemplo, si su organización no necesita modificar el aprovisionamiento de usuarios por la noche, no ejecute trabajos de sincronización durante este tiempo)
error.user.belongs_to_another_org
Entrada del registro de muestra:
2018-01-01 11:49:42 28102 ERROR umapi.action - Error in requestID: action_1 (User: {'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: "Illegal to invite user from another organization's owned auth src"
Sugerencia: el dominio utilizado para crear la cuenta podría no reclamarse ni ser de confianza dentro de sus organizaciones. Debe aparecer una bandera o punto verde para los dominios activos en Admin Console -> Configuración. Si no es así, se puede resolver completando el proceso de reclamación del dominio.
Entrada del registro de muestra:
2018-01-01 12:34:23 13383 ERROR umapi.action - Error in requestID: action_6 (User: {'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: "The user type requested for the invite does not match the claimed domain type"
Sugerencia: se intenta crear un tipo de cuenta federatedID, pero se crea el directorio para el uso de Enterprise o a la inversa. Busque el atributo user_identity_type dentro del archivo user-sync-config.yml. Modifique el valor según el tipo de directorio que se muestra en Admin Console (valor en Configuración > Identidad > Dominios > Tipo de directorio para el dominio indicado).
Salida de error de consola de ejemplo:
Error al ejecutar el archivo PEX, faltan dependencias compatibles para:
pyyaml
cryptography
cffi
umapi-client
pycryptodome
pyldap
psutil
user-sync
Sugerencias:
a) Compruebe si en el sistema está instalada la versión de 32 bits de Python. Para solucionar el problema, desinstale la versión de 32 bits e instale la de 64 bits.
b) Compruebe si la versión de user-sync.pex que ha descargado de GitHub iguala su versión de Python y el tipo de sistema operativo. Se debe descargar el archivo user-sync-v2.3-win64-py365.zip para Windows de 64 bits y Python 3.
Usar la versión de Python más reciente no siempre es buena idea. Para tratar de igualar la versión Python, se integró .pex en primer lugar. Compruebe el sufijo del archivo .zip descargado para identificar la versión de Python que sería adecuada. Para el ejemplo anterior (user-sync-v2.3-win64-py365.zip), se puede identificar Python 3.6.5.
Error al descifrar la clave privada
Entrada de registro de muestra:
2018-01-01 09:52:23 7920 DEBUG umapi - umapi: reading private key data from file C:\path\to\private.key
2018-01-01 09:52:23 7920 CRITICAL main - umapi configuration.enterprise: Error decrypting private key, either the password is wrong or: RSA key format is not supported
Sugerencias:
a) si el problema no se puede identificar rápidamente, es más rápido volver a emitir el par de claves
b) No utilice el atributo umapi_private_key_data si ejecuta el script en Windows. Cifre la llave y almacene esa contraseña en el Administrador de credenciales.
c) Pruebe una clave privada RSA256 /2048 bits, si ha usado un formato diferente para emitir el par de claves
d) Es posible que configure secure_priv_key_pass_key: umapi_private_key_passphrase dentro del archivo connector-umapi.yml. En tal caso, asegúrese de que coincidan la entrada del almacén de credenciales con este valor y los valores asociados (consulte a continuación).
No hay ningún valor en el almacenamiento seguro para el usuario...
Entrada del registro de muestra:
2018-01-01 09:52:23 7920 CRITICAL main - umapi CRITICAL main - umapi configuration.enterprise: No hay valor en el almacenamiento seguro para el usuario "someUUIDvalue@AdobeOrg", clave "umapi_api_key"
Sugerencias:
a) Es posible que falte la entrada del almacén de credenciales para umapi_api_key. Cree la entrada en el almacén de credenciales. Encontrará documentación de ayuda aquí.
b) Puede ser que el valor se haya añadido al almacén de credenciales con otra cuenta de usuario. Sin embargo, esta entrada no existe para el usuario actualmente conectado. Añádala, si es necesario, o cambie de cuenta de usuario.
error.internal.exceptionflys / error.unauthorized
Salida de error de muestra:
umapi_client.error.RequestError: Request Error (401): {"lastPage":false,"result":"error.internal.exceptionflys","message":"Failed to exchange token"}
OR
"umapi_client.error.RequestError: Request Error (401): {"lastPage":false,"result":"error.unauthorized","message":"Failed to authenticate provided token"}"
Sugerencia: puede suceder que en Admin Console -> Configuración -> Configuración de autenticación se haya elegido una opción distinta de La más fácil para los usuarios (La contraseña nunca caduca). Si está activada la opción Más segura o La más segura, la contraseña de la cuenta técnica vinculada con la integración puede caducar.
Para solucionar el problema, se debe crear otra integración. Asegúrese de que los metadatos también se renueven en el archivo conector-umapi.yml.
En este sentido se ha implementado una corrección, pero esta puede afectar a las integraciones que se hayan creado antes de octubre de 2018.
No se ha podido establecer una nueva conexión [Núm. error 10061]
Salida de error de muestra:
ConnectionError: HTTPSConnectionPool(host='usermanagement.adobe.io', port=443): Max retries exceeded with url: /v2/usermanagement/users/someUUID@AdobeOrg/0?directOnly=True (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000027B9630>: Failed to establish a new connection: [Errno 10061] No connection could be made because the target machine actively refused it',))
Sugerencia:
Se relaciona con el hecho de que User Sync Tool no pueda conectarse a los puntos finales de la API pública. La configuración local puede impedir el acceso debido a las reglas del servidor de seguridad, el tráfico de bloqueo del proxy, la configuración de la cuenta para el acceso a Internet, etcétera.
En algunas situaciones, puede ser útil añadir la variable de entorno https_proxy con un valor como:
http://<direcciónProxy>:<puerto> O https://<direcciónProxy>:<puerto>
En otros casos, lo útil puede ser permitir el acceso a estos puntos finales:
iims-na1.adobelogin.com:443
usermanagement.adobe.io:443
Solo puede resolverse localmente autorizando el acceso a los puntos finales anteriores para la cuenta que se ejecuta.
Entrada del registro de muestra:
2017-07-07 09:01:37 4916 CRITICAL main - Connection to org [...] at endpoint https://usermanagement.adobe.io/v2/usermanagement failed: Unable to authorise against https://ims-na1.adobelogin.com/ims/exchange/jwt: Response Code: 400, Response Text: {"error_description":"The metascopes in the JWT are not a subset of the metascopes in the binding.","error":"invalid_scope"}
Sugerencia: acceda a la integración que ha creado en https://developer.adobe.com/console/projects y compruebe las API que figuran en el menú de la izquierda. Compruebe que User Management API se haya añadido como servicio (aparece en la lista).
No se han encontrado enlaces válidos para la combinación de organización y cuenta técnica
Ejemplo de entrada de registro (modo de depuración):
2017-07-07 09:01:37 4916 CRITICAL main - UMAPI connection to org id 'someUUIDvalue@AdobeOrg' failed: Unable to authorize against https://ims-na1.adobelogin.com/ims/exchange/jwt:
Response Code: 400, Response Text: {"error_description":"No valid bindings were found for organization and technical account combination","error":"invalid_token"}
Sugerencias:
a) Puede deberse a que el valor tech_acct dentro del archivo connector-umapi.yml corresponde a un valor que no es el ID de cuenta técnica dentro de la integración en https://developer.adobe.com/console/projects.Verifique el valor del ID de cuenta técnica de la integración actual y cópielo en este archivo.
b) También puede deberse a que ha caducado el certificado público de la integración. Renueve la clave privada y la pública. A continuación, cargue la clave pública y sustituya la clave privada antigua por la clave nueva. Compruebe la ruta dentro del archivo connector-umapi.yml para que señale al archivo correcto.
c) Compruebe si la integración se ha efectuado para la organización correcta. Seleccione la organización en la lista desplegable de la esquina superior izquierda en https://developer.adobe.com/console/projects. Después, compruebe el valor del ID de cuenta técnica de la integración activa y otros metadatos (ID de organización, secreto e ID de cliente).
SSL: CERTIFICATE_VERIFY_FAILED
Entrada del registro de muestra:
2017-07-07 09:01:37 4916 CRITICAL main - UMAPI connection to org id 'someUUIDvalue@AdobeOrg' failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)
Sugerencia: esto es causado por la inspección SSL habilitada en el servidor proxy local
Solución 1: obtenga el certificado de la CA raíz del proxy en formato PEM (se supone que su nombre es thecert.crt). Si se usa el formato DER, transfórmelo a PEM mediante el comando openssl:
openssl x509 -inform DER -in thecert.crt -out thecert.pem -outform PEM
Nota: ver el contenido del certificado y encontrar una cadena codificada en base64 entre las líneas
-----BEGIN CERTIFICATE----- y -----END CERTIFICATE----- significaría que tiene el archivo con formato PEM.
A continuación, cree una variable de entorno denominada REQUESTS_CA_BUNDLE y defina su valor como la ruta del archivo thecert.pem.
Solución2: En algunos casos, se observó en Windows que si la herramienta se ejecuta desde una unidad diferente a la del sistema operativo y Python está instalado, puede ocurrir este error.Una solución puede ser desplazar todo el script a la unidad en la que está el sistema operativo.Si eso no es factible, el archivo cacert.perm que contiene todas las entidades de la CA raíz de confianza podrían copiarse en la otra unidad y su ruta debería usarse como valor de entrada de la variable de entorno REQUESTS_CA_BUNDLE env. Si un proxy inspecciona también el tráfico SSL, el contenido del certificado de la CA raíz deberá copiarse dentro del archivo cacert.pem para garantizar que el cert del proxy también sea fiable.
Nota: Una instalación de Python predeterminada tendría el paquete de certificados en C:\Python36\Lib\site-packages\certifi\cacert.pem.
Solución 3: Desactive la inspección SSL en el lado del proxy para los puntos finales de la API ims-na1.adobelogin.com y usermanagement.adobe.io.
No se ha encontrado ningún grupo [...]
Entrada del registro de muestra:
2018-01-01 09:01:37 4916 ADVERTENCIA ldap - No se encontró ningún grupo para: Name_Of_The_Group
Sugerencias:
a) Este grupo no existe en LDAP con ese nombre exacto; soluciónelo añadiendo el nombre LDAP correcto del grupo.
b) El grupo no se puede detectar bajo el valor de base_dn declarado (consulte el archivo connector-ldap.yml). Cambie el valor de base_dn para que contenga el grupo mencionado (esto ocurre sobre todo cuando base_dn apunta a alguna unión organizativa, en lugar de ser lo más amplio posible).
Entrada del registro de muestra:
2018-01-01 11:25:45 1 ERROR umapi.action - Error en requestID: action_1 (Usuario: {'user': 'myuser@domain.com', 'useAdobeID': True, 'requestID': 'action_1'}, Comando: {'add': {'product': ['group_name']}}): code: "error.group.not_found" message: "No se encontró el grupo my_group_name"
Sugerencia: el valor de user-group group_name de la salida anterior no existe en Adobe; por lo tanto, continúe y créelo. Si la intención era establecer el nombre de una PLC en lugar de uno de user-group, consulte esta página de documentación para obtener una explicación más visual.
Entrada del registro de muestra:
2018-09-05 10:58:08 96329 CRÍTICA main - La conexión a la organización some_Org_UUID@AdobeOrg en el punto final https://usermanagement.adobe.io/v2/usermanagement falló: 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): Biblioteca no cargada: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenciado desde: /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
Motivo: imagen no encontrada
2018-09-05 10:58:08 96329 INFO main - ========== Fin de la ejecución (Versión de User Sync: 2.3) (Tiempo total: 0:00:00)
Sugerencia: este error se registró en un macOS High Sierra, al utilizar UST versión 2.3 con Python 3.7.0. Ejecutar brew install openssl en la Terminal solucionó este escenario en particular.
No se ha podido crear persona para tipo 2 o 3 [...]
Entrada del registro de muestra:
2019-07-28 07:17:51 2220 ERROR umapi.action - Error en requestID: action_1 (Usuario: {'user': 'user@claimed-domain.com', 'requestID': 'action_1'}, Comando: {'createFederatedID': {'email': 'user@claimed-domain.com', 'option': 'updateIfAlreadyExists', 'firstname': 'First', 'lastname': 'Last', 'country': 'US'}}): code: "error.internal.create_failed" message: "No se pudo crear la persona para el tipo 2 o 3. El resultado de Renga es NOT_ALLOWED, el recurso se gestiona externamente y al token le falta el propósito GROUP_SOURCE_UPDATE."
En ocasiones, @claimed-domain.com lo posee una organización diferente que ha configurado un conector de Azure o de Google para administrar la sincronización de cuentas con Admin Console. A continuación, ese dominio se confía a otra organización que utiliza User Sync Tool para sincronizar cuentas con el formato @claimed-domain.com
Causa: el mensaje registrado aparece cuando la herramienta Sync extrae la cuenta
user@claimed-domain.com de un servidor LDAP para crearla en la organización secundaria. Sin embargo, la cuenta aún no se ha creado o sincronizado en la organización principal a través del conector de Azure o de Google.
Sugerencia: Intente sincronizar la cuenta user@claimed-domain.com en la organización mediante el conector de Azure o de Google; a continuación, intente sincronizar de nuevo con User Sync Tool en la organización de confianza.
Error inesperado de LDAP al leer [...]
Entrada del registro de muestra:
2018-09-05 10:58:08 96329 6348 CRÍTICA main - Fallo inesperado de LDAP al leer la información del grupo: {'desc': 'Referral', 'info': 'Referral:\nldap://domain.local/DC=sub,DC=domain,DC=local'}
Causa posible: El grupo o los grupos de interés se encuentran en un subdominio, pero el valor del host es uno de los dominios raíz.
Sugerencia: cambie el valor de host a uno de los subdominios en los que se pueden encontrar los grupos de usuarios. Si los usuarios o los grupos de interés se encuentran en el dominio raíz y en sus subdominios, utilice el puerto de catálogo global del dominio raíz. Modifique los grupos de los subdominios para que sean de tipo Universal en lugar de Global. Ejemplo de valor de host que utiliza catálogo global: ldap ldap://domain.local:3268 o ldaps://domain.local:3269
En este último caso, si se utiliza el puerto de catálogo global, asegúrese de que el valor de base_dn no tome ningún valor:
base_dn: ""
error.organization.invalid_id
Entrada del registro de muestra:
2020-08-20 12:00:00 1892 ERROR main - Excepción no controlada
raise RequestError(result)
umapi_client.error.RequestError: Error de solicitud (401): {"lastPage":false,"result":"error.organization.invalid_id",
"message":"NO AUTORIZADO"}
Este error se observó en integraciones más antiguas.
La solución: crear una nueva integración (o proyecto) en https://developer.adobe.com/console/projects, junto a la existente, utilizada para el mismo propósito. La nueva integración proporcionará nuevas credenciales, así que asegúrese de actualizarlas en el archivo connector-umapi.yml. Es muy posible que el keypair (clave privada/pública) deba ser reemitido, por lo tanto, la nueva clave privada debe reemplazar a la existente.
No se pudo crear una persona del tipo createFederatedID
Entrada del registro de muestra:
2021-01-01 18:00:00 14063 ERROR umapi.action - Error en requestID: action_19 (Usuario: {'user': 'some_user', 'domain': some.domain', 'requestID': 'action_19'}, Comando: {'createFederatedID': {'email': 'some_user@some.domain', 'option': 'ignoreIfAlreadyExists', 'firstname': 'FName', 'lastname': 'LName, 'country': 'GB'}}): código: "error.internal.create_failed" mensaje: "No se pudo crear la persona de tipo createFederatedID"
Este es un error genérico para múltiples causas, pero el problema habitual es que el dominio utilizado en la acción de creación está bajo la influencia de una configuración de sincronización de Azure o Google.
Cómo comprobarlo: inicie sesión en admin console con la cuenta de Administrador del sistema, luego haga clic en el menú Configuración, después haga clic dentro del directorio que contiene el dominio y finalmente haga clic en la pestaña del menú Sincronización.
¿Hay una tarjeta de Fuente de sincronización presente en el menú Sincronización?
Si la respuesta es Sí, la solución depende de cómo debe continuar la sincronización:
-> si el conector de Azure o Google debe ser el que realice la sincronización, continúe con la configuración de la Fuente de sincronización y elimine UST por completo
-> si UST debe ser el que realice la sincronización, haga clic en el botón «Ir a Configuración» y haga clic en el botón «Eliminar sincronización» en la parte inferior de la página; UST debería comenzar a funcionar como de costumbre después de esto
Si la respuesta es No, es posible que el UST actual se ejecute en una consola en la que el dominio en cuestión se ha confiado desde una consola diferente (Organización propietaria).Esta otra Organización puede tener activada la sincronización de Azure o Google, lo que podría provocar el error actual.La solución en este caso es sincronizar primero la Cuenta en la Organización/Consola propietaria, y luego usar UST para crear/añadir la cuenta en la Consola actual.
Si ninguna de las situaciones anteriores se ajusta al escenario actual, lo mejor es ponerse en contacto con el Soporte para empresas.