OpenLDAP に一連のユーザーがいて、"cn" や "userPassword" などの情報を取得したいと考えています。
ただし、これらの詳細を取得すると、LDAPサーバーでこれに設定されていても、パスワードはプレーンテキストではありません。
これを解決する方法はありますか?
userPassword は通常、ハッシュ形式で保存されます
userPassword: {hasAlgorithm}Hashed value
例 :
userPassword: {SSHA}DkMTwBl+a/3DQTxCYEApdUtNXGgdUac3
属性は複数のuserPassword
値を持つことができ、各値を異なる形式で格納することができます。認証中、slapd は提供されたパスワードに一致する値が見つかるまで、または検査する値がなくなるまで、値を反復処理します。ストレージ スキームは、値のプレフィックスとして格納されます。
あなたが持つことができます :
クリプト
このスキームは、オペレーティング システムの crypt(3) ハッシュ関数を使用します。通常、従来の Unix スタイルの 13 文字のハッシュを生成しますが、glibc2 を使用するシステムでは、より安全な 34 バイトの MD5 ハッシュも生成できます。
MD5
このスキームは、単純にパスワードの MD5 ハッシュを取得し、base64 でエンコードされた形式で保存します。
SMD5
これは、salt (任意の平文パスワードの可能な表現が多数あることを意味するランダム データ) を追加することで、基本的な MD5 スキームを改善します。たとえば、これらの値はどちらも同じパスワードを表します
SSHA
これは、SHA スキームのソルト バージョンです。slapd がサポートする最も安全なパスワード保存スキームであると考えられています。
結論
ほとんどの場合、パスワードを回復する必要はありません。ユーザーがログイン フォームで指定したパスワードからハッシュを計算し、userPassword
.
構成には、プレーン テキストのパスワードをハッシュするように構成されたパスワード ポリシー オーバーレイがあります。 olcPPolicyHashCleartext: TRUE
または ppolicy_hash_cleartext。それらを削除すると、パスワードがプレーンテキストで保存され始めます。
とはいえ、平文のパスワードを保存するのは得策ではありません。少なくとも、傍観者が簡単に元に戻せないように暗号化してください。いいえ、ROT13 または base64 エンコーディングはカウントされません。