OpenLDAP 문제 해결

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

이 섹션에서는 OpenLDAP 문제 해결에 대한 정보와 안내를 제공합니다.

SMTP가 사용 중지되었으며 사용자가 재설정해야 합니다. 비밀번호

증상

Edge UI에 SMTP가 설정되지 않은 경우 Edge에 새로 추가된 사용자는 비밀번호

오류 메시지

Unknown username and password combination.

가능한 원인

신규 사용자는 '비밀번호를 잊으셨나요?'라는 내용의 이메일을 받을 수 없습니다. 설정 링크 비밀번호가 설정되어 있지 않을 수 있습니다.

해상도

다음 방법 중 하나로 이 문제를 해결할 수 있습니다.

해결 방법 1: SMTP 서버 구성

제공된 안내에 따라 사용자의 새 비밀번호를 설정하도록 SMTP 서버를 구성합니다. 자세한 내용은 문서를 참조하세요.

솔루션 #2: 사용 LDAP

SMTP 서버를 구성할 수 없는 경우 아래 LDAP 명령을 사용하여 새 비밀번호:

  1. 기존 조직 관리자는 아래와 같이 Edge UI를 통해 특정 사용자를 추가해야 합니다.

  2. ldapsearch 명령어를 사용하여 사용자의 고유 이름 찾기 (dn)으로 설정하고 출력을 파일로 리디렉션합니다. <ph type="x-smartling-placeholder">
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
    
    </ph>

    다음은 사용자에 대한 속성과 함께 사용자에 대한 DN 항목의 예입니다.

    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. ldap.txt 파일을 열고 추가된 새 사용자의 DN을 찾습니다. 신규 사용자의 이메일 속성을 기준으로 합니다.
  4. ldappassword 명령어를 실행하여 새 사용자의 비밀번호를 추가합니다. . 이 예시에서는 사용자의 비밀번호를 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. 이전 단계에서 정의한 비밀번호를 사용해 Edge UI에 신규 사용자로 로그인합니다. 이 사용자는 UI에 로그인한 후 새 비밀번호를 설정할 수 있습니다.

LDAP가 복제되지 않음

증상

대부분의 Edge 설치에는 여러 데이터 센터(예: DC-1 및 DC-2)가 있습니다. 로깅 시 조직 관리자가 DC-1의 Edge UI에 로그인하면 사용자 목록을 볼 수 있지만 동일한 사용자 목록은 볼 수 있습니다. DC-2의 Edge UI에 표시되지 않습니다.

오류 메시지

오류가 표시되지 않습니다. Edge UI에 원래대로 사용되어야 하는 사용자 목록이 모든 OpenLDAP 서버에 걸쳐 복제됩니다.

가능한 원인

일반적으로 이 문제의 원인은 잘못 구성된 OpenLDAP 복제 구성이지만, 설치 자체에 영향을 줍니다. 또한 OpenLDAP 서버 간의 네트워크가 있는 경우 복제가 중단될 수도 있습니다. 포트 10389에서 트래픽을 허용하지 않습니다.

진단

문제를 진단하려면 다음 단계를 따르세요.

  1. ldapsearch가 각 OpenLDAP 서버에서 데이터를 반환하는지 확인합니다.
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. 포트 10389의 다른 OpenLDAP 노드에서 각 OpenLDAP 노드에 연결할 수 있는지 확인합니다. telnet이 설치된 경우 다음 명령어를 사용합니다.
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Telnet을 사용할 수 없는 경우 다음과 같이 netcat을 사용하여 연결을 확인합니다.

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. 다음 파일에서 복제 구성을 확인합니다.
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    

    파일에는 다음과 같은 구성이 포함되어야 합니다.

    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. 또한 동일한 파일에서 olcMirrorMode 속성 값을 확인합니다. 올바른 값이어야 합니다. 값을 TRUE로 설정합니다.
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. iptables 및 tcp 래퍼 규칙을 확인합니다. 광고를 허용하지 않는 규칙을 삭제하세요. 피어 OpenLDAP 서버가 서로 통신할 수 있도록 합니다. 네트워크 관리자에게 문의 규칙을 설정할 수 있습니다
  7. 각 OpenLDAP 노드에서 OpenLDAP 시스템 비밀번호가 동일한지 확인합니다.
  8. 기존 ldif 파일에 대해 dos2unix를 실행하여 N-Way OpenLDAP 복제를 구성을 업데이트할 수 있습니다 일반적으로 잘못된 문자가 포함된 ldif 파일은 ldapmodify 명령어가 실행되지 않으므로 복제가 설정되지 않았을 수 있습니다. 악성 댓글 삭제 구성 파일을 저장합니다.

문제가 지속되면 에 문의하세요. Apigee 지원을 참조하세요.

OpenLDAP를 시작할 수 없음

증상

OpenLDAP이 시작되지 않습니다.

오류 메시지

SLAPD Dead But Pid File Exists

가능한 원인

이 문제는 일반적으로 잠금 파일이 파일 시스템에 남아 있고 있습니다.

진단

이 문제를 진단하려면 다음 단계를 따르세요.

  1. 다음 위치에 OpenLDAP slapd 프로세스 잠금 또는 pid 파일이 있는지 확인합니다.
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. 잠금 및 PID 파일이 있는 경우 삭제하고 openldap을 다시 시작해 보세요.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  3. OpenLDAP slapd 프로세스가 시작되면 아래 단계를 건너뜁니다.
  4. OpenLDAP slapd 프로세스가 시작되지 않으면 디버그 모드에서 slapd를 실행해 보고 모든 오류:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. 오류는 리소스 문제를 의미할 수도 있습니다. 시스템의 메모리 및 CPU 사용률을 확인합니다.
  6. OpenLDAP 버전을 확인하고 이전 버전인 경우 업그레이드합니다. 다음에서 지원되는 버전을 확인하세요. 지원되는 소프트웨어 문서의 OpenLDAP
    slapd -V
    
  7. strace를 사용하여 slapd 프로세스의 문제를 해결하고 strace 출력을 Apigee 지원: <ph type="x-smartling-placeholder">
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    
    </ph>

OpenLDAP 데이터 손상

증상

사용자가 더 이상 관리 호출을 실행하거나 Edge UI에 로그인할 수 없게 됩니다. ldapsearch 사용 사용자를 쿼리하는 유틸리티가 사용자가 LDAP 데이터 저장소에 있음을 나타내거나 또는 사용자 또는 역할 누락

오류 메시지

Unknown username and password combination.

가능한 원인

일반적으로 이 문제는 OpenLDAP 데이터의 손상으로 인해 발생할 수 있습니다. 일반적으로 OpenLDAP 데이터는 손상되지 않습니다 하지만 드물게 발생하는 경우, 이 손상은 다음의 원인 때문일 수 있습니다. 시스템 디스크 장애 또는 디스크 공간 문제 등이 있습니다.

진단

  1. 아래 명령어를 사용하여 OpenLDAP가 설치된 시스템의 디스크 공간을 확인합니다.
    du -m /opt
    
  2. 사용된 디스크 공간이 100%에 매우 가깝다면 시스템의 디스크 공간이 부족하다는 것입니다.

해상도

시스템의 디스크 공간이 부족하거나 디스크 공간이 거의 소진된 경우 디스크 공간이 충분한지 확인합니다.

디스크 공간이 충분하면 아래 해결 방법 중 하나를 사용하여 LDAP 데이터 문제를 해결하세요. 손상 문제:

  1. 백업에서 OpenLDAP 데이터를 복원합니다.
  2. OpenLDAP 데이터베이스를 정리합니다.

솔루션 #1 백업의 LDAP 데이터

작동 중인 OpenLDAP 노드에서 백업을 만듭니다. 정기적으로 백업해야 합니다. 자세한 내용은 Apigee Private Cloud 운영 가이드 다음을 참조하세요.

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

다음 단계에 따라 정상적인 백업에서 OpenLDAP 데이터를 복원할 수 있습니다.

  1. 데이터를 복원해야 하는 OpenLDAP 노드를 중지합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. 디렉터리를 OpenLDAP 데이터 디렉터리로 변경합니다.
    cd /opt/apigee/data/apigee-openldap
    
  3. 이동 명령어를 사용하여 기존 OpenLDAP 데이터를 백업합니다.
    mv ldap ldap_orig
    
  4. Apigee 사용자로 전환합니다.
    su apigee
    
  5. /opt/apigee/data/apigee-openldap 디렉터리에서 새 OpenLDAP 데이터를 만듭니다. 를 삭제합니다.
    mkdir ldap
    
  6. 3단계의 ldap_orig/DB_CONFIG 하위 디렉토리를 백업한 다음 openldap 디렉터리에 파일을 추가할 수 있습니다.
    cp ldap_orig/DB_CONFIG ldap
    
  7. slapcat을 사용하여 실행된 백업에서 데이터를 복원하려면 slapadd를 사용하여 좋은 데이터가 포함되어 있습니다.
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. OpenLDAP 프로세스를 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

해결 방법 2 LDAP 정리 데이터베이스

다음 단계에서는 OpenLDAP 데이터베이스를 완전히 삭제하여 새로 시작합니다. 이 솔루션은 OpenLDAP 데이터가 작동한 마지막 상태의 데이터 백업이 없는 경우 사용됩니다.

  1. OpenLDAP 서비스를 중지합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. 디렉터리를 OpenLDAP 데이터 디렉터리로 변경합니다.
    cd /opt/apigee/data/apigee-openldap
    
  3. 이동 명령어를 사용하여 기존 OpenLDAP 데이터를 백업합니다.
    mv ldap ldap_orig
    
  4. Apigee 사용자로 전환합니다.
    su apigee
    
  5. 원래 이름으로 새 OpenLDAP 데이터 디렉터리를 만듭니다.
    mkdir ldap
    
  6. 3단계의 백업 ldap_orig/DB_CONFIG 하위 디렉터리를 가져와 openldap에 복사합니다. 디렉터리:
    cp ldap_orig/DB_CONFIG ldap
    
  7. OpenLDAP 프로세스를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. 관리 서버를 다시 시작하여 OpenLDAP 연결을 강제로 새로고침합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

해결 방법 3 OpenLDAP를 기본 설치로 재설정

해결 방법 2로 문제가 해결되지 않으면 OpenLDAP를 기본 설치로 재설정할 수 있습니다. 사용할 수 있습니다.

기본 요건

OpenLDAP를 재설정하려면 다음 기본 요건이 필요합니다.

  • 시스템 관리자 및 루트 LDAP 사용자 인증 정보로 설정을 실행할 수 있어야 합니다.
  • ldapadd 유틸리티에 액세스합니다.
  • management/LDAP 노드에 저장된 원래 무음 구성 파일입니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

OpenLDAP를 재설정하려면 다음 단계를 따르세요.

  1. OpenLDAP 및 Management Server를 다시 설치합니다.
    1. openldap 서버를 중지합니다.
      apigee-service apigee-openldap stop
    2. 손상된 openldap 데이터 폴더를 삭제합니다.
      rm -rf /opt/apigee/data/apigee-openldap
    3. openldap 구성요소를 제거합니다.
      apigee-service apigee-openldap uninstall
    4. 사용된 것과 동일한 구성 파일을 사용하여 openldap 구성요소를 재설치합니다. 다음을 수행합니다.
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      여기서 configfile은 구성 파일의 이름입니다.
    5. 원본 구성 파일을 사용하여 관리 서버를 다시 설치합니다.
      /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은 다시 만들려는 조직입니다.

    2. 다음 명령어를 사용하여 누락된 LDAP 항목을 추가합니다.
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    위 단계를 수행하면 기존 조직 및 orgadmin에 누락된 항목이 만들어집니다. 권한을 부여할 수 있습니다. 다시 만들어야 하는 각 조직에 대해 이 단계를 반복합니다. 이 시점에서 조직에 사용자 orgadmin명을 추가할 수 있지만 기본 역할이 아직 존재하지 않으므로 다음 단계에서 추가해야 합니다.

  3. 누락된 기본 역할 및 권한을 기존 조직에 추가합니다.

    처음에 기존 조직을 설정하는 데 사용한 것과 동일한 구성 파일을 사용하여 다음 명령어를 실행합니다.

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. 이 절차를 따른 후에는 다음을 수동으로 수행해야 합니다.

    • UI 또는 관리 API를 사용하여 손상되기 전에 존재했던 커스텀 역할을 추가합니다.
    • 관련 사용자 역할에 사용자를 추가합니다.
  5. (선택사항) 관리에서 외부화된 인증 구성을 다시 설정합니다.

    다음과 같은 경우 /opt/apigee/customer/application/management-server.properties를 복원합니다. 구성이 변경되지 않았는지 확인합니다 UI가 재설치되지 않았으므로 다음과 같은 경우 /opt/apigee/customer/application/ui.properties는 동일하게 유지되어야 합니다. 새로운 관리 설치와 함께 시스템 관리자의 사용자 인증 정보가 복원되었습니다.

  6. (선택사항) 관리 노드에 Apigee mTLS를 재설치합니다.

    이전에 Apigee mTLS를 설치한 경우 Apigee mTLS 설치 가이드에 따라 재설치하세요. kube-APIserver로 전송합니다

문제가 계속되면 Apigee에 문의 지원을 참조하세요.