現在、問題のユーザーはWindowsマシンにアクセスできないので、LDAPのActive Directory Envoirenmentでパスワードを変更しようとしています。 。 パスワードを変更するために、私は現在、ldapmodifyの使用方法を理解していません。異なるサイト/フォーラム/ニュースグループに読んだ多くの後、私はもっと混乱ししかしldapmodifyでADのパスワードを変更するとLDAPの制約違反が発生する
前より午前: 私はそうするために、次のコマンドを実行してください:
ldapmodify -f ldif.example -H ldaps://lab01-dc01.example.com -D 'CN=test,CN=users,DC=lab01,DC=example,DC=com' -x -W
ldif.exampleの内容:
dn: CN=test,CN=Users,DC=lab01,DC=example,DC=com
changetype: modify
delete: unicodePwd
unicodePwd:: V3VQdXV1STEyLg==
-
add: unicodePwd
unicodePwd:: QmxhVVVraTEyLg==
-
(心配しないでください - これらのパスワードはどこにも使用されていないと、それは生産envoirenmentではありません)今
- 毎回I私は次のエラーを取得するコマンドを実行します。
modifying entry CN=test,CN=Users,DC=lab01,DC=example,DC=com"
ldapmodify: Constraint violation (19)
additional info: 0000216C: AtrErr: DSID-03190EB0, #1:
0: 0000216C: DSID-03190EB0, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 9005a (unicodePwd)
は今、私はこのエラーの理由を読んだ後には、パスワードがひどくフォーマットされているか、パスワードポリシーは、私が使用したパスワードを許可しないことのいずれかです。私はそのポリシーを何度もチェックしました。新しいパスワードは、すべての基準によってポリシーに確実に準拠しています。私がWindowsマシンを使ってパスワードを設定した場合、これもうまくいきます(以前のパスワードに変更することは許可されていないので、後で "oldpassword"と "newpassword"を変更しました)。 "-W"オプションをldapmodifyに渡した後に入力するパスワードも間違いなく正しいです。それ以外の場合、ldapmodifyで吐き出されるエラーは、制約違反の代わりに無効な資格情報を使用したことです。 私が考えることができる唯一の理由は実際には不正な形式のパスワードですが、パスワードをエンコードするために通常のbase64 algorythmを使用しているので、不正なフォーマットがどこから来るべきかわかりません。
何が起こっているのでしょうか? 誰かが正しい方向に私をプッシュできますか?
非常に助けていただきありがとうございます。
編集: 何かバグがありますか Base64でベースエンコードされた文字列を実行すると、「無効な入力」が表示され続けます。今、私は先に進んで、Linuxマシン上でbase64を使用してパスワードを再コーディングしましたが、生成された文字列をデコード関数で再度実行すると、Base64は "Invalid Input" windows-base64でエンコードされた文字列とlinuxでエンコードされた文字列の間で変更されました。しかし、base64は、私がそこに置いても「無効な入力」としか言いません。
Edit2: Nevermind - 機能の目的を読むパスワードのドットと感嘆符のためにこのエラーが発生することがわかります。
エンコードを行う必要があるかどうかはわかりません。 LDAPサーバーはそれを行う必要があります。両方のパスワードをプレーンテキストで入力してみてください。 – EJP
はい、確かに - パスワードをエンコードしないと正常に動作しているようです。私が言ったように:私はこのトピックについて多くを読んで、私が読んだことはすべて、コード化された文字列を使ってパスワードを変更することを提案しました。明らかに - これは事実ではありません。ありがとう! – henryford