2016-09-13 21 views
1

WebサービスはWebSphere 8.5にデプロイされており、SSLを介してLDAPと通信する必要があります。 ssl通信は、LDAP証明書がJRE cacertsストアにインポートされた場合にのみ機能します。LDAPとの安全な(ssl)通信のためのWebSphere SSL構成

私たちが使用するその他のサービスについては、コンソールからCellDefaultTrustStoreに証明書をインポートすることができますが、CellDefaultTrustStoreのコンソールで証明書をインポートするだけでLDAP通信は機能しません。

cacertsを使用しないように特定の設定が必要ですか?この点について助けてください。ここで

は、LDAP接続を行うコードスニペットである[変数名は更新]

Hashtable env = new Hashtable(); 

    env.put(DirContext.SECURITY_AUTHENTICATION, "simple"); 
    env.put(DirContext.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
    env.put(Context.SECURITY_PRINCIPAL, bindUserName); 
    env.put(Context.SECURITY_CREDENTIALS, bindPassword); 
    // this is the url with ldaps://hostname 
    env.put(Context.PROVIDER_URL, url); 

    DirContext dirContext = new InitialDirContext(env); 

+0

LDAPでは、サーバーセキュリティ設定のレジストリ設定を意味するか、アプリケーションコードからLDAPへの独自の接続を行っていますか。 – Gas

+0

これはレジストリに関連していません。私たちのアプリケーションは、Webサービスビジネスロジックの一部として別のLDAPに接続しています。 –

+1

いくつかのsslプロパティを手動でオーバーライドしているように、ssl接続を行っているコードを追加してください。 – Gas

答えて

0

残念ながら、私はあなたのLDAP接続が行われている方法の詳細を知りません。 cacertsファイルに行くと、JSSEのデフォルトのSSL設定が使用されていることが示唆されます。コールに関する何かが、JSSEのデフォルトに行き、WebSphereソケット・ファクトリーを使用しないことです。

+0

正直なところ、デフォルトのJSSEからWebSphereソケットファクトリに変更する方法を検討しています。ダイナミックアウトバウンドエンドポイントにLDAPプロトコルを追加しようとしましたが、それでもcacertsだけに従います。同様の方法でLDAP JNDI APIを使用する別のアプリケーションがあり、興味深いことに、CellDefaultTrustStoreを使用しています。実際にこの動作を制御するものが何であるかは不明です。 –

+0

ダイナミックアウトバウンドフィルタのプロトコル設定は、実際にはサーバー管理者が作成したものです。フィルタがホスト名またはホスト名だけを含むように変更され、ポートが機能する場合LDAPにアクセスするために何が使用されているのか教えてください。上記のように、私はJNDIがWebSphereソケット・ファクトリーで正常に動作するのを見てきました。 – Alaine

0

おそらく、動的な送信SSL設定を活用したいと思うでしょう。

  1. LDAPの証明書がインストールされている場合は、信頼ストアを設定します。 (おそらくこれは既にあります)。
  2. ステップ1.
  3. からトラスト・ストアを使用してLDAP と通信するためのSSL構成を作成し、あなたのLDAPの ホスト/ポート情報を使用して、動的アウトバウンドエンドポイント構成を作成します。
関連する問題