ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

SASL の認証


SASL はどうやら UserID-Password の認証を行うライブラリのようなものらしい。
認証を行うプログラムから SASL 経由で認証を行う、と。


このときに、PAM 同様にアプリケーション名が SASL に送られるそうで、
それによって認証の設定ファイル /usr/local/lib/sasl2/*.conf が読まれる。


PAM とどう違うんだろう...


さて、認証のバックグラウンドがここで設定されるわけだけどこれが複雑。
まずは SASL の設定は大きく分けて2つ。

1. saslauthd に任せる

pwcheck_method: saslauthd
mech_list: plain login

こうするとローカルで動いている saslauthd に丸投げするようになる。


で、saslauthd で使える認証方法は主に4つ。

sasldb
saslpasswd とかで設定するアレ。
pam
UNIX アカウントの認証で使ってる PAM。
shadow
UNIX アカウントの /etc/shadow ファイル。
ldap
OpenLDAP とか。


これらは

# saslauthd -a ldap

とか起動する引数で認証方法を切り替える。

2. プラグイン経由で接続する

pwcheck_method: auxprop
mech_list: cram-md5 digest-md5 plain login
auxprop_plugin: ******

pwcheck_method を auxprop にすると、auxprop_plugin でプラグインを経由して認証するようになる。


で、auxprop_plugin で使える認証方法は主に3つ。

sasldb
上の sasldb と同じ。
sql
MySQL, PostgreSQL, SQLite でテーブルを作ってやる。
ldapdb
OpenLDAP とか。