42 証明書コールバック・ハンドラを使用したエンド・ユーザー証明書の検証
weblogic.security.SSL.CertificateCallback
インタフェースによって提供され、これを実装して証明書コールバック・ハンドラを作成できます。WebLogic Serverで構成されている場合、セキュアなRMI接続(T3sやIIOPSプロトコルを使用するもの)を介してクライアント・リクエストを受け取ると、このコールバック・ハンドラが自動的に起動されます。証明書コールバック・ハンドラがすべてのセキュアインバウンドRMI接続で機能するように構成するには、サーバー起動コマンドで受け渡されるWebLogic Serverシステム・プロパティとしてハンドラを定義します。
この章の内容は次のとおりです。
エンド・ユーザー証明書コールバック・ハンドラが機能する仕組み
クライアントが、証明書コールバック・ハンドラを使用して構成されるWebLogic ServerインスタンスへのセキュアRMI接続を作成する場合、WebLogic Serverはコールバック・ハンドラを呼び出します。コールバックは接続リクエスト内のエンド・ユーザー情報の詳細を評価し、認証が正常に実行されたことを示すブール値を返します。
CertificateCallbackインタフェースは、CertificateCallbackInfo
インスタンス上でvalidate
メソッドを呼び出します。このインスタンスには、RMI接続リクエスト内にあるエンド・ユーザーからの次の情報を取得するためのメソッドが含まれます。
-
クライアントのホスト名、IPアドレス、およびポート
-
クライアントのドメイン名
-
宛先のホスト名、IPアドレス、およびポート
-
認証されたサブジェクト
-
クライアント証明書
コールバック実装には、取得されるクライアント・データを評価し、次のようにtrue
またはfalse
を返すロジックが含まれます。
-
コールバックが
true
を返す場合、認証は正常に実行され、WebLogic Serverへのクライアント接続が確立されます。 -
コールバックが
false
を返す場合、「認証が拒否されました」というメッセージを表示してRemoteExceptionがスローされます。
ノート:
WebLogic Serverで証明書コールバック実装を使用した場合、セキュア・ポート経由でリクエストが受信されると、常にコールバックが生成されます。その結果、証明書コールバックを使用すると、強制的なパフォーマンス・オーバーヘッドが発生する可能性があるため、その考慮も必要です。
証明書コールバック実装の作成
weblogic.security.SSL.CertificateCallback
インタフェースには、weblogic.security.SSL.CertificateCallbackInfo
インスタンス上のvalidate
メソッドで単一の呼出しが含まれます。CertificateCallbackInfoインスタンスには、セキュアRMI接続全体で受け渡されるエンド・ユーザーの詳細情報を取得するためのメソッドが含まれます。
返されるデータを評価し、true
またはfalse
を返すロジックを実装します。このロジックは、返されるデータをすべて評価する必要はありません。通常、共通名(cn)または識別名(dn)の入手など、証明書のみが評価されます。
Oracle WebLogic Server Java APIリファレンスで次のJavadocを参照してください。
WebLogic Serverを使用した証明書コールバックの構成
WebLogic Serverを使用してコールバックを構成するには、WebLogic Server起動コマンドでシステム・プロパティとしてコールバック実装を指定します。プロパティは、サーバーのクラスパス上にあるコールバック実装クラスを示す必要があります。
たとえば、コールバック実装クラスがパッケージcom.mycompany.security
のMyCertificateCallback.java
で、MyCertificateCallback.class
がサーバーのクラスパス内にある場合、次のコマンドがWebLogic Serverでコールバック実装プロパティを設定します。
java weblogic.Server -Dweblogic.security.SSL.CertificateCallback=com.mycompany.security.MyCertificateCallback
WebLogic Serverが一方向SSL用に構成されている場合、クライアント証明書はサーバーに送信されないことに注意します。証明書コールバック・ハンドラは、WebLogic Serverが双方向SSL用に構成されている場合にのみ使用することをお薦めします。Oracle WebLogic Server管理コンソール・オンライン・ヘルプの双方向SSLの構成に関する項を参照してください。