問題のユーザーは Windows マシンにアクセスできず、そのままにしておきたいため、現在、Linux の LDAP 経由で Active Directory Envoirenment のパスワードを変更しようとしています。パスワードを変更するために、私は現在、ldapmodify を使用してそうする方法を考え出しています。さまざまなサイト/フォーラム/ニュースグループで多くのことを読んだ後、私は以前よりもはるかに混乱しています
ただし、次のコマンドを試してください。
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==
-
(心配しないでください - これらのパスワードはどこでも使用されておらず、本番環境ではありません)
今-コマンドを実行するたびに、次のエラーが発生します。
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で実行すると、「無効な入力」と表示され続けます。さて-先に進み、Linuxマシンでbase64を使用してパスワードを再コーディングしました-しかし、生成された文字列をデコード機能で再度実行すると、base64は「無効な入力」と言い続けます...文字列はわずかですがWindows-base64 でエンコードされた文字列と Linux でエンコードされた文字列の間で変更されました。しかし、base64 は、何を入力しても「無効な入力」とだけ表示されます。
Edit2: 気にしない - 関数の目的を読んで、パスワードにドットと感嘆符が含まれているためにこのエラーがスローされることがわかりました。