現在、LDAP認証をシステムに統合する作業を行っていますが、LDAPグループに基づいてアクセスを制限したいと考えています。これを行う唯一の方法は、検索フィルターを使用することであるため、検索フィルターで「memberOf」属性を使用することが唯一の選択肢であると考えています。「memberOf」属性は、サーバー上の「groupOfNames」エントリに対して新しい「member」属性が作成されるたびに、サーバーによって作成できる操作属性であると理解しています。私の主な目標は、既存の「groupOfNames」エントリに「member」属性を追加し、提供するDNに一致する「memberOf」属性を追加できるようにすることです。
これまでに達成できたこと:
私はまだLDAP管理にかなり慣れていませんが、openldap管理者ガイドに記載されている内容に基づいて、リバースグループメンバーシップメンテナンス(別名「memberof overlay」)がまさに探している効果を達成するようです。
私のサーバーは現在、「cn = config」スタイルのランタイム構成を使用するopenldap 2.4.15のパッケージインストール(ubuntuのslapd)を実行しています。私が見つけたほとんどの例は、静的構成の古い「slapd.conf」メソッドをまだ参照しており、新しいディレクトリベースのモデルに構成を適合させるために最善を尽くしています。
memberof overlayモジュールを有効にするために、次のエントリを追加しました。
olcModuleLoadでモジュールを有効にします
cn=config/cn\=module\{0\}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z
データベースのオーバーレイを有効にし、デフォルト設定(groupOfNames、member、memberOfなど)を使用できるようにしました
cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof
dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: 20091009104412Z
olcMemberOfRefInt: TRUE
entryCSN: 20091009173500.139380Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009173500Z
私の現在の結果:
上記の構成を使用することにより、任意の数の「メンバー」エントリを持つ新しい「groupOfNames」を追加し、「memberOf」属性で関連するすべてのDNを更新することができます。これは私が期待する動作の一部です。memberof overlayを使用して次のことを実行する必要がありますが、次の方法はまだわかりません。アドバイスを歓迎します。
- 「member」属性を既存の「groupOfNames」に追加し、対応する「memberOf」属性を自動的に作成します。
- 「member」属性を削除し、対応する「memberOf」属性を自動的に削除します。
slapadd
、それを行うための正しい方法は、(停止データベース上に)?