手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 8 389 Directory Server 構築 #3 – BIND ユーザーとアクセス制御の確認

CentOS 8 は既に通常の CentOS Linux としてはサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされているディストリビューションを利用してください。

CentOS 8 サーバー管理ガイドへ戻る

CentOS 8 の 389 Directory Server で、アプリケーション用の BIND ユーザーとアクセス制御を確認する手順です。LDAP を使うアプリケーションは、Directory Manager ではなく、参照用途に限定した BIND DN で接続させるのが基本です。

BIND DN は、単に接続できればよいものではありません。どの subtree を読めるか、どの属性を読めるか、更新権限を持つのかを明確にし、SSSD、Samba、Postfix など用途ごとに分けるかを判断します。

Directory Manager を使い回さない

Directory Manager は強い管理権限を持つため、アプリケーション接続用として使い回すべきではありません。漏えいや誤設定が起きた場合の影響範囲が大きくなります。既存環境を確認するときは、まずアプリケーション設定に Directory Manager が入っていないかを見ます。

  • アプリケーションごとに専用 BIND DN を用意する。
  • 読み取り専用で足りる用途に更新権限を与えない。
  • 検索対象の base DN を必要な subtree に限定する。
  • パスワードの保管先とファイル権限を確認する。

BIND ユーザー用 OU を用意する

dn: ou=Services,dc=example,dc=local
objectClass: organizationalUnit
ou: Services

BIND ユーザーを登録する

dn: uid=ldap-reader,ou=Services,dc=example,dc=local
objectClass: inetOrgPerson
objectClass: simpleSecurityObject
uid: ldap-reader
cn: LDAP Reader
sn: Reader
userPassword: change_this_password
ldapadd -x -D "cn=Directory Manager" -W -f ldap-reader.ldif

BIND できるか確認する

作成した DN で認証できることを確認します。ここでは接続できることだけを確認し、次の段階で検索範囲と属性を確認します。

ldapwhoami -x -D "uid=ldap-reader,ou=Services,dc=example,dc=local" -W

検索できる範囲を確認する

BIND できても、必要な範囲を読めない、または読ませすぎている場合があります。アプリケーションが実際に使う base DN と filter に近い条件で確認します。

ldapsearch -x -D "uid=ldap-reader,ou=Services,dc=example,dc=local" -W -b dc=example,dc=local "(uid=user01)"
ldapsearch -x -D "uid=ldap-reader,ou=Services,dc=example,dc=local" -W -b ou=People,dc=example,dc=local "(objectClass=posixAccount)" uid uidNumber gidNumber

アクセス制御の考え方

389 Directory Server のアクセス制御は、運用上かなり重要です。アプリケーション連携用 BIND ユーザーには、必要な subtree と属性だけを読ませ、管理操作やパスワード属性の扱いは慎重に分けます。

対象考え方
Directory Manager緊急時や管理操作用。アプリケーションには使わせない。
BIND ユーザーアプリケーションの検索用。権限を限定する。
一般ユーザー認証対象。必要に応じて自分の属性だけ変更できるようにする。

用途ごとに分けて確認する

  • SSSD 用 DN は、Linux 認証に必要なユーザーとグループ属性を読めるか。
  • Samba 用 DN は、Samba 関連属性や SID を必要な範囲で読めるか。
  • Postfix 用 DN は、メールアドレスや alias の検索に必要な属性だけを読めるか。
  • 管理操作が必要な処理と、参照だけで足りる処理を分けているか。

確認するポイント

  • アプリケーションが Directory Manager で接続していないか。
  • BIND ユーザーのパスワード管理が明確か。
  • 読ませる subtree と属性が過剰でないか。
  • 用途ごとに BIND DN を分ける必要があるか。
  • 移行時に BIND DN、base DN、filter、取得属性を再現できるか。

まとめ

LDAP 連携では、接続できることより、どの DN で接続し、どの範囲を読めるかが重要です。CentOS 8 の 389 Directory Server では、Directory Manager、BIND ユーザー、一般ユーザーの責務を分けることで、後続の認証連携やアプリケーション連携を安全に扱えます。既存環境を確認する場合は、用途ごとの BIND DN と検索条件を追える状態にしておきます。

関連する記事

関連する記事

参考書籍

参考
書籍
参考書籍
LDAP – 設定・管理・プログラミング

LDAP / OpenLDAP の設定、管理、連携を確認したい場合の参考書籍です。古い書籍のため、価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

CentOS 8 389 Directory Server 構築 #3 – BIND ユーザーとアクセス制御の確認

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る