プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティの管理
12c (12.2.1.2.0)
E82873-02
目次へ移動
目次

前
次

42 証明書コールバック・ハンドラを使用したエンド・ユーザー証明書の検証

WebLogic Server は、認証が成功/失敗したかどうかを判定するために発行されたリクエストを基に、エンド・ユーザーによって渡される情報の詳細を確認するための方法を提供します。この詳細情報には、エンド・ユーザーの証明書、件名、およびIPアドレスが含まれます。この機能は、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.securityMyCertificateCallback.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の構成に関する説明を参照してください。