検索

18.13. バインドルールの定義

download PDF
ACI のバインドルールは、Directory Server が ACI を適用するのに必要なバインドパラメーターを定義します。たとえば、以下に基づいてバインドルールを設定できます。
  • DNS
  • グループメンバーシップまたは割り当てられたロール
  • エントリーがバインドする場所
  • バインド時に使用する必要のある認証の種類
  • バインドが実行される回数または日数
ACI では、以下の強調表示された部分はバインドルールになります。
(target_rule) (version 3.0; acl "ACL_name"; permission_rule bind_rules;)

構文

バインドルールの一般的な構文は以下のとおりです。
keyword comparison_operator "expression"
  • keyword: bind 操作のタイプを設定します。「頻繁に使用されるバインドルール」を参照してください。
  • comparison_operator: 有効な値は = および != で、ターゲットが式で指定されたオブジェクトであるかを示します。キーワードが追加の比較演算子に対応している場合は、該当するセクションで説明されます。
  • expression: 式を設定し、引用符で囲む必要があります。式自体は使用するキーワードによって異なります。

18.13.1. 頻繁に使用されるバインドルール

管理者は、以下のバインドキーワードを使用します。
さらに、バインドルールはブール値演算子を使用して頻繁に組み合わせられます。詳細は、「ブール演算子を使用したバインドルールの組み合わせ」を参照してください。

18.13.1.1. ユーザーベースのアクセスの定義

userdn キーワードを使用すると、1 つまたは複数の DN に基づいてアクセスを許可または拒否でき、以下の構文を使用します。
userdn comparison_operator "ldap:///distinguished_name || ldap:///distinguished_name || ..."
式の DN を以下のように設定します。
注記
LDAP URL 内でホスト名またはポート番号を指定しないでください。URL は常にローカルサーバーに適用されます。
18.13.1.1.1. userdn キーワードでの DN の使用
userdn キーワードを DN に設定して、ACI を一致するエントリーのみに適用します。複数のエントリーを照合するには、DN で * ワイルドカードを使用します。
userdn キーワードを DN とともに使用するには、以下の構文を使用します。
userdn comparison_operator ldap:///distinguished_name

例18.12 userdn キーワードでの DN の使用

uid=admin,ou=People,dc=example,dc=com ユーザーが ou=People,dc=example,dc=com エントリーで他のすべてのユーザーの manager 属性を読み取るようにするには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="manager") (version 3.0; acl "Allow uid=admin reading manager attribute";
 allow (search, read) userdn = "ldap:///uid=admin,ou=People,dc=example,dc=com";)
18.13.1.1.2. LDAP フィルターで userdn キーワードの使用
ユーザーへのパーミッションを動的に許可または拒否するには、LDAP フィルターで userdn キーワードを使用します。
userdn comparison_operator "ldap:///distinguished_name??scope?(filter)"
注記
LDAP フィルターは * ワイルドカードをサポートします。

例18.13 LDAP フィルターで userdn キーワードの使用

department 属性が Human Resources に設定されたユーザーを有効にするには、ou=People,dc=example,dc=com エントリーでユーザーの homePostalAddress 属性を更新します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="homePostalAddress") (version 3.0;
 acl "Allow HR setting homePostalAddress"; allow (write)
 userdn = "ldap:///ou=People,dc=example,dc=com??sub?(department=Human Resources)";)
18.13.1.1.3. 匿名アクセスの付与
特定の状況では、管理者はディレクトリー内のデータへの匿名アクセスを設定します。匿名アクセスは、以下を指定してディレクトリーにバインドできることを意味します。
  • バインド DN およびパスワードなし
  • 有効なバインド DN およびパスワード
匿名アクセスを設定するには、bind ルールの userdn キーワードで ldap:///anyone 式を使用します。
userdn comparison_operator "ldap:///anyone"

例18.14 匿名アクセスの付与

認証のないすべてのユーザーが、ou=People,dc=example,dc=com エントリーで sn 属性、givenName 属性、および telephoneNumber 属性を読み取りおよび検索できるようにするには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="sn" || targetattr="givenName" || targetattr = "telephoneNumber")
 (version 3.0; acl "Anonymous read, search for names and phone numbers";
 allow (read, search) userdn = "ldap:///anyone")
18.13.1.1.4. 認証済みユーザーへのアクセスの付与
特定の状況では、管理者は匿名バインドを除き、Directory Server に正常にバインドできるユーザーにパーミッションを付与します。この機能を設定するには、bind ルールの userdn キーワードで ldap:///all 式を使用します。
userdn comparison_operator "ldap:///all"

例18.15 認証済みユーザーへのアクセスの付与

認証されたユーザーが ou=example,ou=groups,dc=example,dc=com グループからのメンバーとして追加および削除できるようにするには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=example,ou=Groups,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="member") (version 3.0;
 acl "Allow users to add/remove themselves from example group";
 allow (selfwrite) userdn = "ldap:///all")
18.13.1.1.5. ユーザーが空のエントリーにアクセスできるようにする
ユーザーの独自のエントリーへのアクセスを許可または拒否する ACI を設定するには、bind ルールの userdn キーワードで ldap:///self 式を使用します。
userdn comparison_operator "ldap:///self"

例18.16 ユーザーが空のエントリーにアクセスできるようにする

ou=People,dc=example,dc=com エントリーのユーザーが独自の userPassword 属性を更新できるようにするには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="userPassword") (version 3.0;
 acl "Allow users updating their password";
 allow (write) userdn = "ldap:///self")
18.13.1.1.6. ユーザーの子エントリーへのアクセス設定
バインド DN がターゲットエントリーの親である場合にのみエントリーへのアクセスを許可または拒否されるように設定するには、bind ルールの userdn キーワードで self:///parent 式を使用します。
userdn comparison_operator "ldap:///parent"

例18.17 ユーザーの子エントリーへのアクセス設定

cn=user,ou=People,dc=example,dc=com ユーザーが独自のサブエントリー (cn=example,cn=user,ou=People,dc=example,dc=com など) の manager 属性を更新できるようにするには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: cn=user,ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="manager") (version 3.0;
 acl "Allow cn=user to update manager attributes";
 allow (write) userdn = "ldap:///parent")

18.13.1.2. グループベースのアクセスの定義

グループベースの ACI を使用すると、グループへのユーザーの追加、またはグループからのユーザーの削除により、アクセスを管理できます。グループメンバーシップに基づく ACI を設定するには、groupdn キーワードを使用します。ユーザーが指定された 1 つまたは複数のグループのメンバーである場合は、ACI が一致します。
groupdn キーワードを使用すると、Directory Server は以下の属性に基づいてグループメンバーシップを検証します。
  • member
  • uniqueMember
  • memberURL
  • memberCertificateDescription
groupdn キーワードでルールをバインドするには、以下の構文を使用します。
groupdn comparison_operator "ldap:///distinguished_name || ldap:///distinguished_name || ..."
式の DN を以下のように設定します。
1 つのバインドルールに複数の DN を設定する場合は、認証されたユーザーがこれらのグループのいずれかのメンバーの場合、Directory Server は ACI を適用します。ユーザーを複数のグループのメンバーとして設定するには、複数の groupdn キーワードを使用して、ブール値 and 演算子を使用して組み合わせます。詳細は、「ブール演算子を使用したバインドルールの組み合わせ」を参照してください。
注記
LDAP URL 内でホスト名またはポート番号を指定しないでください。URL は常にローカルサーバーに適用されます。
18.13.1.2.1. groupdn キーワードでの DN の使用
ACI をグループのメンバーに適用するには、groupdn キーワードをグループの DN に設定します。
DN に設定された groupdn キーワードは、以下の構文を使用します。
groupdn comparison_operator ldap:///distinguished_name

例18.18 groupdn キーワードでの DN の使用

cn=example,ou=Groups,dc=example,dc=com グループのメンバーが ou=People,dc=example,dc=com のエントリーの manager 属性を検索および読み取るようにするには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="manager") (version 3.0;
 acl "Allow example group to read manager attribute";
 allow (search, read) groupdn = "ldap:///cn=example,ou=Groups,dc=example,dc=com";)
18.13.1.2.2. LDAP フィルターで groupdn キーワードの使用
groupdn キーワードを使用した LDAP フィルターを使用すると、ACI に一致させるために、認証されたユーザーがフィルター検索で返されるグループの少なくとも 1 つのメンバーでなければならないことを定義できます。
LDAP フィルターが含まれる groupdn キーワードは以下の構文を使用します。
groupdn comparison_operator "ldap:///distinguished_name??scope?(filter)"
注記
LDAP フィルターは * ワイルドカードをサポートします。

例18.19 LDAP フィルターで groupdn キーワードの使用

dc=example,dc=com のグループのメンバーや、manager 属性が example に設定されているサブツリーを有効にするには、ou=People,dc=example,dc=com のエントリーのhomePostalAddress を更新します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="homePostalAddress") (version 3.0;
 acl "Allow manager=example setting homePostalAddress"; allow (write)
 userdn = "ldap:///dc=example,dc=com??sub?(manager=example)";)
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.