第14章 LDAP グループの同期
dedicated-admin ロールを持つ管理者は、グループを使用して、ユーザーの管理、権限の変更、連携の強化を行うことができます。組織ではユーザーグループをすでに作成し、それらを LDAP サーバーに保存している場合があります。Red Hat OpenShift Service on AWS は、これらの LDAP レコードを内部 Red Hat OpenShift Service on AWS レコードと同期できるため、管理者はグループを 1 カ所で管理できます。Red Hat OpenShift Service on AWS は現在、グループメンバーシップを定義するための 3 つの共通スキーマ (RFC 2307、Active Directory、拡張された Active Directory) を使用したグループと LDAP サーバーの同期をサポートしています。
LDAP の設定の詳細は、LDAP アイデンティティープロバイダーの設定 を参照してください。
グループを同期するには、dedicated-admin 権限が必要です。
14.1. LDAP 同期の設定について リンクのコピーリンクがクリップボードにコピーされました!
LDAP 同期を実行するには、同期設定ファイルが必要です。このファイルには、以下の LDAP クライアント設定の詳細が含まれます。
- LDAP サーバーへの接続の設定。
- LDAP サーバーで使用されるスキーマに依存する同期設定オプション。
- Red Hat OpenShift Service on AWS のグループ名を LDAP サーバー内のグループにマッピングする、管理者が定義した名前マッピングのリスト。
設定ファイルの形式は、使用するスキーマ (RFC 2307、Active Directory、または拡張 Active Directory) によって異なります。
- LDAP クライアント設定
- 設定の LDAP クライアント設定セクションでは、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
- 1
- データベースをホストする LDAP サーバーの接続プロトコル、IP アドレス、および
scheme://host:portとしてフォーマットされる接続先のポートです。 - 2
- バインド DN として使用する任意の識別名 (DN) です。これは、同期操作のエントリーを取得するために昇格された特権が必要な場合、Red Hat OpenShift Service on AWS で使用されます。
- 3
- バインドに使用する任意のパスワードです。これは、同期操作のエントリーを取得するために昇格された特権が必要な場合、Red Hat OpenShift Service on AWS で使用されます。この値は環境変数、外部ファイル、または暗号化されたファイルでも指定できます。
- 4
falseの場合は、セキュアな LDAP (ldaps://) URL は TLS を使用して接続し、非セキュアな LDAP (ldap://) URL は TLS にアップグレードされます。trueの場合、サーバーへの TLS 接続は行われません。ldaps://URL スキームは使用できません。- 5
- 設定された URL のサーバー証明書を検証するために使用する証明書バンドルです。空の場合、Red Hat OpenShift Service on AWS はシステムで信頼されたルートを使用します。
insecureがfalseに設定されている場合にのみ、これが適用されます。
- LDAP クエリー定義
- 同期設定は、同期に必要となるエントリーの LDAP クエリー定義で構成されています。LDAP クエリーの特定の定義は、LDAP サーバーにメンバーシップ情報を保存するために使用されるスキーマに依存します。
LDAP クエリー定義
baseDN: ou=users,dc=example,dc=com
scope: sub
derefAliases: never
timeout: 0
filter: (objectClass=person)
pageSize: 0
- 1
- すべての検索が開始されるディレクトリーのブランチの識別名 (DN) です。ディレクトリーツリーの上部を指定する必要がありますが、ディレクトリーのサブツリーを指定することもできます。
- 2
- 検索の範囲です。有効な値は
base、one、またはsubです。これを定義しない場合、subの範囲が使用されます。範囲オプションは、以下の表で説明されています。 - 3
- LDAP ツリーのエイリアスに関連する検索の動作です。有効な値は
never、search、base、またはalwaysです。これを定義しない場合、デフォルトはalwaysとなり、エイリアスを逆参照します。逆参照の動作は以下の表で説明されています。 - 4
- クライアントによって検索に許可される時間制限です。
0の値はクライアント側の制限がないことを意味します。 - 5
- 有効な LDAP 検索フィルターです。これを定義しない場合、デフォルトは
(objectClass=*)になります。 - 6
- LDAP エントリーで測定される、サーバーからの応答ページの任意の最大サイズです。
0に設定すると、応答ページのサイズ制限はなくなります。クライアントまたはサーバーがデフォルトで許可しているエントリー数より多いエントリーをクエリーが返す場合、ページングサイズの設定が必要となります。
| LDAP 検索範囲 | 説明 |
|---|---|
|
| クエリーに対して指定されるベース DN で指定するオブジェクトのみを考慮します。 |
|
| クエリーについてベース DN とツリー内の同じレベルにあるすべてのオブジェクトを考慮します。 |
|
| クエリーに指定されるベース DN のサブツリー全体を考慮します。 |
| 逆参照動作 | 説明 |
|---|---|
|
| LDAP ツリーにあるエイリアスを逆参照しません。 |
|
| 検索中に見つかったエイリアスのみを逆参照します。 |
|
| ベースオブジェクトを検索中にエイリアスのみを逆参照します。 |
|
| LDAP ツリーにあるすべてのエイリアスを常に逆参照します。 |
- ユーザー定義の名前マッピング
- ユーザー定義の名前マッピングは、Red Hat OpenShift Service on AWS グループの名前を、LDAP サーバーでグループを検索する一意の識別子に明示的にマップします。マッピングは通常の YAML 構文を使用します。ユーザー定義のマッピングには LDAP サーバーのすべてのグループのエントリーを含めることも、それらのグループのサブセットのみを含めることもできます。ユーザー定義の名前マッピングを持たないグループが LDAP サーバーにある場合、同期時のデフォルトの動作では、Red Hat OpenShift Service on AWS グループの名前として指定された属性が使用されます。
ユーザー定義の名前マッピング
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
14.1.1. RFC 2307 設定ファイルについて リンクのコピーリンクがクリップボードにコピーされました!
RFC 2307 スキーマでは、ユーザーエントリーとグループエントリーの両方の LDAP クエリー定義と、内部 Red Hat OpenShift Service on AWS レコードでそれらのエントリーを表すのに使用する属性を指定する必要があります。
明確にするために、Red Hat OpenShift Service on AWS で作成するグループでは、ユーザーまたは管理者側のフィールドに識別名以外の属性を可能な限り使用する必要があります。たとえば、Red Hat OpenShift Service on AWS グループのユーザーをメールアドレスで識別し、グループの名前を一般名として使用します。以下の設定ファイルでは、このような関係を作成しています。
ユーザー定義名のマッピングを使用する場合は、設定ファイルが異なります。
RFC 2307 スキーマを使用する LDAP 同期設定: rfc2307_config.yaml
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
- 1
- このグループのレコードが保存される LDAP サーバーの IP アドレスとホストです。
- 2
falseの場合は、セキュアな LDAP (ldaps://) URL は TLS を使用して接続し、非セキュアな LDAP (ldap://) URL は TLS にアップグレードされます。trueの場合、サーバーへの TLS 接続は行われません。ldaps://URL スキームは使用できません。- 3
- LDAP サーバーのグループを一意に識別する属性です。
groupUIDAttributeに DN を使用している場合は、groupsQueryフィルターを指定できません。詳細なフィルターを実行するには、ホワイトリスト/ブラックリストの方法を使用します。 - 4
- グループの名前として使用する属性。
- 5
- メンバーシップ情報を保存するグループの属性です。
- 6
- LDAP サーバーでユーザーを一意に識別する属性です。userUIDAttribute に DN を使用している場合は、
usersQueryフィルターを指定できません。詳細なフィルターを実行するには、ホワイトリスト/ブラックリストの方法を使用します。 - 7
- Red Hat OpenShift Service on AWS グループレコードでユーザーの名前として使用する属性。
14.1.2. Active Directory 設定ファイルについて リンクのコピーリンクがクリップボードにコピーされました!
Active Directory スキーマでは、ユーザーエントリーの LDAP クエリー定義と、内部 Red Hat OpenShift Service on AWS グループレコードでそれらのエントリーを表すのに使用する属性を指定する必要があります。
明確にするために、Red Hat OpenShift Service on AWS で作成するグループでは、ユーザーまたは管理者側のフィールドに識別名以外の属性を可能な限り使用する必要があります。たとえば、Red Hat OpenShift Service on AWS グループのユーザーをメールアドレスで識別し、グループ名を LDAP サーバーのグループ名で定義します。以下の設定ファイルでは、このような関係を作成しています。
Active Directory スキーマを使用する LDAP 同期設定: active_directory_config.yaml
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 ]
14.1.3. 拡張された Active Directory 設定ファイルについて リンクのコピーリンクがクリップボードにコピーされました!
拡張された Active Directory スキーマでは、ユーザーエントリーとグループエントリーの両方の LDAP クエリー定義と、内部 Red Hat OpenShift Service on AWS グループレコードでそれらのエントリーを表すのに使用する属性を指定する必要があります。
明確にするために、Red Hat OpenShift Service on AWS で作成するグループでは、ユーザーまたは管理者側のフィールドに識別名以外の属性を可能な限り使用する必要があります。たとえば、Red Hat OpenShift Service on AWS グループのユーザーをメールアドレスで識別し、グループの名前を一般名として使用します。以下の設定ファイルではこのような関係を作成しています。
拡張された Active Directory スキーマを使用する LDAP 同期設定: augmented_active_directory_config.yaml
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 ]