プレーン テキストのパスワード ストアを使用するのではなく、独自の暗号化/復号化を定義する方法はありますか? 独自のアルゴリズムを作成し、それをプロセスの一部として個別に実行できますか? 私は新しく、オンラインのドキュメントは詳細ですが、これを行う具体的な方法を指定していません。これは、OpenLDAP と認証に使用される現在の方法に固有のものです。
3 に答える
デフォルトでサーバーがパスワードをハッシュできるようにするには、パスワード ポリシー オーバーレイとディレクティブを追加する必要があります。
オンラインの cn=config メソッドを使用している場合は、olcDatabase オブジェクトにオーバーレイ サブエントリを追加します。
dn: olcOverlay={0}ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: {0}ppolicy
olcPPolicyHashCleartext: TRUE
Slapd.conf メソッド:
database bdb
suffix "dc=example,dc=com"
...
# invokes password policies for this DIT only
overlay ppolicy
ppolicy_hash_cleartext
次に、プレーンテキストの userpassword 属性を持つ新しいユーザーを追加すると、ハッシュされたパスワードが保存されます。デフォルトは非常に安全な塩漬けのsha1だと思います。また、userpassword 属性へのアクセスを制限することも検討する必要があります。
olcAccess: to attrs=userPassword by self write by * auth
apache directory studio がこれを実現します
この LDAP ブラウザは userpassword OID を検出し、パスワードをハッシュするためのインターフェイスを提供します。
例: userPassword:: e01ENX1Lc25MZmNBclBBQ0Q2M0NKamxTYll3PT0=
(これは組み込まれているため、動作します) 詳細については、Openldap の readme を参照してください: このディレクトリには、プロジェクトで積極的にサポートされていないパスワード メカニズム用のネイティブ slapd プラグインが含まれています。現在、これには Kerberos、Netscape MTA-MD5、および RADIUS パスワード メカニズムが含まれます。Apache APR1 MD5 および BSD/Paul Henning Kamp MD5 メカニズムも含まれています。
Kerberos プラグインを使用するには、以下を追加します。
モジュールロード pw-kerberos.so
slapd 設定ファイルに追加します。
ヤダヤダヤダ
パスワードを認証に使用する場合は、パスワードを可逆暗号化で保存しないでください。
パスワードは一方向ハッシュ関数 (MD5、SHA1、SHA256) で保存する必要があります。古い特定の形式で保存する必要が絶対にない場合は、常にソルトする必要があります。Salted SHA1 は OpenLDAP の適切なデフォルトです。
問題は、正常に機能させるために、通常の ldapmodify 更新ではなく、LDAP 拡張操作を使用してパスワードを変更する必要があることです。ppolicy
この方法でパスワードの設定を実際に強制するために使用するのが最適です。必要に応じて、パスワードの品質チェックとエージングを実行することをお勧めします。