0

ユーザーがパスワードを変更できる光沢のあるphpサービスを作成しようとしています。ldap_modify 関数を使用するようになりました。すべて問題ありません。dn と新しいユーザー パスワード (またはそのハッシュ) を渡すと、ユーザーはその後正常にログインできます。

問題は、このユーザーに、パスワードの長さが 2 未満であることを禁止するパスワード ポリシーが割り当てられていることです。そのようなパスワード (または hash ) を ldap_modify に渡した後、エラーや例外などは発生しません。

ldap が、割り当てられたパスワード ポリシーに従ってパスワードをチェックしないのはなぜですか?

一時的な解決策として、ポリシー エントリを読み取り、長さを手動で確認できます...

4

2 に答える 2

0

パスワードハッシュを生成するために使用するコマンドラインツールldappasswd(一部の Linux ディストリビューションではslappasswdIIRC と呼ばれます) があります。このツール IIRC は、指定されたユーザーに設定されているパスワード ポリシーに対して、入力されたパスワードを検証します。

password-value を手動で変更すると、LDAP サーバーはそれをチェックする機会がありません。これは、他のすべての属性と同様に、サーバーが干渉することなく変更できるためです。また、ハッシュを値として設定すると、ハッシュされていない状態のパスワードを実際に確認することはないため、LDAP サーバーはパスワードがパスワード ポリシーのディレクティブと一致するかどうかを知る機会がありません。したがって、パスワードをハッシュする前に、自分でポリシーを確認する必要があります。

于 2015-07-21T05:53:25.293 に答える