2016-03-21 18 views
0

現在、ルビーを使ってLDAPアカウントのパスワードを変更しようとしています。以前OpenDJとJavaを使用していたので、新しいパスワードをプレーンテキストとして取得するだけで、OpenLDAPオプションで設定された関数を使用して暗号化パスワードとして設定されたパスワード変更要求をトリガすることができました。ハッシュ関数を知らずにLDAPパスワードを変更する

しかし、ルビーでは、私はパスワード属性を直接変更する方法を考え出しました。

RubyでOpenDJでjavaと同じことをすることはできますか?

答えて

0

OpenDJでパスワードを変更する操作は、LDAP操作であり、クライアント側で使用している言語に依存しません。 はい、RubyとJavaで同じことができるはずです。 Rubyで行う方法は、Rubyで提供されているLDAPサポートとライブラリに依存しています。

+0

はありがとう、あなたは「独立した操作は、」OpenDJで使用されていると指摘することができますか? –

+0

LDAP変更操作(userPassword属性の置換)またはLDAPパスワード変更拡張操作を使用して、パスワードを変更できます。 –

+0

はい、ありがとうございます!私は拡張操作を探していました。一部のライブラリは、userPasswordを変更しようとすると自動的に使用しますが、net-ldapはそれを使用しません。しかし、今それは動作します! –

0

次のコードは動作するはずですruby-ldap gemを使用する場合:

modifications = [ 
    LDAP.mod(LDAP::LDAP_MOD_REPLACE, 'userPassword', ['cleartextpassword']), 
] 

begin 
    conn.modify("uid=jdoe, dc=example, dc=com", modifications) 
rescue LDAP::ResultError 
    exit 
end 
+0

私は今日それをテストします。 "net/ldap"と同じことをすることはできますか?LDAP固有の操作であれば可能でしょうか?そうではありませんか? –

+0

はい、これは標準のLDAP変更操作ですので、どのクライアントライブラリを使用しても同じアプローチが有効です。 –

+0

私はnet/ldapを使用していて、変更/置き換えを行っていますが、常にプレーンテキストとして設定しています。 'ldap.bind場合 操作= [[ :置き換え、 :のuserPassword、 [$ LDAP_PASSWORD_NEW] ]] ldap.modify:DN => $のLDAP_USER、 :操作=> operations' –

関連する問題