LDAP として389 Directory Serverクラスターがあります。phpldapadminをフロントエンドとして使用したい。
すべて問題ないようですが、管理者以外のユーザーでログインすると、ユーザーがphpldapadminを使用して作成されていても、自分のパスワード フィールドが表示されません。ログインは機能しますが、パスワードの値を変更できます。
同じ phpldapadmin 構成がopenldapで正常に動作します。
何か案は?
ありがとう
LDAP として389 Directory Serverクラスターがあります。phpldapadminをフロントエンドとして使用したい。
すべて問題ないようですが、管理者以外のユーザーでログインすると、ユーザーがphpldapadminを使用して作成されていても、自分のパスワード フィールドが表示されません。ログインは機能しますが、パスワードの値を変更できます。
同じ phpldapadmin 構成がopenldapで正常に動作します。
何か案は?
ありがとう
これは、おそらくデフォルトの ACI によって実装されるセキュリティ機能です。デフォルトでは、管理ユーザー以外はユーザー オブジェクトの userPassword 属性を読み取ることができません。その理由は非常に単純です。MD5 や SSHA などでパスワードをハッシュすると、攻撃から保護するのに役立ちますが、この方法は攻撃に対して完全に無敵というわけではありません。誰かがあなたのハッシュを手に入れた場合、レインボー テーブルまたはパスワード クラッキング リグを使用してハッシュを検索/クラックし、プレーン テキストのパスワードを取得できます。管理者以外のユーザーがすべてのユーザー パスワードにアクセスできるようにする場合は、次の ACI を適切なオブジェクト/コンテナー (おそらく ou=People) に追加できます。
aci: (targetattr = "userPassword") (version 3.0;acl "Password Reading";allow
(read)(userdn = "ldap:///uid=SomeUser,ou=People,dc=example,dc=com");)
また、phpldapadmin よりも 389 管理コンソールを使用することをお勧めします。これは、389 固有の機能に対してより豊富なインターフェイスを提供するためです。