web-dev-qa-db-ja.com

openLDAPサーバー上のユーザーが特定のorganizationalUnitの下でユーザーを作成、更新、および変更できるようにするにはどうすればよいですか?

特定のグループ(EX:cn=Admins,dc=mydomain,dc=com)に属するopenLDAPユーザーを別のorganizationalUnit(EX:create, modify, update, and delete)に属するou=Users,dc=mydomain,dc=comユーザーに許可しようとして立ち往生しています。 )今から約2週間。私はこれを理解しようと全力を尽くしました。 Googleでの検索、 serverfault での検索、最後に stackoverflow での検索などですが、役に立ちません。私はopenLDAPにかなり慣れていないので、おそらくエラーであるか、dn: olcDatabase={1}hdb,cn=configolcAccess属性で見落としているものです。

Admin Group.ldif

dn: cn=Admins,dc=ldapserver,dc=com
changetype: add
objectClass: groupOfNames
objectClass: top
member: cn=admin,ou=Users,dc=ldapserver,dc=com
cn: Admins

Users.ldif

dn: ou=Users,dc=ldapserver,dc=com
changetype: add
objectClass: organizationalUnit
objectClass: top
ou: Users

デフォルトのolcAccess

注:これは、openLDAPサーバーの新規インストールに付属するデフォルトのACLです。

dn: olcDatabase={1}hdb,cn=config
olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to * by * read

注意1:私はopenLDAPにかなり慣れていないので、デフォルトで表示されるもの以外のACLsを設定していません。最初にopenLDAPサーバーをインストールします。

注意2:質問をする前に、この質問を試しました ここ これは明らかにうまくいきませんでした。

ありがとう、アレックス

1
Alex Lowe

OpenldapのACLは、常に{0}、{1}、..の番号が付けられた行のリストの上から下に評価されます。条件が満たされるとすぐに、評価はimmediately停止しました(ブレークが使用されていないと仮定)。

Ubuntuによって設定され、準拠しているデフォルトのACLには、次の行があります。

olcAccess:{2}to *by * read

to * by *:すべてを満たし、後に行を追加してもまったく効果がありません。

このリンク 以上で説明されている解決策で問題が解決するはずです。次のACLリストを試してみることをお勧めします。

olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to dn.subtree="ou=Users,dc=ldapserver,dc=com"
             by group/groupOfUniqueNames/uniqueMember="cn=Admins,dc=ldapserver,dc=com" write

adminsグループのobjectClassをgroupOfUniqueNamesに変更します。

1