JNDI LDAP 認証では、クリアテキストのパスワード (Context.SECURITY_CREDENTIALS) をほぼすべてのセキュリティ メカニズム (または少なくとも私が理解している方法) に渡す必要があります。パスワードが現在のJVMに由来するように設計されているようです。しかし、別のマシンから送信する必要があるパスワードはどうでしょうか? このアプローチでは、セキュリティがほとんどない回復可能な方法 (最も単純なのはクリアテキスト) で送信する必要があります。
具体的には、クライアント、Java サーバー、および LDAP サーバーの 3 層セットアップを考えてみましょう。ユーザーは、Java サーバーに送信されるクライアントにユーザー名とパスワードを入力します。次に、Java サーバーは、これらの資格情報を承認するために LDAP サーバーと通信します。クライアントからJavaサーバーへの送信を安全にする方法はありますか? チャネル自体を保護するために SSL または別の方法を使用できることは理解していますが、このチャネル (たとえ安全であっても) を介して回復可能な方法でパスワードを送信する必要があるのはまだ良くありません。
回答を探してみたのですが、2段構成を検討されている方が多いようです。(JNDI の代わりに) サードパーティの Java ライブラリの推奨事項もいくつかありましたが、それらが私のタスクを処理できるかどうかは明確ではありませんでした。彼らが実際にそうしているなら、私の仕事にそれらを利用する例を挙げていただけますか?
私のターゲット プラットフォームは、Delphi XE3 クライアント、Java SE 6 サーバー、および AD LDAP です。しかし、これらの具体的なクライアントと LDAP に限定されない、より理論的な議論にも興味があります。