User Sync Tool - erros comuns

Aplica-se a corporações.

Lista de alguns dos erros comuns ao executar o UST e dicas para resolvê-los

FileNotFoundError: [Errno 2]

Exemplo de saída de erro do console:

FileNotFoundError: [Errno 2] Este arquivo ou diretório não existe: 'C:\\Users\\USER\\.pex\\install\\pycryptodome [...]'

Pode aparecer no Windows devido a caminhos com mais de 256 caracteres.

Dica: Crie uma variável de ambiente chamada PEX_ROOT com o valor C:\pex (se o script for executado a partir do C: ou alterar a letra para corresponder). Às vezes, é necessário reiniciar o sistema para que ele entre em vigor.

 

não é possível abrir o arquivo 'user-sync.pex': [Errno 2]

Exemplo de saída de erro:

python: não é possível abrir o arquivo 'user-sync.pex': [Errno 2] Não existe esse arquivo ou diretório

Dica: Certifique-se de executar a linha de comando python de dentro da pasta onde o usuário-sync.pex está localizado.

 

Tempo limite de UMAPI

Exemplo de saída de erro do log:

2018-01-01 11:49:42 28102 AVISO umapi - Tempo limite da UMAPI... serviço indisponível (código 429 na tentativa 1)
2018-01-01 11:49:42 28102 AVISO umapi - Próxima tentativa em 42 segundos...

Dica: Se o tempo limite for inferior a 30 minutos, essas mensagens de aviso são recebidas quando a cota de chamadas de API a serem feitas em um minuto foi atingida. O UST vem com um mecanismo de retirada exponencial para repetir a chamada, aumentando o tempo entre as novas tentativas. O script é interrompido após três tentativas fracassadas.

A recomendação aqui é deixar o script executar até o fim.

Se o tempo limite for superior a 1000 segundos, isso seria uma limitação relacionada à frequência de execução de cada instância da ferramenta de sincronização de usuários.Se for observado que uma instância está sendo executada com mais frequência, ela será limitada entre 30 e 75 minutos.Embora o tempo limite apenas coloque o UST em espera por um período de tempo (portanto, não é um erro crítico de interrupção), o UST saberá se recuperar e continuar a sincronização logo em seguida.

Como o script reconhece quando duas instâncias são iniciadas ao mesmo tempo, nenhuma nova instância pode ser acionada até que a instância inicial tenha terminado de ser executada. Nesse caso, uma mensagem de erro pode aparecer no log do UST referindo-se a 'um processo já está em andamento'.

Aqui estão algumas recomendações para melhor desempenho, em relação à frequência de execução:

  • revise a frequência da tarefa agendada e certifique-se de que ela esteja configurada para repetir com pelo menos 2 horas de intervalo
  • revise o horário de acionamento da tarefa agendada para que não comece no minuto :00 ou :30 (evite o pico de atividade de tráfego)
  • se for necessário executar a ferramenta com mais frequência, reflita sobre a possibilidade de usar o UST com estratégia de notificação por push (delta de alterações) em vez de sincronização completa
  • adapte o cronograma de tempo de execução do UST ao dia útil da sua organização, quando os usuários precisam ser provisionados (por exemplo, se a sua organização não precisar modificar o provisionamento de usuários à noite, não execute tarefas de sincronização durante esse período)

 

 

error.user.pertence_to_another_org

Exemplo de entrada do log:

2018-01-01 11:49:42 28102 ERROR umapi.action - Erro no 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: "É ilegal convidar um usuário do SRC de autenticação de propriedade de outra organização"

Dica: o domínio usado para criar a conta pode não ser reivindicado/confiável nas suas organizações. Um sinalizador ou ponto verde deve ser exibido para os domínios ativos em Admin Console -> Configurações. Caso contrário, concluir o processo de reivindicação de domínio pode resolvê-lo.

 

 

error.user.type_mismatch

Exemplo de entrada do log:

2018-01-01 12:34:23 13383 ERROR umapi.action - Erro no 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: "O tipo de usuário solicitado para o convite não corresponde ao tipo de domínio reivindicado"

Dependências ausentes

Exemplo de saída de erro do console:

Falha ao executar o arquivo PEX, faltam dependências compatíveis para:
pyyaml
cryptography
cffi
umapi-client
pycryptodome
pyldap
psutil
user-sync

Dicas:

a) Verifique se a versão do Python instalada no sistema é a versão de 32 bits. Desinstale o sistema de 32 bits e instale a versão de 64 bits para corrigir o problema.

b) Verifique se a versão user-sync.pex baixada do GitHub corresponde à versão do Python e ao tipo de sistema operacional. Por exemplo, user-sync-v2.3-win64-py365.zip deve ser baixado para Windows de 64 bits e Python 3.

Usar a versão mais recente de Python nem sempre é uma boa ideia. Tentar combinar com a versão Python seria ótimo, o .pex foi criado em primeiro lugar. Siga o sufixo do arquivo .zip baixado para identificar qual versão do Python funcionaria. Para o exemplo acima (user-sync-v2.3-win64-py365.zip), é possível identificar o Python 3.6.5.

 

 

Erro ao descriptografar a chave privada

Exemplo de entrada no log:

2018-01-01 09:52:23 7920 DEBUG umapi - umapi: leitura de dados de chave privada do arquivo C:\path\to\private.key
2018-01-01 09:52:23 7920 CRITICAL main - umapi configuration.enterprise: Erro ao descriptografar a chave privada; ou a senha está incorreta, ou o formato da chave RSA é incompatível

Dicas:

a) se o problema não puder ser identificado rapidamente, é mais rápido reemitir o par de chaves

b) Não use o atributo umapi_private_key_data se você estiver executando o script no Windows. Em vez disso, criptografe a chave e armazene a senha no Gerenciador de credenciais.

c) Experimente uma chave privada RSA256/2048 bits, se você tiver usado um formato diferente para emitir o par de chaves

d) É possível que você configure o secure_priv_key_pass_key: umapi_private_key_passwords dentro do arquivo connector-umapi.yml. Nesse caso, certifique-se de que a entrada no Repositório de credenciais para este valor e os valores associados correspondem (veja abaixo).

Gerenciador de credenciais do Windows

 

Nenhum valor no armazenamento seguro para o usuário...

Exemplo de entrada no log:

2018-01-01 09:52:23 7920 CRITICAL main - umapi CRITICAL main - umapi configuration.enterprise: Nenhum valor no armazenamento seguro para o usuário "someUUIDvalue@AdobeOrg", chave "umapi_api_key"

Dicas:

a) A entrada do Repositório de credenciais de umapi_api_key pode estar ausente. Crie a entrada no Repositório de credenciais. A documentação de ajuda pode ser encontrada aqui.

b) Pode ser que o valor tenha sido adicionado ao Repositório de credenciais em outra conta de usuário. No entanto, para o usuário conectado no momento, essa entrada está ausente. Adicione-o, se necessário, ou mude as contas de usuário.

 

 

error.internal.exceptionflys / error.unauthorised

Exemplo de saída de erro:

umapi_client.error.RequestError: Erro na solicitação (401): {"lastPage":false,"result":"error.internal.exceptionflys","message":"Falha ao trocar token"}

OU

"umapi_client.error.RequestError: Erro na solicitação (401): {"lastPage":false,"result":"error.unauthorized","message":"Falha ao autenticar o token fornecido"}"

Dica: pode ser que, em Admin Console -> Configurações -> Configurações de autenticação, haja outra opção escolhida diferente da opção Mais fácil para os usuários (a senha nunca vence). Se a opção Mais seguro ou Completamente seguro estiver ativada, ela poderá expirar a senha da Conta técnica vinculada à integração.

Para corrigir o problema, uma nova integração deve ser criada. Certifique-se de que os metadados também sejam renovados no arquivo connector-umapi.yml.

Uma correção foi implantada para ela, mas pode afetar integrações criadas antes de outubro de 2018.

 

 

Falha ao estabelecer uma nova conexão [Erro 10061]

Exemplo de saída de erro:

ConnectionError: HTTPSConnectionPool(host='usermanagement.adobe.io', port=443): Número máximo de tentativas excedido com URL: /v2/usermanagement/users/someUUID@AdobeOrg/0?directOnly=True (Causado por NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000027B9630>: Falha ao estabelecer uma nova conexão: [Errno 10061] Não foi possível estabelecer uma conexão porque a máquina de destino a recusou ativamente',))

Dica:

Está relacionado a que o UST não pode se conectar aos endpoints de API públicos. As configurações locais podem impedir o acesso  devido a regras de firewall, proxy bloqueando o tráfego, configurações de conta para acesso à Internet e muito mais.

Em algumas situações, pode ajudar adicionar a variável de ambiente https_proxy com um valor como:

http://<endereçoProxy>:<porta> OU https://<endereçoProxy>:<porta>

Em outros casos, permitir o acesso a esses endpoints pode ajudar:

ims-na1.adobelogin.com:443

usermanagement.adobe.io:443

Isso só pode ser resolvido localmente, limpando o acesso aos endpoints acima da conta em execução.

 

 

Os metaescopos no JWT não são um subconjunto dos metaescopos no vínculo

Exemplo de entrada no log:

2017-07-07 09:01:37 4916 CRITICAL main -  A conexão com a organização [...] no ponto de acesso https://usermanagement.adobe.io/v2/usermanagement falhou: não foi possível autorizar em relação a https://ims-na1.adobelogin.com/ims/exchange/jwt: Response Code: 400, Response Text: {&quot;error_description&quot;:&quot;Os metaescopos no JWT não são um subconjunto dos metaescopos na vinculação.&quot;,&quot;error&quot;:&quot;invalid_scope&quot;}

Dica: acesse a integração criada em https://developer.adobe.com/console/projects e verifique o menu esquerdo, onde as APIs estão listadas. Verifique se a API do User Management foi adicionada como um serviço (aparece na lista). 

 

Não foram encontrados vínculos válidos para combinação de conta técnica e organização

Exemplo de entrada de registro (modo de depuração):

2017-07-07 09:01:37 4916 CRITICAL main - UMAPI a conexão com o ID da organização 'someUUIDvalue@AdobeOrg' falhou: não foi possível autorizar em relação a https://ims-na1.adobelogin.com/ims/exchange/jwt:
Response Code: 400, Response Text: {&quot;error_description&quot;:&quot;Nenhuma vinculação válida foi encontrada para a combinação de organização e conta técnica&quot;,&quot;error&quot;:&quot;invalid_token&quot;}

Dicas:

a) Isso pode ocorrer porque o valor de tech_acct no arquivo connector-umapi.yml corresponde a outro valor diferente do ID da conta técnica na integração em https://developer.adobe.com/console/projects. Verifique o valor do ID da conta técnica da integração atual e copie-o para este arquivo.

b) Também pode ocorrer porque o certificado público da integração expirou. Renove a chave privada e pública. Em seguida, faça upload da chave pública e substitua a chave privada antiga pela nova chave. Verifique o caminho dentro do arquivo connector-umapi.yml para apontar para o arquivo correto.

c) Verificar se a integração foi feita para a organização correta. Selecione a organização na lista suspensa localizada no canto superior esquerdo em https://developer.adobe.com/console/projects. Em seguida, verifique o valor da ID da conta técnica da integração ativa junto com outros metadados (ID da organização, segredo e ID do cliente).

 

 

SSL: CERTIFICATE_VERIFY_FAILED

Exemplo de entrada no log

2017-07-07 09:01:37 4916 CRITICAL main - UMAPI a conexão com o ID da organização 'someUUIDvalue@AdobeOrg' falhou: [SSL: CERTIFICATE_VERIFY_FAILED] falha ao verificar o certificado (_ssl.c:661)

Dica: Isso é causado pela inspeção SSL ativada no servidor proxy local

Solução 1: obtenha o certificado da CA da raiz do proxy no formato PEM (presuma que seu nome seja thecert.crt). Se o formato DER for usado, transforme-o em PEM usando o comando openssl:

openssl x509 -inform DER -in thecert.crt -out thecert.pem -outform PEM

Observação: visualizar o conteúdo do certificado e ver uma string codificada em base64 entre as linhas
-----BEGIN CERTIFICATE----- e -----END CERTIFICATE----- significa que você tem o arquivo formatado em PEM.

Em seguida, crie uma variável de ambiente chamada REQUESTS_CA_BUNDLE e defina seu valor como o caminho para o arquivo ert.pem.

Solução 2: em alguns casos, observou-se no Windows que, se a ferramenta for executada de uma unidade diferente do sistema operacional e do Python instalado, esse erro poderá ocorrer.Mover o script inteiro na unidade na qual o SO existe pode ser uma solução. Se não for uma opção, o arquivo cacert.pem que contém todas as CAs de raiz confiáveis podem ser copiados para a outra unidade, e seu caminho pode ser usado como valor de entrada para a variável de ambiente REQUESTS_CA_BUNDLE. Se um proxy também inspecionar o tráfego de SSL, o conteúdo do certificado da CA de raiz precisará ser copiado dentro do arquivo cacert.pem para garantir que o certificado do proxy também seja confiável.

Observação: Uma instalação padrão do Python teria o pacote de certificados em C:\Python36\Lib\site-packages\certifi\cacert.pem.

Solução3: Desative a inspeção SSL no lado do proxy para os endpoints da API ims-na1.adobelogin.com e usermanagement.adobe.io

 

 

Nenhum grupo encontrado [...]

Exemplo de entrada no log:

2018-01-01 09:01:37 4916 WARNING ldap - Nenhum grupo encontrado para: Name_Of_The_Group

Dicas:

a) Este grupo não existe no LDAP com esse nome exato; corrija-o adicionando o nome LDAP correto do grupo

b) O grupo não pode ser descoberto no base_dn declarado (consulte o arquivo connector-ldap.yml). Altere o valor de base_dn, de modo que contenha o grupo mencionado (ocorre principalmente quando base_dn aponta para algum OU em vez de ser o mais amplo possível).

 

error.group.not_found

Exemplo de entrada no log:

2018-01-01 11:25:45 1 ERROR umapi.action - Erro no requestID: action_1 (User: {'user': 'myuser@domain.com', 'useAdobeID': True, 'requestID': 'action_1'}, Command: {'add': {'product': ['group_name']}}): code: &quot;error.group.not_found&quot; message: &quot;O grupo my_group_name não foi encontrado&quot;

Dica: o group_name do user-group na saída acima não existe no lado da Adobe; portanto, vá em frente e crie-o. Se a intenção era definir o nome de um PLC em vez de um grupo de usuários, então consulte esta página de documentação para obter uma explicação mais visual.

 

imagem não encontrada

Exemplo de entrada no log:

2018-09-05 10:58:08 96329 CRITICAL main - A conexão com a organização some_Org_UUID@AdobeOrg no ponto de acesso https://usermanagement.adobe.io/v2/usermanagement falhou: 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 não carregada: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenciado de: /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: imagem não encontrada
2018-09-05 10:58:08 96329 INFO main - ========== Terminar execução (versão do User Sync: 2.3) (Tempo total: 0:00:00) 

Dica: esse erro foi registrado em um macOS High Sierra, usando o UST v2.3 e o Python 3.7.0. Executar brew install openssl no Terminal resolveu o problema para este cenário específico.

 

 

Não foi possível criar uma pessoa para o tipo 2 ou 3 [...]

Exemplo de entrada do log:

2019-07-28 07:17:51 2220 ERROR umapi.action - Erro no requestID: action_1 (User: {'user': 'user@claimed-domain.com', 'requestID': 'action_1'}, Command: {'createFederatedID': {'email': 'user@claimed-domain.com', 'option': 'updateIfAlreadyExists', 'firstname': 'First', 'lastname': 'Last', 'country': 'US'}}): code: &quot;error.internal.create_failed&quot; message: &quot;Não foi possível criar a pessoa para o tipo 2 ou 3. O resultado do Renga é NOT_ALLOWED, o recurso é gerenciado externamente e o token não possui a finalidade GROUP_SOURCE_UPDATE.&quot;

Às vezes, o @claimed-domain.com é de propriedade de uma organização diferente que configurou um conector do Azure ou do Google para gerenciar a sincronização de contas com o Admin Console. Esse mesmo domínio é então atribuído a uma organização diferente que usa a ferramenta User Sync para sincronizar contas do formato @claimed-domain.com

Causa: a mensagem registrada é exibida quando a ferramenta de sincronização extrai a conta
user@claimed-domain.com de um servidor LDAP para criá-la na organização secundária. No entanto, a conta ainda não foi criada/sincronizada na organização principal por meio do conector do Azure ou do Google.

Dica: Tente criar/sincronizar a conta user@claimed-domain.com na Organização usando o conector do Azure ou do Google e tente sincronizar novamente com o UST na Organização fiduciária.

 

 

Falha de LDAP inesperada ao ler [...]

Exemplo de entrada no log:

2018-09-05 10:58:08 96329 6348 CRITICAL main - Falha inesperada no LDAP ao ler as informações do grupo: {'desc': 'Referral', 'info': 'Referral:\nldap://domain.local/DC=sub,DC=domain,DC=local'}

Causa possível: Os grupos de interesse estão localizados em um subdomínio, mas o valor do host é um dos domínios raiz.

Dica: Altere o valor do host para um dos subdomínios em que os grupos de usuários podem ser encontrados. Se os usuários ou grupos de interesse estiverem localizados no domínio raiz e em seus subdomínios, use a porta de catálogo global no domínio raiz. Modifique os grupos no(s) subdomínio(s) para que sejam Universal em vez de Global. Exemplo de valor de host usando o catálogo global::  ldap://domain.local:3268 ou ldaps://domain.local:3269

Neste último cenário, se a porta de catálogo global for usada, certifique-se de que o valor base_dn não use nenhum valor:

base_dn: ""

 

error.organization.invalid_id

Exemplo de entrada no log:

2020-08-20 12:00:00 1892 ERROR main - Exceção não tratada
    raise RequestError(result)
umapi_client.error.RequestError: Request Error (401): {&quot;lastPage&quot;:false,&quot;result&quot;:&quot;error.organization.invalid_id&quot;,
&quot;message&quot;:&quot;NÃO AUTORIZADO&quot;}

Este erro foi observado em integrações mais antigas.

A solução: crie uma nova integração (ou projeto) em https://developer.adobe.com/console/projects, ao lado da existente, usada para o mesmo propósito. A nova integração fornecerá novas credenciais, então certifique-se de atualizá-las no arquivo connector-umapi.yml. É muito possível que o keypair (chave privada/pública) seja reemitido, portanto, a nova chave privada precisa substituir a existente.

 

 

Não foi possível criar pessoa do tipo createFederatedID

Exemplo de entrada no log:

2021-01-01 18:00:00 14063 ERROR umapi.action - Erro no requestID: action_19 (User: {'user': 'some_user', 'domain': some.domain', 'requestID': 'action_19'}, Command: {'createFederatedID': {'email': 'some_user@some.domain', 'option': 'ignoreIfAlreadyExists', 'firstname': 'FName', 'lastname': 'LName, 'country': 'GB'}}): code: &quot;error.internal.create_failed&quot; message: &quot;Não foi possível criar a pessoa do tipo createFederatedID&quot;

Trata-se de um erro genérico por várias causas, mas o problema mais comum é que o domínio usado na ação de criação está sob a influência de uma configuração de sincronização do Azure ou Google.

Como verificar: faça logon no Admin Console com a conta de administrador do sistema, clique no menu “Configurações”, clique dentro do diretório que contém o domínio e, por fim, clique na guia do menu “Sincronizar”.

Há um cartão de Origem de Sincronização presente no menu Sincronização?

Se Sim, a correção depende de como a sincronização deve continuar:

-> se o conector do Azure ou Google deve ser o responsável pela sincronização, continue com a configuração da Origem de Sincronização e remova completamente o UST

-> se o UST deve ser o responsável pela sincronização, clique no botão "Ir para Configurações" e clique no botão "Remover Sincronização" na parte inferior da página; o UST deve começar a funcionar normalmente depois disso

Se Não, pode ser que o UST atual esteja sendo executado em um console no qual o domínio em questão é confiado a partir de um console diferente (organização proprietária). Esta outra Org pode ter a sincronização do Azure ou Google ativada, o que poderia levar ao erro atual.A correção nesse caso é sincronizar a conta na organização proprietária/console primeiro e, em seguida, usar o UST para criar/adicionar a conta no console atual.

Se nenhuma das situações acima se encaixar no cenário atual, é melhor entrar em contato com o Suporte Empresarial.

 

Adobe, Inc.

Receba ajuda com mais rapidez e facilidade

Novo usuário?