インストール毎に異なるディレクトリ構成になる事を理解している為、UsersRepositoryのLDAP実装を出来る限り柔軟にしようと試みてきました。
Jamesメールサーバが扱う全てのユーザが、一つのツリー構造下に落ち着くであろうと仮定しています。このツリーのルート、すなわち、Jamesメールサーバに管理される全てのユーザの祖先にあたるLDAPディレクトリの中で最下位に位置するノードの事を、LDAPRootと呼びます。(図表をご覧下さい)
ある組織内に、メールサーバが一つ以上ある可能性も勿論あります。従って、あるユーザがLDAPディレクトリの中にあるといっても、James
Mailserverがそれらのメールを扱わなければならないと言う事ではありません。
UsersRepositoryの実装により、メールユーザの各々のセットの為のノード(オブジェクト)を作成します。'LocalUsers'と呼ばれるこのセットは、Jamesメールサーバによってメールが扱われるユーザのセットとなります。その他のセットは、Jamesメールサーバによって扱われるあらゆるmail-listを含んでいます。これらのセットのメンバは、これらのオブジェクトの属性値として記述されます。これらのノードは、Jamesサーバの子ノードになります。
電子メールアドレスのユーザ名部分(@以前)が'LocalUsers'のメンバにマッチし、更に、電子メールアドレスのドメイン/ホスト名部分(@以降)が最初の<servername>タグに記述されるものにマッチした場合、Jamesメールサーバはメールのローカル配信を受け付けます。(<servernames>のautodetect属性をfalseにセットし、最初の<servername>に適切なドメイン名を入れてみて下さい
- 例: apache.org)
For POP3認証では、Jamesメールサーバは真っ先に'underLDAPRoot'というLDAPディレクトリの中のユーザエントリを見つけます。'underLDAPRoot'はconf内でMailAttributeという属性を持ち、この属性は、'lo'
user@domain'にマッチします。Jamesメールサーバは、与えられたパスワードのユーザエントリとしてディレクトリに存在が確認されれば、そのPOP3ユーザを認証します。
この実装は、ディレクトりにパスワードをセットしないので、遠隔管理ツールでadduserコマンドを呼び出す際にはダミーのパスワードを使用してください。
ManageGroupAttributeがTRUE (デフォルト値でもあります)にセットされていれば、遠隔管理ツールはメールグループのフルDNをユーザエントリに加えたり、フルDNをユーザエントリから削除したりします。この機能を使う事で、ユーザは、LDAPディレクトリに、自分のメールサーバが何であるか、どのメールリストに投稿したのか、を知る事が出来るようになります。
| |
Root of Directory
Example: dc=org
May not be referenced in conf.xml
|
|
|
|
| ------------------------------------------------------------------------------------------------- |
|
Subtree not served by James
e.g.: dc=w3c, dc=org
|
|
Subtree served by James
e.g.: dc=apache, dc=org
"LDAPRoot"
|
|
|
Subtree not served by James
e.g.: dc=xml, dc=org
|
| |
| ---------------------------------------------------- |
|
This mailserver
cn=mailserver.apache.org
|
---------------
|
|
A user
cn=King Arthur
memberOfGroup=
cn=LocalUsers etc
|
|
A user
cn=Morgan LeFay
|
|
Another mailserver
cn=oldmail.apache.org
|
|
LocalUsers
member=Arthur
|
|
list-james
member=Arthur
|
|
|
|
|
|
|