最近のopenldapでは、slapd.conf への直接設定は非推奨のようですが、とりあえず。
STEP1 属性を編集する部署&ユーザを追加
今回の場合、ヘルプデスクの担当者がldapクライアントでldapに直接接続すると仮定。
$ vi ~/tmp/add_helpdesk_dept_and_user.ldif
dn: cn=HelpDesk,dc=my-domain,dc=com
objectclass: organizationalRole
cn: HelpDesk
dn: cn=sampledesk,ou=helpdesk,dc=smart-heim,dc=com
objectClass: person
cn: sampledesk
sn: sampledesk
userPassword: {SHA}YyylynHcSfZ4rukYJCWrHe34L+U=
$ /usr/local/openldap/bin/ldapadd -x \
-D cn=Manager,dc=my-domain,dc=com -w ないしょ \
-f ~/tmp/add_helpdesk_dept_and_user.ldif
STEP2 slapd.conf に 属性毎のアクセス権限(read write etc.)を設定
以下のように「access to」を追加後、slapdを再起動するだけでOK
$ su - # vi /usr/local/openldap/etc/openldap/slapd.conf : access to attrs=mail,displayName,memberSid,uidAlias by dn="cn=samplehelp,ou=HelpDesk,dc=my-domain,dc=com" write by anonymous read by * none access to attrs=userPassword by dn="cn=samplehelp,ou=HelpDesk,dc=my-domain,dc=com" write by anonymous auth by * none access to * by dn="cn=samplehelp,ou=HelpDesk,dc=my-domain,dc=com" read by anonymous read by * none
他参考 - アクセス権限の優劣?
次の通り、Write権限があれば、Read権限も自動でつく感じです
| none | 0 | =0 |
|---|---|---|
| disclose | d | =d |
| auth | x | =xd |
| compare | c | =cxd |
| search | s | =scxd |
| read | r | =rscxd |
| write | w | =wrscxd |