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

しかし、私の問題は、2つの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また、すべてのユースケースに安全であることを確認します。しかし、セキュリティポリシーですから…

おすすめ記事