最初に
前回までのFDS記事でSASLという言葉が出てきましたが、
SASLとはSimple Authentication and Security Layerの略であり、
また、
OpenLDAPとSASLの関係
たとえば、
% ldapsearch -x -D “uid=nomo,ou=People,dc=example,dc=com" -w abc123 -b “dc=example,dc=com" "objectClass=*"
という検索を行う場合、

SASLを有効にすることで、
それではさっそくSASLの設定です。/etc/
sasl-regexp
uid=([^,]+),.*,cn=auth
uid=$1,ou=People,dc=example,dc=com
password-hash {CLEARTEXT}
クライアント側からSASL認証が要求されると、
uid=ユーザ名,cn=,cn=digest-md5,cn=auth
(レルムが省略された場合はuid=ユーザ名,cn=digest-md5,cn=auth)
といったDNを生成します。ただし、
sasl-regexp 変換前DN 変換後DN
です。また、
password-hash {CLEARTEXT}
を設定しています。この設定を行うことで
% ldappasswd -U nomo -w abc123 -Y digest-md5 -s hoge
のようにパスワードを変更しても、
エントリの登録
今回は
sasl-regexp uid=([^,]+),.*,cn=auth uid=$1,ou=People,dc=example,dc=com
という設定を行っているため、
dn: dc=example,dc=c、om
objectClass: dcObject
objectClass: organization
dc: example
o: example
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: uid=nomo,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
sn: nomo
cn: nomo
uid: nomo
userPassword: abc123
エントリを登録できたら、
% ldapsearch -U proxy -Y digest-md5 -b "dc=example,dc=com" "objectclass=*"
Wiresharkで確認してみても、

Postfix SMTP AuthとSASL
OpenLDAP側でSASL設定を行っておくことにより、
この概念としては、
今までとの違いは、
リスト3 proxyuserアカウントの登録
dn: uid=proxyuser,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
sn: proxyuser
cn: proxyuser
uid: proxyuser
userPassword: proxy_passwd
saslAuthzTo: dn.regex: uid=.*,ou=People,dc=example,dc=com
また、
sasl-authz-policy To
を加えるとともに、
access to *
by self write
by dn="uid=proxyuser,ou=People,dc=example,dc=com" write
by * read
といったACLを設定しておきます。あとはSMTP Auth用にsmtpd.
リスト4 /usr/
pwcheck_method: auxprop
auxprop_plugin: ldapdb
ldapdb_uri: ldap://localhost
ldapdb_id: proxyuser
ldapdb_pw: proxy_passwd
ldapdb_mech: DIGEST-MD5
mech_list: LOGIN PLAIN CRAM-MD5 DIGEST-MD5
駆け足になりましたが、
最後に
OpenLDAPには以前紹介したSSLや今回紹介したようなSASLのように、
また、
たとえばインターネット越しにLDAP検索を行う場合でも、
2008年最後の記事となってしまいましたが、