저는 사용자/비밀번호 관리를 위해 openldap을 사용하도록 기존 서버 클러스터를 마이그레이션하는 작업을 진행해 왔습니다. 하지만 문제가 발생했습니다. 일반 텍스트 비밀번호에 액세스할 수 없으며 지금까지 식별한 모든 SASL 방법에는 데이터베이스에 일반 텍스트 비밀번호가 필요합니다. 사용 가능한 유일한 형식은 crypt입니다. 기간.
많은 프로그램에서는 여전히 단순 인증을 사용할 수 있습니다. 그러나 libldap2(openldap)를 사용하는 경우 특히 ldap_sasl_interactive_bind 기능 계열은 SASL 연결만 지원하며 다른 모든 기능은 비활성화되고 더 이상 사용되지 않습니다.
그렇다면 SASL이 손상된 경우 어떻게 인증합니까? (SASL은 암호화를 지원하지 않음 = 손상됨)
사용할 인증 접근 방식: 반경(freeradius)
웹
사용자 정의 C 앱
SSH
LDAP 미러링
나는 반경을 작동시킬 수 있었고 그게 전부였습니다.
도와주세요. 환영합니다. 문서에서는 왜 단순 인증이 더 이상 사용되지 않는지 설명하지 않으며 이것이 작동할 수 있는 유일한 인증인 것 같습니다. SASL이 실행될 때마다 아무 것도 작동하지 않습니다.
환경은 ubuntu-14.04입니다. openldap, cyrus-sasl(openldap을 통해), freeradius, apache 및 사용자 정의 C 및 C++ 구성 요소.
답변1
LDAP 단순 인증과 SASL/PLAIN 간에는 큰 차이가 없습니다. 두 경우 모두 일반 텍스트 비밀번호는 클라이언트에서 제공되고 서버에서 처리됩니다.OpenLDAP에는 비밀번호를 저장할 필요가 없습니다.일반 텍스트, 실제로 로컬 시스템의토굴(3)기능. 전송 중에 일반 텍스트 비밀번호를 처리하므로 해당 비밀번호가 일반 텍스트로 전송되지 않도록 노력해야 합니다. 이는 일반적으로 LDAP 연결의 일부로 STARTTLS를 사용하여 수행되지만 LDAPS도 옵션입니다.
$ ldapwhoami -h ldap.example.com -ZZ -x -D uid=user,ou=people,dc=example,dc=com -W
Enter LDAP Password:
dn:uid=user,ou=people,dc=example,dc=com
$ ldapwhoami -h ldap.example.com -ZZ -D uid=user,ou=people,dc=example,dc=com -W
Enter LDAP Password:
dn:uid=user,ou=people,dc=example,dc=com