Interstage Application Server セキュリティシステム運用ガイド |
目次
索引
![]() ![]() |
第2部 認証とアクセス制御 | > 第5章 Interstage ディレクトリサービスのアクセス制御の設定 | > 5.2 アクセス制御リストの定義 |
access ディレクティブを使用し、アクセス対象、アクセスユーザ、およびアクセス権をアクセス制御リスト定義ファイルに指定します。
access to <what> by <who> <accesslevel> |
by 節は複数回指定できます。
エントリや属性の1セットのアクセス対象(<what>に指定)に対して、1人以上のアクセスユーザ(<who>に指定)に、アクセス権(<accesslevel>に指定)を与えます。
access ディレクティブは、1セットのアクセス対象につき、1つ指定します。複数のアクセス対象に対してアクセス制御を定義する場合は、access ディレクティブを複数セット指定します。
また、1セットのアクセス対象に、複数のアクセスユーザに対するアクセス制御を定義する場合は、1つのaccess ディレクティブの中で、by 節を複数回指定して定義します。
<what>
アクセス対象である、エントリ、または属性を指定します。
<who>
アクセス権を与えるアクセスユーザを指定します。
<accesslevel>
アクセス権を指定します。
アクセス制御リスト定義ファイルを定義する際は、以下の点に注意してください。アクセス制御リスト定義ファイルの評価の詳細は、“アクセス制御リスト定義ファイルの評価”を参照してください。
アクセス対象<what>には、アクセス制御の対象となるエントリ、または属性を指定します。また、エントリと属性を組み合わせた指定や、全エントリを指定することもできます。
なお、アクセス対象<what>は省略可能です。省略すると、全エントリがアクセス対象となります。
たとえば、以下のエントリがリポジトリに登録されているとします。
この時、「dn.base="ou=User,ou=interstage,o=fujitsu,dc=com"」と指定した場合は、2がアクセス対象となります。
「dn.one="ou=User,ou=interstage,o=fujitsu,dc=com"」と指定した場合は、3、4がアクセス対象となります。
「dn.subtree="ou=User,ou=interstage,o=fujitsu,dc=com"」と指定した場合は、2、3、4、5がアクセス対象となります。
「dn.children="ou=User,ou=interstage,o=fujitsu,dc=com"」と指定した場合は、3、4、5がアクセス対象となります。
dn.<スコープ>や、「*」(アスタリスク)を活用して、アクセスを許可するすべてのエントリや属性が含まれるように指定してください。
すべてのエントリを、すべてのユーザが読み取り可能なように定義する場合
access to * by * read |
「ou=UserX,o=fujitsu,dc=com」というDN文字列のエントリを含む、その配下のすべてのエントリ、およびサブツリー内のすべてのエントリを、すべてのユーザが読み取り可能なように定義する場合
access to dn.subtree="ou=UserX,o=fujitsu,dc=com" by * read |
「cn=public,o=fujitsu,dc=com」というDN文字列のエントリを、すべてのユーザが読み取り可能なように定義する場合
access to dn="cn=public,o=fujitsu,dc=com" by * read |
userPassword 属性、およびhomePhone 属性の値を、エントリとして登録されているユーザが書き込み(更新)可能なように定義する場合
access to attr=userPassword,homePhone by self write |
「cn=public,o=fujitsu,dc=com」というDN文字列のエントリのmail 属性の値を、すべてのユーザが読み取り可能なように定義する場合
access to dn="cn=public,o=fujitsu,dc=com" attr=mail,entry by * read |
アクセスユーザ<who>には、アクセス権<accesslevel>を与えるユーザ(クライアントからのアクセス時に指定するバインドDN)を指定します。また、全ユーザを指定することもできます。
アクセスユーザ<who>の指定は、以下の6種類の記述形式で指定します。また、1つの access ディレクティブには、by 節を複数回指定して、アクセスユーザごとに異なるアクセス権を、同じアクセス対象に対して指定することができます。
なお、アクセスユーザ<who>は省略できません。
dn.<スコープ>や、「*」(アスタリスク)を活用して、アクセスを許可するすべてのユーザが含まれるように指定してください。
すべてのエントリを、すべてのユーザが検索可能なように定義する場合
access to * by * search |
userPassword 属性の値を、エントリとして登録されているユーザが読み取り可能、認証されたユーザが検索可能、その他のすべてのユーザが認証(バインド)可能なように定義する場合
access to attr=userPassword by self read by users search by * auth |
「ou=UserX,o=fujitsu,dc=com」というDN文字列のエントリを含む、その配下のすべてのエントリ、およびサブツリー内のすべてのエントリを、「ou=UserX,o=fujitsu,dc=com」というDN文字列のエントリを含む、その配下のすべてのエントリ、およびサブツリー内のすべてのエントリのDNとバインドDNが一致するユーザが読み取り可能なように定義する場合
access to dn.subtree="ou=UserX,o=fujitsu,dc=com" by dn.subtree="ou=UserX,o=fujitsu,dc=com" read |
アクセス権<accesslevel>には、アクセス対象<what>に対して、アクセスユーザ<who>に与える権利を指定します。
アクセス権<accesslevel>の指定は、以下の6種類の記述形式で指定します。1つのアクセスユーザ<who>(by 節)につき、1つのアクセス権を指定できます(複数のアクセス権を指定できません)。
なお、アクセス権<accesslevel>は省略できません。
各アクセス権は、以下のように、より低い権限のアクセス権をすべて含みます。例えば、write アクセス権は、その他すべてのアクセス権を含むことになります。また、auth アクセス権は、認証操作を他のアクセス権なしで実行するためのアクセスを許可するものです。これは、認証されていないユーザに、パスワードのようなクリティカルリソースへの最低限のアクセス権を許可するために有効です。
アクセス権 |
認証操作 |
比較操作 |
検索操作 |
読み取り |
書き込み |
none |
× |
× |
× |
× |
× |
auth |
○ |
× |
× |
× |
× |
compare |
○ |
○ |
× |
× |
× |
search |
○ |
○ |
○ |
× |
× |
read |
○ |
○ |
○ |
○ |
× |
write |
○ |
○ |
○ |
○ |
○ |
○:許可する、×:許可しない
リポジトリへのアクセスを行う際に必要なアクセス権は以下のとおりです。
userPassword 属性に auth アクセス権が必要です。
比較する属性に compare アクセス権が必要です。
検索フィルタに指定する属性に search アクセス権、検索結果として取得するエントリ、および属性に read アクセス権が必要です。
追加するエントリとその上位エントリに write アクセス権が必要です。
削除するエントリとその上位エントリに write アクセス権が必要です。
更新するエントリ、および属性に write アクセス権が必要です。
RDN(相対識別名)を変更するエントリに write アクセス権、新しいRDNにする属性に write アクセス権、もとのRDNの属性に write アクセス権が必要です。
access to attr=userPassword by self write by users compare by anonymous auth |
telephoneNumber (電話番号)属性を、エントリとして登録されているユーザが書き込み(更新)可能なようにし、その他すべての認証されたユーザが読み取り可能なように定義する場合(認証されていないユーザはアクセスできません)
access to attr=telephoneNumber by self write by users read |
目次
索引
![]() ![]() |