C2. LDAP認証

設定はauth-ldap.conf設定ファイル内にあります。

設定ファイルの一般的なタグは以下のとおりです。

<enabled/>および<order/> - Active Directoryと同様。

<server/> - LDAP Serverアドレスを指定します。異なるLDAPサーバーアドレスの複数の<server/>タグを追加できます。これにより、認証に使用するサーバーのリストが作成されます。主に負荷を受けるメインサーバーを最初に指定し、残りのバックアップサーバーのアドレスをその後に指定します。管理者が接続する際は、最初に使用可能なLDAPサーバーが使用されます。認証に失敗した場合、設定ファイル内にリストアップされているLDAPサーバーアドレスの順番に従って、次のサーバーで順次再試行されます。

<user-dn/> - DOS同様のマスクを使用して名前をDN(Distinguished Name:識別名)に変換する際のルールを定義します。

<user-dn/>タグ内では、以下のワイルドカードの使用が可能です。

*は、. , = @ \ および空白を除く任意の記号のシーケンスと置き換えられます。

#は、任意の記号のシーケンスと置き換えられます。

<user-dn-expr/> - 正規表現を使用して名前をDNに変換する際のルールを定義します。

以下の2つは同じルールです。

<user-dn user="*@example.com" dn="CN=\1,DC=example,DC=com"/>
<user-dn-expr user="(.*)@example.com" dn="CN=\1,DC=example,DC=com"/>

\1 .. \9は * 記号の値を置き換える場所、またはテンプレートでの角括弧内の表現を定義します。

この原理により、ユーザー名がlogin@example.comと指定されていた場合、変換後のDNは"CN=login,DC=example,DC=com"になります。

<user-dn-extension-enabled/>では、ユーザー名のDNへの変換にldap-user-dn-translate.dsプラグインフォルダから)のLUAスクリプトの実行が許容されます。このスクリプトは、適切なルールがない場合に、user-dnuser-dn-exprルールの使用が試行された後で実行されます。スクリプトのパラメータは1つです(ユーザー名の指定)。スクリプトからはDNを含む文字列が返されるか、何も返されません。適切なルールがなく、スクリプトが無効になっているか、結果を何も返さない場合には、指定したユーザー名がそのまま使用されます。

変換の結果定められたDNに対するLDAPオブジェクトの属性およびその可能な値はタグによって定義されます(デフォルト値が提示されます)。

<!-- DrWebAdmin attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.1) -->
<admin-attribute-name value="DrWebAdmin" true-value="^TRUE$" false-value="^FALSE$"/>

true-value/false-valueパラメータの値として、正規表現が指定されます。

定義されていない管理者属性の値が存在し、設定ファイル内で<group-reference-attribute-name value="memberOf"/>タグが設定されている場合、memberOf属性の値はこの管理者が含まれているDNグループのリストであると見なされ、必要な属性の検索はActive Directoryの場合と同様にそのグループ内で実行されます。