2

OpenLDAP + Spring Security を機能させることができました。Spring Security xml でプレーンテキストのパスワードを入力する必要があるという小さな問題を除いて、すべて正常に動作します。

<beans:bean id="ldapContextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
    <beans:constructor-arg value="ldap://153.65.x.y:389/dc=example,dc=com" />
    <beans:property name="userDn" value="cn=Manager,dc=example,dc=com" />
    <beans:property name="password" value="secret" />
</beans:bean> 

これを回避する方法はありますか?


OpenLDAP をセットアップすると、平文のパスワードの代わりにダイジェストをslapd.confに実際に追加できました。

rootpw {SSHA}ZMFfVNPAazmLcif1xC2l9y9SFdKd+x4

だから私は春のセキュリティが同様のことをできることを望んでいます.


編集:

ここに LDAP マネージャーの名前とパスワードを入力する必要はなく、uri を指定するだけで、春のセキュリティが機能するのに十分であることに気付きました。

<beans:bean id="ldapContextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
    <beans:constructor-arg value="ldap://153.65.x.y:389/dc=example,dc=com" />
</beans:bean> 

ここで誤解がありました。このサンプルを作成しようとしたとき、Google から取得したかなりの数のサンプルが、Spring セキュリティ xml にマネージャー名とパスワードを入れました。そのため、これは JDBC を介してデータベースに接続するようなものであり、データベースのユーザー名とパスワードを提供する必要があると考えていました。これは正しくありません。マネージャー名とパスワードは必要ありません。

4

1 に答える 1

0

rootpw を SSHA として LDAP サーバーに保存できる理由は、検証のために元のパスワードを知る必要がないためです。ダイジェスト (この場合は SSHA - ソルト付きセキュア ハッシュ) で十分です。ただし、クライアントは元のパスワードを送信して、サーバーがハッシュを計算し、保存されているパスワードと比較できるようにする必要があります。

せいぜい、Spring はクライアントでパスワードを保存するための何らかの暗号化を提供できますが、私はこれに慣れていません。

EDIT : StackOverflow Spring 構成ファイル内のパスワードの暗号化は、これにリンクしています: http://www.jasypt.org/spring3.html

于 2015-11-27T07:42:54.810 に答える