アクセス制御の設計では、クライアントからリポジトリサーバに対してアクセスした際に、どのアクセス対象に対して、どのアクセスユーザに、どのようなアクセスを許可する必要があるのか、またはどのようなアクセスを禁止する必要があるのかを決定します。
たとえば、従業員Aさんの電話番号を、その電話を持つ従業員Aさんには書き込みを許可し、他の従業員には読み取りを許可し、認証されていないユーザ(匿名ユーザ)にはアクセスを禁止する、という設定ができます。
アクセス制御の設計は、リポジトリに登録するデータ(ディレクトリ情報ツリー)の設計と同時に実施してください。
リポジトリサーバは、以下の情報の組み合わせに従って、アクセスを評価します。
アクセス制御の対象であるエントリ、または属性
アクセス権を与える(または、アクセスを拒否する)ユーザ
ユーザに与えるアクセス権
アクセス対象
アクセス対象には、エントリ(サブツリー)、または属性が指定できます。特定のエントリやサブツリー、またはパスワードなど特定の属性へのアクセスを制御するよう設計します。
上述の例では、電話番号がアクセス対象に該当します。
アクセスユーザ
アクセスユーザには、クライアントからリポジトリサーバにアクセス(バインド)する際に指定するユーザ(バインドDN)、または匿名ユーザが指定できます。
アクセスユーザは、以下の5つに分類できます。
特定のユーザ
リポジトリにエントリとして登録されているユーザ
上述の例では、従業員Aさんの電話番号に、Aさん自身がアクセスする場合に該当するユーザです。
認証されたユーザ
認証されていないユーザ(匿名ユーザ)
全ユーザ
管理者(管理者用DN)は、アクセス制御の対象にはなりません。全エントリの情報に対する全アクセス権(認証・比較・検索・読み取り・書き込み)を持っています。
アクセス権
アクセス権には、以下の6つが指定できます。
拒否
どのようなアクセスも拒否します。
認証
リポジトリに対して認証(バインド)を許可します。
比較
アクセス対象に対して、比較操作を許可します。検索とは違い、一致するかどうか(真か偽か)のアクセスだけが許可されます。
検索
アクセス対象に対して、検索操作を許可します。検索条件に一致すれば、一致したことは通知されますが、エントリの情報や属性値を読み取ることは許可されません。
読み取り
アクセス対象に対して、読み取り操作を許可します。検索操作で、条件に一致したエントリの情報や属性値の読み取りを許可します。
書き込み
アクセス対象に対して、書き込み操作を許可します。エントリの追加・削除・更新(属性の追加・削除・更新)・変名を許可する場合に指定します。