계정을 비활성화하지 않고 사용자의 LDAP 비밀번호를 비활성화할 수 있습니까?

계정을 비활성화하지 않고 사용자의 LDAP 비밀번호를 비활성화할 수 있습니까?

이전에 LDAP에 저장된 비밀번호를 사용했던 사용자 인증을 위해 내부 LDAP 도메인을 사용하는 클러스터가 있습니다. 이제 외부 kdc에 대한 비밀번호 인증을 위해 krb5를 사용하도록 로그인 시스템을 이동했습니다. 가능하다면 로컬 LDAP 비밀번호를 제거하고 싶습니다. ldap에 기존 unix auth 명령에 해당하는 명령이 있습니까 usermod -p '!' user?

답변1

OpenLDAP의 경우,userPassword속성 을 제거하다각 사용자 계정에서.

불행하게도 LDAP 사용자 계정을 관리하기 위한 표준 명령이 없으므로 ldapsearch | awk/sed/grep | ldapmodifyPerl/Python을 사용하여 일괄 업데이트를 스크립트로 작성해야 합니다.

또는:LDAP 비밀번호 인증을 완전히 비활성화하는 대신~할 수 있다LDAP 서버가 Kerberos에 대해 바인드 비밀번호를 검증하도록 합니다. 물론 이는 실제 Kerberos 인증(SASL GSSAPI)만큼 좋지는 않지만 LDAP '단순 바인딩'에 의존하는 소프트웨어가 여전히 있는 경우 유용할 수 있습니다.

각 사용자의 userPassword속성을 Kerberos 주체 포함으로 변경하면 {SASL}user@REALMOpenLDAP는 'saslauthd' 데몬(Cyrus SASL의)을 사용하여 통과 암호 확인을 수행하게 됩니다. 시작되도록 구성 saslauthd -a krb5하면 Kerberos KDC에 대한 비밀번호를 확인합니다.

참고로 saslauthd필요하다시스템의 시스템 키 탭(/etc/krb5.keytab)에 'host/' 주체가 있어야 합니다.

관련 정보