OpenLDAP 2.4 ACL

OpenLDAP 2.4 ACL

그룹에 대한 권리를 얻도록 도와주실 수 있나요 OpenLdap 2.4?

내 것이 있어요slapd.conf

# Allow LDAPv2 client connections.  This is NOT the default.
allow bind_v2

#Basic rights for authentication
access to attrs=userPassword
    by self write
    by anonymous auth
    by * none

#Rights for groups GR_READ and GR_WRITE
access to *
  by self write
  by group.exact="cn=GR_READ,ou=groups,ou=BGA,o=Company,c=com" read
  by group.exact="cn=GR_WRITE,ou=groups,ou=BGA,o=Company,c=com" write
  by * none

이 구성은 잘 작동합니다. 내 그룹에는 이름이 있는 사람이 몇 명 있습니다.GR_READ and GR_WRITE

하지만 내 문제는 두 Openldap DB 간에 DIT를 동기화하는 것입니다. 동기화가 작동하지 않습니다! findbase failed 오류가 발생합니다! slapd.log 다중 호스트 구성 에서는 32입니다 .

구성을 다음과 같이 변경하면 slapd.conf:

#Basic rights for authentication
access to attrs=userPassword
    by self write
    by anonymous auth
    by * none

#Rights for groups GR_READ and GR_WRITE
access to *
    by * read

동기화가 작동합니다! 에는 오류가 없습니다 slapd.log. 하지만 익명 사용자가 LDAP에 바인딩할 수 있는 내 그룹에 대한 권한이 없습니다.

그런 다음 익명성을 비활성화하는 데 또 다른 문제가 발생했습니다. 내가 변하면

# Allow LDAPv2 client connections.  This is NOT the default.
allow bind_v2

도착하다

disallow bind_anon

동기화가 작동하지 않습니다! findbase failed 오류가 발생합니다! 32인치slapd.log

도와 주셔서 감사합니다.

답변1

syncrepl명령문에 바인딩 정보를 지정 해야 하며 가급적이면 다른 그룹을 통해 이러한 엔터티에 대한 전역 읽기 액세스 권한을 명시적으로 부여해야 합니다 REPLICAS.

또한 다음과 같이 ACL을 리팩토링하는 것이 좋습니다.

access to *
  by group.exact="cn=REPLICAS,ou=groups,ou=BGA,o=Company,c=com" read
  by self write
  by group.exact="cn=GR_WRITE,ou=groups,ou=BGA,o=Company,c=com" write
  by group.exact="cn=GR_READ,ou=groups,ou=BGA,o=Company,c=com" read
  by * none

그렇지 않으면 회원인 사용자는 글을 GR_WRITE쓸 수 없습니다 GR_READ. 순서가 중요합니다. 첫 번째 일치에서 제어 흐름이 중지됩니다!

by self write또한 모든 사용 사례에 안전한지 검토하겠습니다 . 하지만 보안 정책이니까요...

관련 정보