Dépannage des problèmes OpenLDAP

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Cette section fournit des informations et des conseils sur la résolution des problèmes liés à OpenLDAP.

Le protocole SMTP est désactivé et les utilisateurs doivent le réinitialiser mot de passe

Symptôme

Lorsque SMTP n'est pas configuré sur l'interface utilisateur Edge, les nouveaux utilisateurs ajoutés à Edge ont besoin d'un moyen de définir un mot de passe.

Messages d'erreur

Unknown username and password combination.

Causes possibles :

Les nouveaux utilisateurs ne peuvent pas recevoir d'e-mail de la liste "Mot de passe oublié ?". lien pour définir un mot de passe car SMTP n’est pas configuré.

Solution

Vous pouvez résoudre ce problème de l'une des manières suivantes:

Solution n° 1: Configurer le serveur SMTP

Configurez le serveur SMTP afin de définir un nouveau mot de passe pour l'utilisateur en suivant les instructions fournies. consultez la documentation.

Solution n° 2: utiliser LDAP

Si vous ne parvenez pas à configurer le serveur SMTP, utilisez les commandes LDAP ci-dessous pour définir le nouveau mot de passe pour un utilisateur:

  1. Un administrateur d'entreprise existant doit ajouter l'utilisateur spécifique via l'interface utilisateur Edge, comme indiqué ci-dessous:

  2. Utilisez la commande ldapsearch pour trouver le nom distinctif de l'utilisateur. (dn) et redirigez la sortie vers un fichier:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
    

    Voici un exemple d'entrée dn pour un utilisateur, avec les attributs de l'utilisateur:

    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. Ouvrez le fichier ldap.txt et recherchez le nom de domaine du nouvel utilisateur qui a été ajouté. en fonction de l'attribut "email" (adresse e-mail) du nouvel utilisateur.
  4. Exécutez la commande ldappassword afin d'ajouter un mot de passe pour le nouvel utilisateur. à l'aide de son dn. Dans cet exemple, vous définissez le mot de passe de l'utilisateur sur 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. Connectez-vous à l'interface utilisateur Edge en tant que nouvel utilisateur avec le mot de passe défini à l'étape précédente. La l'utilisateur peut définir un nouveau mot de passe une fois connecté à l'UI.

LDAP n'est pas répliqué

Symptôme

De nombreuses installations Edge ont plusieurs centres de données, par exemple DC-1 et DC-2. Lors de la consignation dans l'interface utilisateur Edge de DC-1, en tant qu'administrateur de l'organisation, vous pouvez afficher la liste des utilisateurs, mais la même liste d'utilisateurs n'apparaît pas dans l'interface utilisateur Edge de DC-2.

Messages d'erreur

Aucune erreur n'apparaît, l'interface utilisateur Edge n'affiche tout simplement pas la liste des utilisateurs qui auraient dû être répliquées sur tous les serveurs OpenLDAP.

Causes possibles :

Généralement, la cause de ce problème est une mauvaise configuration de la configuration de la réplication OpenLDAP, l'installation elle-même. De plus, la réplication peut être interrompue si le réseau entre les serveurs OpenLDAP n'autorise pas le trafic sur le port 10389.

Diagnostic

Pour diagnostiquer le problème, procédez comme suit:

  1. Vérifiez si ldapsearch renvoie des données de chaque serveur OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. Vérifiez si vous pouvez vous connecter à chaque nœud OpenLDAP à partir des autres nœuds OpenLDAP sur le port 10389. Si telnet est installé, exécutez la commande suivante:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Si telnet n'est pas disponible, utilisez netcat pour vérifier la connectivité comme suit:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Vérifiez la configuration de la réplication dans le fichier suivant:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    

    Le fichier doit contenir la configuration suivante:

    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. Recherchez également la valeur de l'attribut olcMirrorMode dans le même fichier. Il doit s'agir défini sur la valeur TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Vérifiez s'il existe des règles iptables et des wrappers tcp. Veuillez supprimer toutes les règles qui n'autorisent pas les serveurs pairs OpenLDAP de communiquer entre eux. Contacter votre administrateur réseau de définir les règles de manière appropriée.
  7. Assurez-vous que le mot de passe du système OpenLDAP est le même sur chaque nœud OpenLDAP.
  8. Recherchez les caractères cachés dans les fichiers de configuration ldif utilisés pour configurer la réplication OpenLDAP N-Way en exécutant dos2unix sur les fichiers ldif qui ont été créé pour mettre à jour la configuration. En général, un fichier ldif contenant des caractères incorrects entraînerait la commande ldapmodify échoue à s'exécuter et la réplication peut ne pas être configurée. Supprimer les éléments indésirables et enregistrez les fichiers de configuration.

Si le problème persiste, contactez Apigee pour obtenir de l'aide sur la configuration de la réplication OpenLDAP N-Way.

Impossible de démarrer OpenLDAP

Symptôme

OpenLDAP ne démarre pas.

Messages d'erreur

SLAPD Dead But Pid File Exists

Causes possibles :

Ce problème est généralement causé par un fichier de verrouillage laissé à la place du système de fichiers et qui a besoin à supprimer.

Diagnostic

Pour diagnostiquer ce problème, procédez comme suit:

  1. Recherchez un fichier pid ou un verrou de processus slapd OpenLDAP à l’emplacement suivant:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. Supprimez le verrou et le fichier pid s'ils sont trouvés, puis essayez de redémarrer openldap.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  3. Si le processus slapd OpenLDAP démarre, ignorez les étapes ci-dessous.
  4. Si le processus slapd OpenLDAP ne démarre pas, essayez d’exécuter slapd en mode débogage et recherchez en cas d'erreur:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. Les erreurs peuvent indiquer des problèmes de ressources. Vérifier l'utilisation de la mémoire et du processeur sur le système
  6. Vérifiez la version d'OpenLDAP et mettez-la à niveau si elle est ancienne. Vérifiez les versions compatibles de OpenLDAP dans notre document sur les logiciels pris en charge.
    slapd -V
    
  7. Utiliser strace pour dépanner le processus slapd et fournir une sortie strace à Assistance Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

Corruption des données OpenLDAP

Symptôme

Les utilisateurs ne peuvent plus exécuter d'appels de gestion ni se connecter à l'interface utilisateur Edge. Utiliser ldapsearch utilitaire pour interroger les utilisateurs peut indiquer que l'utilisateur existe dans le datastore LDAP, ou identifier d'éventuels utilisateurs ou rôles manquants.

Messages d'erreur

Unknown username and password combination.

Causes possibles :

En règle générale, ce problème peut être observé en raison de la corruption des données OpenLDAP. Habituellement, OpenLDAP les données ne sont pas corrompues. Mais dans les rares cas où cela se produit, la corruption peut être due à une défaillance du disque système ou des problèmes d'espace disque.

Diagnostic

  1. Vérifiez l'espace disque sur le système sur lequel OpenLDAP est installé à l'aide de la commande suivante:
    du -m /opt
    
  2. Si vous constatez que l'espace disque utilisé est très proche de 100%, cela indique la cause du problème pour ce problème est que votre système manque d'espace disque.

Solution

Si votre système est à court d'espace disque ou s'il est très proche de manquer d'espace disque, ajoutez davantage d'espace disque pour vous assurer que vous disposez de suffisamment d'espace disque.

Une fois que vous disposez de suffisamment d'espace disque, utilisez l'une des solutions ci-dessous pour traiter les données LDAP de corruption:

  1. Restaurez les données OpenLDAP à partir de la sauvegarde.
  2. Nettoyer la base de données OpenLDAP.

Solution 1 : restaurez le Données LDAP de la sauvegarde

Sur un nœud OpenLDAP opérationnel, effectuez une sauvegarde. La sauvegarde doit être effectuée régulièrement. Voir Guide des opérations de cloud privé Apigee pour connaître les bonnes pratiques en matière de sauvegardes:

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

Les étapes suivantes peuvent être utilisées pour restaurer les données OpenLDAP à partir d’une bonne sauvegarde.

  1. Arrêtez le nœud OpenLDAP dont les données doivent être restaurées:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Passez au répertoire de données OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Sauvegardez les données OpenLDAP existantes à l'aide de la commande move:
    mv ldap ldap_orig
    
  4. Basculez vers l'utilisateur Apigee:
    su apigee
    
  5. Créer une donnée OpenLDAP à partir de l'annuaire /opt/apigee/data/apigee-openldap sous le nom d'origine:
    mkdir ldap
    
  6. Prenez la sauvegarde du sous-répertoire ldap_orig/DB_CONFIG de l'étape 3 et copiez-la dans le openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Pour restaurer des données à partir d'une sauvegarde effectuée avec slapcat, utilisez slapadd pour importer le ldif qui contient les bonnes données:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. Démarrez le processus OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

Solution 2 : nettoyez le serveur LDAP base de données

Les étapes suivantes effacent la base de données OpenLDAP afin de fournir un nouveau départ. Cette solution peut être utilisé s'il n'y a pas de sauvegarde des données du dernier état où les données OpenLDAP fonctionnaient.

  1. Arrêtez le service OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Passez au répertoire de données OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Sauvegardez les données OpenLDAP existantes à l'aide de la commande move:
    mv ldap ldap_orig
    
  4. Basculez vers l'utilisateur Apigee:
    su apigee
    
  5. Créez un répertoire de données OpenLDAP portant le nom d'origine:
    mkdir ldap
    
  6. Prenez le sous-répertoire ldap_orig/DB_CONFIG de sauvegarde de l'étape 3 et copiez-le dans le répertoire openldap répertoire:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Redémarrez le processus OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Redémarrez le serveur de gestion pour forcer l'actualisation des connexions à OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Solution n°3 : réinitialisation d'OpenLDAP à une installation de base

Si la solution n°2 ne résout pas le problème, vous pouvez réinitialiser OpenLDAP sur une installation de base, comme décrit dans cette section.

Prérequis

Pour réinitialiser OpenLDAP, vous avez besoin des prérequis suivants:

  • Possibilité d'exécuter la configuration avec les identifiants de l'administrateur système et du serveur LDAP racine.
  • Accès à l'utilitaire ldapadd.
  • Fichier de configuration silencieuse d'origine enregistré pour le nœud de gestion/LDAP.

Pour réinitialiser OpenLDAP, procédez comme suit:

  1. Réinstallez OpenLDAP et le serveur de gestion.
    1. Arrêtez le serveur openldap:
      apigee-service apigee-openldap stop
    2. Supprimez le dossier de données openldap corrompu:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Désinstallez le composant openldap:
      apigee-service apigee-openldap uninstall
    4. Réinstallez le composant openldap à l'aide du même fichier de configuration que celui utilisé. pour l'installation initiale:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      configfile est le nom du fichier de configuration.
    5. Réinstallez le serveur de gestion à l'aide du fichier de configuration d'origine:
      /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: @@@

      orgname est l'organisation que vous essayez de recréer.

    2. Ajoutez les entités LDAP manquantes à l'aide de la commande suivante:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    Les étapes ci-dessus créent les entrées manquantes pour une organisation existante, et le orgadmin pour cette organisation. Répétez la procédure pour chaque organisation à recréer. À ce stade, vous pouvez ajouter orgadmin utilisateurs à une organisation, mais les autres les rôles par défaut n'existent pas encore. Vous devez donc les ajouter à l'étape suivante.

  3. Ajoutez les rôles et autorisations par défaut manquants à une organisation existante.

    À l'aide du même fichier de configuration que celui initialement utilisé pour configurer l'une des organisations existantes, exécutez la commande suivante:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Après avoir suivi cette procédure, vous devez manuellement:

    • Ajoutez tous les rôles personnalisés qui existaient avant la corruption à l'aide de l'UI ou de l'API de gestion.
    • Ajoutez des utilisateurs aux rôles utilisateur appropriés.
  5. (Facultatif) Rétablir la configuration de l'authentification externalisée sur la gestion.

    Restaurez /opt/apigee/customer/application/management-server.properties si la configuration n'a pas changé. Comme l'interface utilisateur n'a pas été réinstallée, le /opt/apigee/customer/application/ui.properties doit rester le même compte tenu de les identifiants de l’administrateur système ont été restaurés avec la nouvelle installation de gestion.

  6. (Facultatif) Réinstallez Apigee mTLS sur le nœud de gestion.

    Si Apigee mTLS a déjà été installé, suivez le guide d'installation d'Apigee mTLS pour le réinstaller sur le nœud du serveur de gestion.

Si le problème persiste, contactez Apigee pour obtenir de l'aide.