Solução de problemas do OpenLDAP

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Esta seção fornece informações e orientações para solucionar problemas do OpenLDAP.

O SMTP está desativado e os usuários precisam fazer a redefinição. senha

Sintoma

Quando o SMTP não está configurado na interface do Edge, os novos usuários adicionados ao Edge precisam de uma forma de definir uma senha.

Mensagens de erro

Unknown username and password combination.

Causas possíveis

Novos usuários não conseguem receber um e-mail da mensagem “Esqueceu a sua senha?” link para definir porque o SMTP não está configurado.

Resolução

É possível resolver esse problema de uma das seguintes maneiras:

Solução 1: Configurar o servidor SMTP

Configure o servidor SMTP para definir uma nova senha para o usuário seguindo as instruções fornecidas consulte a documentação.

Solução 2: usar LDAP

Se não for possível configurar o servidor SMTP, use os comandos LDAP abaixo para definir os nova senha para um usuário:

  1. Um administrador da organização precisa adicionar o usuário específico pela IU do Edge, conforme mostrado abaixo:

  2. Use o comando ldapsearch para encontrar o nome distinto do usuário. (dn) e redirecione a saída para um arquivo:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
    

    Aqui está um exemplo de uma entrada dn para um usuário, junto com os atributos para o usuário:

    dn:uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com
    mail: apigee_validator@apigee.com
    userPassword:: e1NTSEF9b0FrMFFXVmFjbWRxM1BVaFZzMnllWGZMdkNvNjMwNTJlUDZYN3c9PQ=
     =
    uid: f7a4a4a5-7c43-4168-a47e-6e9a1417cc29
    objectClass: inetOrgPerson
    sn: Validator
    cn: apigee
    
  3. Abra o arquivo ldap.txt e encontre o DN do novo usuário adicionado com base no atributo de e-mail do novo usuário.
  4. Execute o comando ldappassword para adicionar uma senha para o novo usuário usando dn. Neste exemplo, você está definindo a senha do usuário para Apigee123:
    ldappasswd -h localhost -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s Apigee123
    "uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com"
    
  5. Faça login na interface do Edge como o novo usuário com a senha definida na etapa anterior. A o usuário pode definir uma nova senha após fazer login na interface.

O LDAP não está sendo replicado

Sintoma

Muitas instalações do Edge têm vários data centers, como DC-1 e DC-2. Ao gerar registros Na UI do Edge no DC-1, como administrador da organização, é possível ver a lista de usuários, mas a mesma lista não aparece na interface do usuário do Edge no DC-2.

Mensagens de erro

Nenhum erro é exibido, a interface do Edge simplesmente não mostra a lista de usuários que deveriam replicadas em todos os servidores OpenLDAP.

Causas possíveis

Normalmente, a causa desse problema é uma configuração incorreta de replicação do OpenLDAP, a instalação em si. Além disso, a replicação pode ser interrompida se a rede entre os servidores OpenLDAP não permite tráfego na porta 10389.

Diagnóstico

Siga estas etapas para diagnosticar o problema:

  1. Verifique se o ldapsearch retorna dados de cada servidor OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. Verifique se você consegue estabelecer uma conexão com cada nó do OpenLDAP a partir dos outros nós do OpenLDAP na porta 10389. Se o telnet estiver instalado, use o seguinte comando:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Se o telnet não estiver disponível, use o netcat para verificar a conectividade da seguinte maneira:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Verifique a configuração de replicação no arquivo a seguir:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    

    O arquivo deve conter uma configuração como esta:

    olcSyncRepl: rid=001
      provider=ldap://__OTHER_LDAP_SERVER__/
      binddn="cn=manager,dc=apigee,dc=com"
      bindmethod=simple
      credentials=__LDAP_PASSWORD__
      searchbase="dc=apigee,dc=com"
      attrs="*,+"
      type=refreshAndPersist
      retry="60 1 300 12 7200 +"
      timeout=1
    
  5. Além disso, verifique o mesmo arquivo para o valor do atributo olcMirrorMode. Deve ser defina o valor TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Verifique se há regras do iptables e do wrapper tcp. Remova todas as regras que não permitem que os servidores OpenLDAP de mesmo nível se comuniquem. Trabalhe com o administrador da sua rede para definir as regras adequadamente.
  7. Confirme que a senha do sistema do OpenLDAP é a mesma em cada nó do OpenLDAP.
  8. Verifique se há caracteres ocultos nos arquivos de configuração ldif que estão sendo usados para configurar a replicação OpenLDAP n-Way executando dos2unix nos arquivos ldif que foram criado para atualizar a configuração. Normalmente, um arquivo ldif com caracteres ruins faz com que falha ao executar o comando ldapmodify e, portanto, a replicação pode não ser configurada. Remova todos os itens e salvar os arquivos de configuração.

Se o problema persistir, entre em contato com Suporte da Apigee para assistência na configuração da replicação OpenLDAP n-Way.

Não foi possível iniciar o OpenLDAP

Sintoma

O OpenLDAP não é iniciado.

Mensagens de erro

SLAPD Dead But Pid File Exists

Causas possíveis

Esse problema normalmente é causado por um arquivo de bloqueio que é deixado no sistema de arquivos e precisa a ser removido.

Diagnóstico

Siga estas etapas para diagnosticar esse problema:

  1. Verifique se há um arquivo pid ou de bloqueio de processo slapd do OpenLDAP no seguinte local:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. Exclua o arquivo de bloqueio e pid, se encontrado, e tente reiniciar o openldap.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  3. Se o processo do OpenLDAP slapd for iniciado, ignore as etapas abaixo.
  4. Se o processo slapd do OpenLDAP não for iniciado, tente executar o slapd no modo de depuração e procure por quaisquer erros:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. Os erros podem apontar para problemas de recursos. Verifique a utilização da memória e da CPU no sistema.
  6. Verifique a versão do OpenLDAP e faça upgrade, caso ela seja antiga. Verifique as versões compatíveis do OpenLDAP no documento Software compatível.
    slapd -V
    
  7. Use strace para solucionar problemas do processo de slapd e fornecer a saída de strace para Suporte da Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

Corrupção de dados do OpenLDAP

Sintoma

Os usuários não poderão mais executar chamadas de gerenciamento ou fazer login na interface do Edge. Como usar o ldapsearch para consultar os usuários pode indicar que o usuário existe no armazenamento de dados LDAP ou pode identificar possíveis usuários ou funções ausentes.

Mensagens de erro

Unknown username and password combination.

Causas possíveis

Normalmente, esse problema é observado devido à corrupção de dados do OpenLDAP. Normalmente, OpenLDAP os dados não sejam corrompidos. Mas, nos raros casos em que isso acontece, a corrupção pode ser devido uma falha no disco do sistema ou problemas de espaço em disco.

Diagnóstico

  1. Use o comando abaixo para verificar o espaço em disco no sistema com o OpenLDAP instalado:
    du -m /opt
    
  2. Se o espaço utilizado em disco estiver muito próximo de 100%, isso indicaria a causa O problema é que o sistema está ficando sem espaço em disco.

Resolução

Se o sistema ficar sem espaço em disco ou estiver quase sem espaço, adicione para garantir que haja espaço suficiente.

Quando você tiver espaço em disco suficiente, use uma das soluções abaixo para resolver os dados LDAP. problema de corrupção:

  1. Restaurar os dados do OpenLDAP do backup.
  2. Limpe o banco de dados OpenLDAP.

Solução 1: Restaurar o Dados LDAP do backup

Em um nó OpenLDAP ativo, faça um backup. O backup precisa ser feito regularmente. Consulte Guia de operações da nuvem privada da Apigee práticas recomendadas para backups:

slapcat -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif

As etapas a seguir podem ser usadas para restaurar os dados do OpenLDAP de um backup válido.

  1. Interrompa o nó do OpenLDAP para o qual os dados precisam ser restaurados:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Altere o diretório para o diretório de dados OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Faça backup dos dados do OpenLDAP usando o comando "move":
    mv ldap ldap_orig
    
  4. Mude para o usuário da Apigee:
    su apigee
    
  5. No diretório /opt/apigee/data/apigee-openldap, criar novos dados do OpenLDAP com o nome original:
    mkdir ldap
    
  6. Faça o backup do subdiretório ldap_orig/DB_CONFIG da etapa 3 e copie-o para o openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Para restaurar os dados do backup com o slapcat, use o slapadd para importar o ldif, que contém os dados bons:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. Inicie o processo do OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

Solução 2 Limpar o LDAP banco de dados

As etapas a seguir limpam o banco de dados OpenLDAP para começar do zero. Essa solução pode ser usado se não houver backup de dados do último estado em que os dados do OpenLDAP estavam funcionando.

  1. Interrompa o serviço OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Altere o diretório para o diretório de dados OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Faça backup dos dados do OpenLDAP usando o comando "move":
    mv ldap ldap_orig
    
  4. Mude para o usuário da Apigee:
    su apigee
    
  5. Crie um novo diretório de dados OpenLDAP com o nome original:
    mkdir ldap
    
  6. Copie o subdiretório de backup ldap_orig/DB_CONFIG da etapa 3 e copie-o para openldap diretório:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Reinicie o processo do OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Reinicie o servidor de gerenciamento para forçar uma atualização das conexões com o OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Solução 3 Redefinir o OpenLDAP para uma instalação básica

Se a Solução 2 não resolver o problema, você poderá redefinir o OpenLDAP para uma instalação básica conforme descrito nesta seção.

Pré-requisitos

Para redefinir o OpenLDAP, você precisa atender aos seguintes pré-requisitos:

  • A capacidade de executar a configuração com as credenciais de administrador do sistema e LDAP raiz.
  • Acesso ao utilitário ldapadd.
  • O arquivo de configuração silenciosa original salvo para o nó de gerenciamento/LDAP.
.

Para redefinir o OpenLDAP, siga estas etapas:

  1. Reinstale o OpenLDAP e o servidor de gerenciamento.
    1. Interrompa o servidor openldap:
      apigee-service apigee-openldap stop
    2. Exclua a pasta de dados openldap corrompidos:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Desinstale o componente openldap:
      apigee-service apigee-openldap uninstall
    4. Reinstale o componente openldap com o mesmo arquivo de configuração usado para a instalação inicial:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      em que configfile é o nome do arquivo de configuração.
    5. Reinstale o servidor de gerenciamento usando o arquivo de configuração original:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configfile

    After doing these steps, Management API calls should work again using the sysadmin account only. However, it will not be possible to log into the Edge UI, and Management API calls with any other users will not work.

  2. Add missing openldap entries for orgs that existed prior to the corruption.

    After the above step is completed, openldap will be missing entries for orgs that existed when the corruption occurred. The majority of the actual org data such as proxy bundles is stored in Cassandra or Zookeeper is not lost. However, running the setup-org script will not automatically add the openldap data for the orgs that already exist in Cassandra, and Zookeeper. This data has to be added manually for every org that existed prior to the corruption using the following steps:

    1. Create an ldif file called missingLDAP.ldif with the following content:
      # orgname, organizations, apigee.com
      dn: o=orgname,ou=organizations,dc=apigee,dc=com
      objectClass: organization
      O: orgname
      
      # userroles, orgname, organizations, apigee.com
      dn: ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      ou: userroles
      objectClass: organizationalUnit
      
      # orgadmin, userroles, orgname, organizations, apigee.com
      dn: cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      objectClass: organizationalRole
      cn: orgadmin
      roleOccupant: uid=admin,ou=users,ou=global,dc=apigee,dc=com
      
      # resources, orgadmin, userroles, orgname, organizations, apigee.com
      dn: ou=resources,cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      ou: resources
      objectClass: organizationalUnit
      
      # @@@, resources, orgadmin, userroles, orgname, organizations, apigee.com
      dn: cn=@@@,ou=resources,cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      roleOccupant: ou=delete,ou=permissions,dc=apigee,dc=com
      roleOccupant: ou=get,ou=permissions,dc=apigee,dc=com
      roleOccupant: ou=put,ou=permissions,dc=apigee,dc=com
      labeledURI: /
      objectClass: organizationalRole
      objectClass: labeledURIObject
      cn: @@@

      em que orgname é a organização que você está tentando recriar.

    2. Adicione as entidades LDAP ausentes usando o seguinte comando:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    As etapas acima vão criar as entradas ausentes para uma organização existente, e a orgadmin permissões para essa organização. Repita as etapas para cada organização que precisa ser recriada. Neste ponto, é possível adicionar orgadmin usuários a uma organização, mas os outros os papéis padrão ainda não existem. Você precisará adicioná-los na próxima etapa.

  3. Adicionar os papéis e as permissões padrão ausentes a uma organização existente.

    Com o mesmo arquivo de configuração usado inicialmente para configurar qualquer uma das organizações existentes, execute o seguinte comando:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Depois de seguir esse procedimento, você precisa manualmente:

    • Adicione papéis personalizados que já existiam antes da corrupção usando a interface ou a API de gerenciamento.
    • Adicione os usuários às funções de usuário relevantes.
  5. (Opcional) Restaure a configuração de autenticação externalizada no gerenciamento.

    Restaure a /opt/apigee/customer/application/management-server.properties se a configuração não mudou. Como a interface não foi reinstalada, O valor de /opt/apigee/customer/application/ui.properties precisa ser o mesmo, considerando que as credenciais do sysadmin foram restauradas com a nova instalação do gerenciamento.

  6. (Opcional) Reinstale o mTLS da Apigee no nó de gerenciamento.

    Se o Apigee mTLS tiver sido instalado anteriormente, siga o guia de instalação do mTLS da Apigee para reinstalar no nó do servidor de gerenciamento.

Se o problema persistir, entre em contato com a Apigee suporte para receber mais assistência.