1

私は Tomcat 8 で Grails 3 アプリケーションを実行しています。私が開発したアプリケーションは HTTPS を使用しており、認証に grails spring security LDAP プラグインを使用しています。(プラグインによって提供されるデフォルトのログイン ページで、カスタムはありません) Tomcat は HTTPS のみを使用するように有効化され、HTTP は無効化されます。

私の application.groovy ファイルには、Spring セキュリティ用の次のコードも含まれています。

grails.plugin.springsecurity.ldap.context.server = 'ldap://192.168.3.4:389/DC=MY_DOMAIN,DC=Net'
grails.plugin.springsecurity.password.algorithm = 'SHA-256'

(その他の詳細は、何を照会するかなどの単なる構成パラメーターです)

これが私のテストシナリオです:

Ubuntu マシンでホストされているアプリケーションにヒットする Windows マシンがあります。ubuntu マシンは、AD (Active Directory) マシンに対して LDAP 要求を行います。参考までに、以下に IP を示します。

Windows Machine: 192.168.1.1
Tomcat Ubuntu Machine: 192.168.1.10
AD Machine: 192.168.3.4

.1 (Windows マシン) からの TCP トラフィックを監視した後、すべてが文字化けしており、読み取ることができません。.10 から .4 (Tomcat から AD) のパケットをスニッフィングする場合、LDAP パケットはクリア テキストです。確かに、これがこうあるべきだとは思いません。LDAP トラフィックが暗号化されていることを確認するために、Tomcat で行う必要がある追加の手順はありますか?

問題の写真

4

2 に答える 2

1

この投稿を読んでいると、ssl 経由で LDAP 自体を実行できることがわかりました。したがって、接続文字列は次のようになります。

'ldap://192.168.3.4:389/DC=MY_DOMAIN,DC=Net'

'ldaps://192.168.3.4:636/DC=MY_DOMAIN,DC=Net'

これに加えて、ルート証明書が Java の信頼リストに追加されていることも確認する必要があることに注意してください。私にとっては、次のコマンドでうまくいくように見えました。

keytool -import -noprompt -trustcacerts -alias myAdCert -file /location_of_cert/adcert.cer -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
于 2016-04-05T18:58:12.653 に答える
0

You need to use Secure LDAP, which uses port 636 and/or the prefix ldaps://.

于 2016-04-05T18:57:11.837 に答える