第19章 LDAP グループの同期
LDAP グループと OpenShift Container Platform を同期し、LDAP ディレクトリーに保存されているグループを使用してユーザーのメンバーシップおよびパーミッションを管理できるようにします。
管理者は、グループを使用してユーザーを管理し、権限を変更し、連携を強化できます。組織ではユーザーグループをすでに作成し、それらを LDAP サーバーに保存している場合があります。OpenShift Container Platform はそれらの LDAP レコードを内部 OpenShift Container Platform レコードと同期できるので、グループを 1 つの場所で管理できます。現時点で OpenShift Container Platform はグループメンバーシップを定義するための 3 つの共通スキーマ (RFC 2307、Active Directory、拡張された Active Directory) を使用してグループと LDAP サーバーの同期をサポートしています。
LDAP の設定に関する詳細は、LDAP アイデンティティープロバイダーの設定を参照してください。
グループを同期するには cluster-admin 権限を持っている必要があります。
19.1. LDAP 同期の設定について リンクのコピーリンクがクリップボードにコピーされました!
LDAP スキーマにグループ同期を設定できるように、LDAP グループ同期の仕組みおよび同期設定ファイルに含まれる内容を確認してください。
LDAP 同期を実行するには、同期設定ファイルが必要です。このファイルには、以下の LDAP クライアント設定の詳細が含まれます。
- LDAP サーバーへの接続の設定。
- LDAP サーバーで使用されるスキーマに依存する同期設定オプション。
- OpenShift Container Platform グループ名を LDAP サーバーのグループにマップする管理者が定義した名前マッピングのリストです。
設定ファイルの形式は、使用しているスキーマによって異なります。
- RFC 2307
- Active Directory
- 拡張された Active Directory。
19.1.1. LDAP クライアント設定 リンクのコピーリンクがクリップボードにコピーされました!
設定の LDAP クライアント設定セクションでは、LDAP サーバーへの接続を定義します。以下の例は、LDAP クライアント設定フィールドを示しています。
url: ldap://10.0.0.0:389
bindDN: cn=admin,dc=example,dc=com
bindPassword: <password>
insecure: false
ca: my-ldap-ca-bundle.crt
-
urlフィールドは、接続プロトコル、データベースをホストする LDAP サーバーの IP アドレス、およびscheme://host:port としてフォーマットされる接続先のポートを表示します。 -
bindDNフィールドは、Bind DN として使用するオプションの識別名(DN)を表示します。同期操作のエントリーを取得するために昇格した権限が必要となる場合、OpenShift Container Platform はこれを使用します。 -
bindPasswordフィールドはバインドに使用する任意のパスワードを表示します。同期操作のエントリーを取得するために昇格した権限が必要となる場合、OpenShift Container Platform はこれを使用します。この値は環境変数、外部ファイル、または暗号化されたファイルでも指定できます。 -
insecureフィールドは、LDAP 接続で TLS を使用するかどうかを制御します。falseに設定すると、ldaps://URL は TLS を使用してサーバーに接続し、ldap://URL は TLS にアップグレードされます。trueに設定すると、サーバーへの TLS 接続は行われません。ldaps://URL スキームは使用できません。 -
caフィールドは、設定された URL のサーバー証明書を検証するために使用する証明書バンドルを示します。空の場合、OpenShift Container Platform はシステムで信頼されるルートを使用します。insecureがfalseに設定されている場合にのみ、これが適用されます。
19.1.2. LDAP クエリー定義 リンクのコピーリンクがクリップボードにコピーされました!
同期設定は、同期に必要となるエントリーの LDAP クエリー定義で構成されています。LDAP クエリーの特定の定義は、LDAP サーバーにメンバーシップ情報を保存するために使用されるスキーマに依存します。以下の例は、LDAP クエリー定義フィールドを示しています。
baseDN: ou=users,dc=example,dc=com
scope: sub
derefAliases: never
timeout: 0
filter: (objectClass=person)
pageSize: 0
-
baseDNフィールドには、すべての検索が開始されるディレクトリーのブランチの識別名(DN)が含まれます。ディレクトリーツリーの上部を指定する必要がありますが、ディレクトリーのサブツリーを指定することもできます。 -
scopeフィールドには検索範囲が表示されます。有効な値はbase、one、およびsubです。このフィールドを省略すると、デフォルトはsubです。各値の説明は、表 1、LDAP 検索範囲オプション を参照してください。 -
derefAliasesフィールドは、LDAP ツリーのエイリアスに関連する検索の動作を示します。有効な値はnever、search、base、またはalwaysです。これを定義しない場合、デフォルトはalwaysとなり、エイリアスを逆参照します。逆参照動作の説明は表 2、LDAP 逆参照動作 を参照 してください。 -
タイムアウトフィールドは、クライアントによって検索に許可される時間制限を秒単位で表示します。0の値はクライアント側の制限がないことを意味します。 -
filterフィールドには、有効な LDAP 検索フィルターが含まれます。これを定義しない場合、デフォルトは(objectClass=*)になります。 -
pageSizeフィールドには、サーバーがページごとに返す LDAP エントリーの最大数が表示されます。0に設定すると、ページサイズの制限は適用されません。クエリーがデフォルトでクライアントまたはサーバーで許可されるエントリー数より多いエントリーを返す場合は、このフィールドを設定します。
| LDAP 検索範囲 | 説明 |
|---|---|
|
| クエリーに対して指定されるベース DN で指定するオブジェクトのみを考慮します。 |
|
| クエリーについてベース DN とツリー内の同じレベルにあるすべてのオブジェクトを考慮します。 |
|
| クエリーに指定されるベース DN のサブツリー全体を考慮します。 |
| 逆参照動作 | 説明 |
|---|---|
|
| LDAP ツリーにあるエイリアスを逆参照しません。 |
|
| 検索中に見つかったエイリアスのみを逆参照します。 |
|
| ベースオブジェクトを検索中にエイリアスのみを逆参照します。 |
|
| LDAP ツリーにあるすべてのエイリアスを常に逆参照します。 |
19.1.3. ユーザー定義の名前マッピング リンクのコピーリンクがクリップボードにコピーされました!
ユーザー定義の名前マッピングは、OpenShift Container Platform グループの名前を LDAP サーバーでグループを検出する固有の識別子に明示的にマップします。マッピングは通常の YAML 構文を使用します。ユーザー定義のマッピングには LDAP サーバーのすべてのグループのエントリーを含めることも、それらのグループのサブセットのみを含めることもできます。ユーザー定義の名前マッピングを持たないグループが LDAP サーバーにある場合、同期時のデフォルト動作では OpenShift Container Platform Group の名前として指定された属性が使用されます。
以下の例は、ユーザー定義の名前マッピングを示しています。
groupUIDNameMapping:
"cn=group1,ou=groups,dc=example,dc=com": firstgroup
"cn=group2,ou=groups,dc=example,dc=com": secondgroup
"cn=group3,ou=groups,dc=example,dc=com": thirdgroup
19.1.4. RFC 2307 設定ファイルについて リンクのコピーリンクがクリップボードにコピーされました!
RFC 2307 LDAP 同期設定ファイルを確認して、ユーザーおよびグループのクエリー、および OpenShift Container Platform Group レコードで使用される属性を定義できるようにします。
RFC 2307 スキーマでは、ユーザーとグループエントリー両方の LDAP クエリー定義と内部 OpenShift Container Platform レコードでそれらを表すのに使用する属性を指定する必要があります。
明確にするために、OpenShift Container Platform で作成するグループは(可能な場合)ユーザーまたは管理者に表示されるフィールドに識別名以外の属性を使用する必要があります。たとえば、メールによって OpenShift Container Platform グループのユーザーを識別し、一般名としてグループの名前を使用します。以下の設定ファイルでは、このような関係を作成しています。
ユーザー定義の名前マッピングを使用する場合、設定ファイルは異なります。
kind: LDAPSyncConfig
apiVersion: v1
url: ldap://LDAP_SERVICE_IP:389
insecure: false
bindDN: cn=admin,dc=example,dc=com
bindPassword:
file: "/etc/secrets/bindPassword"
rfc2307:
groupsQuery:
baseDN: "ou=groups,dc=example,dc=com"
scope: sub
derefAliases: never
pageSize: 0
groupUIDAttribute: dn
groupNameAttributes: [ cn ]
groupMembershipAttributes: [ member ]
usersQuery:
baseDN: "ou=users,dc=example,dc=com"
scope: sub
derefAliases: never
pageSize: 0
userUIDAttribute: dn
userNameAttributes: [ mail ]
tolerateMemberNotFoundErrors: false
tolerateMemberOutOfScopeErrors: false
各項目の説明:
url- グループのメンバーが保存される LDAP サーバーの IP アドレスとホストを指定します。
insecure-
LDAP 接続が TLS を使用するかどうかを指定します。
falseに設定すると、ldaps://URL は TLS を使用してサーバーに接続し、ldap://URL は TLS にアップグレードされます。trueに設定すると、サーバーへの TLS 接続は行われません。ldaps://URL スキームは使用できません。 rfc2307.groupUIDAttribute-
LDAP サーバーのグループを一意に識別する属性を指定します。
groupUIDAttributeに DN を使用している場合は、groupsQueryフィルターを指定できません。詳細なフィルターを実行するには、許可リストファイル、拒否リストファイル、またはその両方を使用します。 rfc2307.groupNameAttributes- Group の名前として使用する属性を指定します。
rfc2307.groupMembershipAttributes- メンバーシップ情報を保存するグループの属性を指定します。
rfc2307.userUIDAttribute-
LDAP サーバーでユーザーを一意に識別する属性を指定します。userUIDAttribute に DN を使用している場合は、
usersQueryフィルターを指定できません。詳細なフィルターを実行するには、許可リストファイル、拒否リストファイル、またはその両方を使用します。 rfc2307.userNameAttributes- OpenShift Container Platform Group レコードでユーザー名として使用する属性を指定します。
19.1.5. Active Directory 設定ファイルについて リンクのコピーリンクがクリップボードにコピーされました!
Active Directory LDAP 同期設定ファイルを確認して、OpenShift Container Platform Group レコードで使用されるユーザークエリーと属性を定義できるようにします。
Active Directory スキーマでは、ユーザーエントリーの LDAP クエリー定義と内部 OpenShift Container Platform グループレコードでそれらを表すのに使用する属性を指定する必要があります。
明確にするために、OpenShift Container Platform で作成するグループは(可能な場合)ユーザーまたは管理者に表示されるフィールドに識別名以外の属性を使用する必要があります。たとえば、メールによって OpenShift Container Platform グループのユーザーを識別しますが、LDAP サーバーのグループ名でグループの名前を定義します。以下の設定ファイルでは、このような関係を作成しています。
kind: LDAPSyncConfig
apiVersion: v1
url: ldap://LDAP_SERVICE_IP:389
activeDirectory:
usersQuery:
baseDN: "ou=users,dc=example,dc=com"
scope: sub
derefAliases: never
filter: (objectclass=person)
pageSize: 0
userNameAttributes: [ mail ]
groupMembershipAttributes: [ memberOf ]
各項目の説明:
ActiveDirectory.userNameAttributes- OpenShift Container Platform Group レコードでユーザー名として使用する属性を指定します。
ActiveDirectory.groupMembershiptAttributes- メンバーシップ情報を保存するユーザーの属性を指定します。
19.1.6. 拡張された Active Directory 設定ファイルについて リンクのコピーリンクがクリップボードにコピーされました!
拡張された Active Directory LDAP 同期設定ファイルを確認して、ユーザーおよびグループのクエリー、および OpenShift Container Platform Group レコードで使用される属性を定義できるようにします。
拡張された Active Directory スキーマでは、ユーザーエントリーとグループエントリーの両方の LDAP クエリー定義と内部 OpenShift Container Platform グループレコードでそれらを表すのに使用する属性を指定する必要があります。
明確にするために、OpenShift Container Platform で作成するグループは(可能な場合)ユーザーまたは管理者に表示されるフィールドに識別名以外の属性を使用する必要があります。たとえば、メールによって OpenShift Container Platform グループのユーザーを識別し、一般名としてグループの名前を使用します。以下の設定ファイルではこのような関係を作成しています。
kind: LDAPSyncConfig
apiVersion: v1
url: ldap://LDAP_SERVICE_IP:389
augmentedActiveDirectory:
groupsQuery:
baseDN: "ou=groups,dc=example,dc=com"
scope: sub
derefAliases: never
pageSize: 0
groupUIDAttribute: dn
groupNameAttributes: [ cn ]
usersQuery:
baseDN: "ou=users,dc=example,dc=com"
scope: sub
derefAliases: never
filter: (objectclass=person)
pageSize: 0
userNameAttributes: [ mail ]
groupMembershipAttributes: [ memberOf ]
各項目の説明:
augmentedActiveDirectory.groupUIDAttribute-
LDAP サーバーのグループを一意に識別する属性を指定します。groupUIDAttribute に DN を使用している場合は
groupsQueryフィルターを指定できません。詳細なフィルターを実行するには、許可リストファイル、拒否リストファイル、またはその両方を使用します。 augmentedActiveDirectory.groupNameAttributes- Group の名前として使用する属性を指定します。
augmentedActiveDirectory.userNameAttributes- OpenShift Container Platform Group レコードでユーザー名として使用する属性を指定します。
augmentedActiveDirectory.groupMembershipAttributes- メンバーシップ情報を保存するユーザーの属性を指定します。