0

LDAP として389 Directory Serverクラスターがあります。phpldapadminをフロントエンドとして使用したい。

すべて問題ないようですが、管理者以外のユーザーでログインすると、ユーザーがphpldapadminを使用して作成されていても、自分のパスワード フィールドが表示されません。ログインは機能しますが、パスワードの値を変更できます。

同じ phpldapadmin 構成がopenldapで正常に動作します。

何か案は?

ありがとう

4

1 に答える 1

0

これは、おそらくデフォルトの 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 固有の機能に対してより豊富なインターフェイスを提供するためです。

于 2014-06-25T19:57:47.197 に答える