次に、LDAP (Lightweight Directory Access Protocol) を sendmail で使用する際の変更点について説明します。
LDAPROUTE_EQUIVALENT() および LDAPROUTE_EQUIVALENT_FILE() を使用して、同じホスト名を指定することができます。これらのホスト名は、LDAP ルーティング参照のマスカレードドメイン名と置き換えられます。詳細は、/usr/lib/mail/README を参照してください。
ftp://ftp.sendmail.org で sendmail とともに配布しているリリースノートで説明しているように、LDAPX マップの名前は LDAP に変更されました。LDAP には、次の構文を使用します。
Kldap ldap options |
本リリースでは、一度の LDAP 参照に複数の値を返すことができます。次の例のように、返す値を -v オプションを付加したコンマ区切りの文字列に配置します。
Kldap ldap -v"mail,more_mail" |
LDAP マップの宣言で LDAP 属性が指定されていない場合は、一致した属性がすべて返されます。
このバージョンの sendmail は、LDAP 別名ファイルに指定された引用符などで囲まれたキーや値の文字列内のコンマによって、1 つのエントリが複数のエントリに分割されるのを防止します。
このバージョンの sendmail には、LDAP マップ用の新しいオプションがあります。この -Vseparator オプションを使用して、区切り文字を指定できます。そのため、参照を行うと、該当する separator によって区切られた属性と値の両方が返されることがあります。
%s トークンを使用して LDAP フィルタ指定を構文解析する代わりに、新しいトークンである %0 を使用して、キーバッファーを符号化することができます。%0 トークンは、LDAP の特殊文字に対して、文字どおりの意味を適用します。
次の例では、* にこれらのトークンを使って参照する場合の相違点について説明します。
表 27-18 トークンの比較
LDAP のマップ指定 |
同等の指定 |
結果 |
---|---|---|
-k"uid=%s" |
-k"uid=*" |
レコードとユーザー属性を照合する |
-k"uid=%0" |
-k"uid=\2A" |
ユーザーと名前「*」を照合する |
次の表では、LDAP マップの新しいフラグについて説明しています。
表 27-19 LDAP マップの新しいフラグ
フラグ |
説明 |
---|---|
-1 |
一致したレコードが 1 つだけだった場合、そのレコードを返す。複数のレコードが一致して返される場合には、結果として、レコードが検出されなかったことと同じとなる |
-r never|always|search|find |
LDAP 別名の参照を解除するオプションを設定する |
-Z size |
一致したもののうち、返すレコード数を制限する |