ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server セキュリティ プロバイダの開発
11g リリース 1 (10.3.1)
B55527-01
 

目次
目次

戻る
戻る
 
次へ
次へ

15 証明書パス プロバイダ

WebLogic Security サービスは、着信双方向 SSL、発信 SSL、アプリケーション コード、および WebLogic Web サービスについて、X509 証明書チェーンを検索および検証するフレームワークを提供します。証明書の検索と検証 (CLV) フレームワークは、証明書チェーンを検索および検証する新しいセキュリティ プラグイン フレームワークです。CLV フレームワークは、JDK 証明書パス機能を拡張および完了し、カスタム証明書パス プロバイダを作成できるようにします。

以下の節では、カスタム セキュリティ プロバイダに証明書の検索および検証機能を追加する前に理解しておく必要がある基本情報と、カスタム セキュリティ プロバイダに証明書の検索および検証機能を追加する手順について説明します。

証明書の検索と検証の概念

証明書パスは、メモリ内に証明書チェーンを格納する JDK クラスです。「証明書パス」という用語は、証明書チェーンを検索および検証するための JDK アーキテクチャおよびフレームワークを指す場合にも使われます。

証明書パス プロバイダには、証明書パス検証プロバイダと証明書パス ビルダの 2 種類があります。

WebLogic 証明書パス プロバイダは、JDK と WebLogic 証明書パス SPI の両方を使用して作成します。

証明書の検索と検証のプロセス

証明書の検索と検証のプロセスを図 15-1 に示します。

図 15-1 証明書の検索と検証のプロセス

図 15-1 の説明は図の下のリンクをクリックしてください。
「図 15-1 証明書の検索と検証のプロセス」の説明

証明書パス検証プロバイダと証明書パス ビルダを実装する必要があるか

証明書パス プロバイダはいくつかの方法で実装できます。

  • 作成と検証を行う証明書パス ビルダを実装できる。この場合は、以下の操作を行います。

    1. 検証プロバイダ SPI を実装する。

    2. ビルダ SPI を実装する。

    3. ビルダ SPI の一部として作成する証明書チェーンを検証する必要がある。プロバイダは一度だけ呼び出されます。検証用に改めて呼び出す必要はありません。

    4. 検証アルゴリズムとして何を使用するか、どのセレクタをサポートするか、および信頼性のある CA を使用するかどうかを指定する。

  • 検証のみを行う証明書パス検証プロバイダを実装できる。この場合は、以下の操作を行います。

    1. 検証プロバイダ SPI を実装する。

    2. 検証アルゴリズムとして何を使用するか、および信頼性のある CA を使用するかどうかを指定する。

  • 作成のみを行う証明書パス ビルダを実装できる。この場合は、以下の操作を行います。

    1. ビルダ SPI を実装する。

    2. 作成した証明書チェーンを検証するかどうかを指定する。

    3. どのセレクタをサポートするか、および信頼性のある CA を使用するかどうかを指定する。

証明書パス プロバイダ SPI MBean

WebLogic Server には、以下の 2 種類の証明書パス プロバイダ SPI MBean があります。いずれも CertPathProviderMBean の拡張です。

  • CertPathBuilderMBean は、プロバイダが証明書チェーンを検索できることを示す。追加の属性またはメソッドはありません。CertPathBuilder プロバイダは、この MBean を拡張するカスタム MBean を実装する必要があります。

  • CertPathValidatorMBean は、プロバイダが証明書チェーンを検証できることを示す。追加の属性またはメソッドはありません。CertPathValidator プロバイダは、この MBean を拡張するカスタム MBean を実装する必要があります。

証明書パス プロバイダは、その種類によって、MBean のいずれか 1 つまたは両方を拡張する必要があります。作成と検証の両方をサポートするセキュリティ プロバイダは、コード リスト 15-1 で示すように、両方の MBean を拡張する MBean を作成する必要があります。

コード リスト 15-1 サンプル証明書パス MBean MDF

<?xml version="1.0" ?>
<!DOCTYPE MBeanType SYSTEM "commo.dtd">

<MBeanType
Name          = "MyCertPathProvider"
DisplayName   = "MyCertPathProvider"
Package       = "com.acme"
Extends       = "weblogic.management.security.pk.CertPathBuilder"
Implements    = "weblogic.management.security.pk.CertPathValidator"
PersistPolicy = "OnUpdate"
>
<MBeanAttribute
Name          = "ProviderClassName"
Type          = "java.lang.String"
Writeable     = "false"
Default       = "&quot;com.acme.MyCertPathProviderRuntimeImpl&quot;"
/>

<MBeanAttribute
Name          = "Description"
Type          = "java.lang.String"
Writeable     = "false"
Default       = "&quot;My CertPath Provider&quot;"
/>

<MBeanAttribute
Name          = "Version"
Type          = "java.lang.String"
Writeable     = "false"
Default       = "&quot;1.0&quot;"
/>

 <!-- add custom attributes for the configuration data needed by this provider -->
<MBeanAttribute
Name          = "CustomConfigData"
Type          = "java.lang.String"
/>

WebLogic 証明書パス検証プロバイダ SSPI

WebLogic 証明書パス検証プロバイダ SSPI は、以下の 4 つの部分で構成されています。

WebLogic 証明書パス ビルダ SSPI

WebLogic 証明書パス ビルダ SSPI は、以下の 4 つの部分で構成されています。

WebLogic Server 証明書パス SSPI と JDK SPI との関係

WebLogic Security フレームワーク プロバイダとは異なり、証明書パス プロバイダの現在の実装は、WebLogic インタフェースおよび JDK インタフェースの緊密な統合に依存します。この統合は、証明書パス プロバイダを作成する際に最も明らかになります。

証明書パス検証プロバイダを作成する場合は、次のタスクを実行する必要があります。

  1. WebLogic MBeanMaker による MBean タイプの生成」の説明に従って、CertPathProviderMBean を拡張する CertPathValidatorMBean を作成します。

  2. JDK CertPathBuilderSpi インタフェース、CertPathValidatorSpi インタフェースのいずれか、または両方の実装」の説明に従って、JDK java.security.cert.CertPathValidatorSpi を実装します。

  3. JDK 実装には、WebLogic CertPathValidatorParametersSpi にキャストできる JDK CertPathParameters オブジェクトが渡されます。これにより、信頼性のある CA および ContextHandler を取得する WebLogic メソッドにアクセスできるようになります。また、このオブジェクトを使用すると、WebLogic 証明書パス プロバイダ オブジェクトにもアクセスできます。

  4. 信頼性のある CA、ContextHandler、MBean で提供されるカスタム コンフィグレーション データへのアクセスを許可する証明書パス プロバイダ SSPI 実装など、証明書チェーンの検証に必要なデータを指定するには、「CertPathValidatorSpi 実装で CertPathValidatorParametersSpi SSPI の使用」で説明されているように CertPathValidatorParametersSpi を使用します。

  5. CertPathValidatorSpi 実装から MBean のカスタム コンフィグレーション データを直接取得する方法はないので、WebLogic 証明書パス プロバイダは重要な役割を果たします。WebLogic 証明書パス プロバイダは、カスタム MBean データを JDK 実装で使用可能にするための固有のメカニズムを提供できます。

  6. 証明書パス プロバイダ SSPI の実装」の説明に従って、WebLogic 証明書パス SSPI を実装します。特に、MBean へのフックを実行し、そのカスタム コンフィグレーション データを CertPathValidatorSpi 実装で利用できるようにするには、コード リスト 15-2 で示すように、証明書パス プロバイダ SSPI の initialize メソッドを使用します。

  7. JDK セキュリティ プロバイダ SPI の実装」で説明されている、CertPathValidatorSpi 実装を登録する JDK セキュリティ provider を実装します。このコーディングは直感的には理解しにくいこともあるので、「コード リスト 15-5 で実例を示します。

証明書パス ビルダを作成する場合は、次のタスクを実行する必要があります。

  1. WebLogic MBeanMaker による MBean タイプの生成」の説明に従って、CertPathProviderMBean を拡張する CertPathValidatorMBean を作成します。

  2. JDK CertPathBuilderSpi インタフェース、CertPathValidatorSpi インタフェースのいずれか、または両方の実装」の説明に従って、JDK java.security.cert.CertPathBuilderSpi を実装します。

  3. JDK 実装には、WebLogic CertPathBuilderParametersSpi にキャストできる JDK CertPathParameters オブジェクトが渡されます。これにより、信頼性のある CA、セレクタ、および ContextHandler を取得する WebLogic メソッドにアクセスできるようになります。また、このオブジェクトを使用すると、WebLogic 証明書パス プロバイダ オブジェクトにもアクセスできます。

  4. 信頼性のある CA、ContextHandler、MBean で提供されるカスタム コンフィグレーション データへのアクセスを許可する証明書パス プロバイダ SSPI 実装など、証明書チェーンの検証に必要なデータを指定するには、「CertPathBuilderSpi 実装で CertPathBuilderParametersSpi SSPI の使用」で説明されているように CertPathBuilderParametersSpi を使用します。

  5. CertPathBuilderSpi 実装から MBean のカスタム コンフィグレーション データを直接取得する方法はないので、WebLogic 証明書パス プロバイダは重要な役割を果たします。WebLogic 証明書パス プロバイダは、カスタム MBean データを JDK 実装で使用可能にするための固有のメカニズムを提供できます。

  6. 証明書パス プロバイダ SSPI の実装」の説明に従って、WebLogic 証明書パス SSPI を実装します。特に、MBean へのフックを実行し、そのカスタム コンフィグレーション データを CertPathBuilderSpi 実装で利用できるようにするには、#i1073927コード リスト 15-2initialize メソッドを使用します。

  7. JDK セキュリティ プロバイダ SPI の実装」で説明されている、CertPathBuilderSpi 実装を登録する JDK セキュリティ provider を実装します。このコーディングは直感的には理解しにくいこともあるので、「コード リスト 15-5 で実例を示します。

カスタム証明書パス プロバイダを開発する必要があるか

WebLogic Server には、証明書パス プロバイダと証明書レジストリがあります。

WebLogic Server 証明書パス プロバイダは、証明書パス ビルダと証明書パス検証プロバイダの両方です。証明書パス プロバイダは、証明書のパスを完了させ、特定の WebLogic Server インスタンスのためにコンフィグレーションされた、信頼性のある CA を使用して、証明書を検証します。証明書パス プロバイダは、自己署名型のチェーンまたは自己署名型の認証局によって発行されたチェーンのみを作成できます。認証局は、サーバの信頼性のある CA にリストされている必要があります。未完成の証明書チェーンの場合は、無効です。プロバイダは、EndCertificateSelector セレクタのみを使用します。

また、WebLogic Server 証明書パス プロバイダは、チェーン内の署名をチェックして、チェーンが期限切れでないことを確認し、チェーン内のいずれかの証明書が、サーバ用にコンフィグレーションされた信頼性のある CA によって発行されたものであることを確認します。いずれかのチェックが失敗した場合、そのチェーンは有効ではありません。最後に、プロバイダは、各証明書の基本的な制約 (証明書が他の証明書を発行できるかどうか) をチェックし、証明書がチェーン内の適切な場所にあることを確認します。

WebLogic Server 証明書パス プロバイダは、セキュリティ レルム内の証明書パス ビルダおよび証明書パス検証プロバイダとして使用できます。

WebLogic Server 証明書レジストリは、初期状態の証明書パス プロバイダです。管理者は、信頼性のある目的の証明書のリストを Administration Console からコンフィグレーションできます。証明書レジストリはビルダ/検証プロバイダです。選択条件は、EndCertificateSelectorSubjectDNSelectorIssuerDNSerialNumberSelectorSubjectKeyIdentifier のいずれかです。返される証明書チェーンには、目的の証明書のみがあります。プロバイダでは、チェーンを検証する際に目的の証明書が登録されていることのみを確認し、それ以上のチェックは行いません。

証明書パス プロバイダと証明書レジストリの両方をコンフィグレーションできます。これは、信頼性のある CA によって署名された場合にのみ証明書チェーンが有効であり、目的の証明書がレジストリにあることを確認するために行うことができます。

WebLogic Server 証明書パス プロバイダが開発者のニーズを満たさない場合、カスタム証明書パス プロバイダを開発することができます。

カスタム証明書パス プロバイダの開発方法

WebLogic 証明書パス プロバイダまたは証明書レジストリが開発者のニーズを満たさない場合、次の手順でカスタム証明書パス プロバイダを開発することができます。

適切な SSPI による実行時クラスの作成

実行時クラスを作成する前に、以下の作業が必要です。

この情報を理解し、設計に関する判断を下したら、次の手順でカスタム証明書パス プロバイダの実行時クラスを作成します。

JDK CertPathBuilderSpi インタフェース、CertPathValidatorSpi インタフェースのいずれか、または両方の実装

java.security.cert.CertPathBuilderSpi インタフェースは、CertPathBuilder クラスのサービス プロバイダ インタフェース (SPI) です。すべての CertPathBuilder 実装は、このインタフェース (CertPathBuilderSpi) を実装するクラスを含む必要があります。

java.security.cert.CertPathValidatorSpi インタフェースは、CertPathValidator クラスのサービス プロバイダ インタフェース (SPI) です。すべての CertPathValidator 実装は、このインタフェース (CertPathValidatorSpi) を実装するクラスを含む必要があります。

コード リスト 15-6 では、CertPathBuilderSpi インタフェースと CertPathValidatorSpi インタフェースの実装例を示します。

証明書パス プロバイダ SSPI の実装

CertPathProvider SSPI インタフェースは、JDK CertPathValidator SPI および CertPathBuilder SPI によって提供されるサービスをエクスポーズし、プロバイダの操作 (初期化、開始、停止など) を可能にします。

特に、MBean へのフックを実行し、そのカスタム コンフィグレーション データを CertPathBuilderSpi 実装または CertPathValidatorSpi 実装で利用できるようにするには、コード リスト 15-2 で示すように、証明書パス プロバイダ SSPI の initialize メソッドを使用します。

より詳細な例については、コード リスト 15-6 に示します。

コード リスト 15-2 コード (抜粋) : MBean からのカスタム コンフィグレーション データの取得

public class MyCertPathProviderRuntimeImpl implements CertPathProvider
{
:
:
   public void initialize(ProviderMBean mBean, SecurityServices securityServices)
   {
     MyCertPathProviderMBean myMBean = (MyCertPathProviderMBean)mBean;
     description = myMBean.getDescription();
     customConfigData = myMBean.getCustomConfigData();
:
}
:
   // コンフィグレーション データを JDK CertPathBuilderSpi 実装と
   // CertPathValidatorSpi 実装で使用可能にする
   private String getCustomConfigData() { return customConfigData; }
}
:
static public class MyJDKCertPathBuilder extends CertPathBuilderSpi
{
:
//証明書パスの作成および検証に必要なコンフィグレーション データを
//保持する実行時実装インスタンスを取得する
MyCertPathProviderRuntimeImpl runtime =
(MyCertPathProviderRuntimeImpl)params.getCertPathProvider();
String myCustomConfigData = runtime.getCustomConfigData();

コード リスト 15-5 では、使用する JDK 実装を JDK に登録する方法を示します。

CertPathProvider SSPI を実装するには、「「Provider」SSPI の目的について」で説明されているメソッドと以下のメソッドの実装を提供する必要があります。

  • getCertPathBuilder

    public CertPathBuilder getCertPathBuilder()
    

    コード リスト 15-3 で示すように、JDK CertPathBuilderSpi 実装を呼び出す証明書パス プロバイダの JDK CertPathBuilder を取得します。CertPathBuilder は、証明書チェーンを検索し、必要に応じて検証します。

コード リスト 15-3 コード (抜粋) : getCertPathBuilder

public void initialize(ProviderMBean mBean, SecurityServices securityServices)   
{
:
     // JDK 証明書パス実装を取得する
     try {
       certPathBuilder = CertPathBuilder.getInstance(BUILDER_ALGORITHM);
     } catch (NoSuchAlgorithmException e) { throw new AssertionError("..."); }
  • getCertPathValidator

    public CertPathValidator getCertPathValidator()
    

    コード リスト 15-4 で示すように、JDK CertPathValidatorSpi 実装を呼び出す証明書パス プロバイダの JDK CertPathValidator を取得します。CertPathValidator は、証明書チェーンを検証します。

コード リスト 15-4 コード (抜粋) : getCertPathValidator

public void initialize(ProviderMBean mBean, SecurityServices securityServices)   
{
:
     // JDK 証明書パス実装を取得する
     try {
       certPathValidator = CertPathValidator.getInstance(VALIDATOR_ALGORITHM);
     } catch (NoSuchAlgorithmException e) { throw new AssertionError("..."); }
   }

JDK セキュリティ プロバイダ SPI の実装

JDK セキュリティ provider SPI を実装し、その SPI を使用して CertPathBuilderSpi 実装または CertPathValidatorSpi 実装を JDK に登録します。その実装を使用して、JDK 実装をプロバイダの initialize メソッドに登録します。

コード リスト 15-6 に、サンプル証明書パス プロバイダの実行時クラスの作成例を示します。コード リスト 15-5 では、JDK セキュリティ provider を実装するサンプル コードの一部を示します。

コード リスト 15-5 JDK セキュリティ プロバイダ SPI の実装

public class MyCertPathProviderRuntimeImpl implements CertPathProvider
{
private static final String MY_JDK_SECURITY_PROVIDER_NAME = "MyCertPathProvider";
private static final String BUILDER_ALGORITHM = MY_JDK_SECURITY_PROVIDER_NAME + "CertPathBuilder";
private static final String VALIDATOR_ALGORITHM = MY_JDK_SECURITY_PROVIDER_NAME + "CertPathValidator";
:
:
   public void initialize(ProviderMBean mBean, SecurityServices securityServices)
   {
     MyCertPathProviderMBean myMBean = (MyCertPathProviderMBean)mBean;

     description = myMBean.getDescription();

     customConfigData = myMBean.getCustomConfigData();

// 証明書パス実装を JDK に登録し、CLV
// フレームワークが JDK 証明書パス api
// を介してその実装を呼び出せるようにする。
if (Security.getProvider(MY_JDK_SECURITY_PROVIDER_NAME) == null) {
   AccessController.doPrivileged(
     new PrivilegedAction() {
       public Object run() {
         Security.addProvider(new MyJDKSecurityProvider());
         return null;
       }
     }
   );
}
:
// このクラスは、このプロバイダの証明書パス ビルダ実装と
// 証明書パス検証プロバイダ実装を JDK に登録する JDK
// セキュリティ プロバイダを実装する。
private class MyJDKSecurityProvider extends Provider
 {
   private MyJDKSecurityProvider()
    {
      super(MY_JDK_SECURITY_PROVIDER_NAME, 1.0, "MyCertPathProvider JDK CertPath provider");
      put("CertPathBuilder." + BUILDER_ALGORITHM,
 "com.acme.MyPathProviderRuntimeImpl$MyJDKCertPathBuilder");
      put("CertPathValidator." + VALIDATOR_ALGORITHM,
 "com.acme.MyCertPathProviderRuntimeImpl$MyJDKCertPathValidator");
    }
 }
}

CertPathBuilderSpi 実装で CertPathBuilderParametersSpi SSPI の使用

JDK 実装には、WebLogic CertPathBuilderParametersSpi にキャストできる JDK CertPathParameters オブジェクトが渡されます。これにより、信頼性のある CA、セレクタ、および ContextHandler を取得する WebLogic メソッドにアクセスできるようになります。また、このオブジェクトを使用すると、WebLogic 証明書パス プロバイダ オブジェクトにもアクセスできます。以下のメソッドを利用できます。

  • getCertPathProvider

    CertPathProvider getCertPathProvider() 
    

    証明書パス プロバイダで提供されているサービスを WebLogic Security フレームワークにエクスポーズする証明書パス プロバイダ SSPI インタフェースを取得します。特に、MBean へのフックを実行し、そのカスタム コンフィグレーション データを CertPathBuilderSpi 実装で利用できるようにするには、コード リスト 15-2 で示すように、証明書パス プロバイダ SSPI の initialize メソッドを使用します。

  • getCertPathSelector

    CertPathSelector getCertPathSelector() 
    

    証明書パスを検索する際の選択条件を保持する CertPathSelector インタフェースを取得します。

    WebLogic Server では、サポートされている証明書チェーン検索の種類ごとに 1 つずつの CertPathSelector インタフェースを実装する weblogic.security.pk 内の一連のクラスを使用できます。そのため、getCertPathSelector メソッドは、以下の派生クラスのいずれか 1 つを返します。

  • EndCertificateSelector - 目的の証明書がある証明書チェーンを検索および検証する場合に使用します。

  • IssuerDNSerialNumberSelector - 目的の証明書の発行 DN とシリアル番号から証明書チェーンを検索および検証する場合に使用します。

  • SubjectDNSelector - 目的の証明書のサブジェクト DN から証明書チェーンを検索および検証する場合に使用します。

  • SubjectKeyIdentifierSelector - 目的の証明書のサブジェクト キー識別子 (X509 証明書の省略可能なフィールド) から証明書チェーンを検索および検証する場合に使用します。

    各セレクタ クラスには、選択データおよびコンストラクタを取得するためのメソッドが 1 つまたは複数あります。

    CertPathBuilderSpi 実装は、どのセレクタをサポートするかを決めます。CertPathBuilderSpi 実装は、CertPathBuilderParametersSpi SSPI の getCertPathSelector メソッドを使用して、証明書パスを検索する際の選択条件を保持する CertPathSelector を取得する必要があります。その種類のセレクタをサポートしている場合、CertPathBuilderSpi 実装は、そのセレクタを使用して証明書チェーンを作成および検証します。その種類のセレクタをサポートしていない場合は、呼び出し側に伝播される InvalidAlgorithmParameterException を送出します。

  • getContext()

    ContextHandler getContext() 
    

    証明書パスの作成および検証に使用可能な追加パラメータを渡すことができる ContextHandler を取得します。

  • getTrustedCAs()

    X509Certificate[] getTrustedCAs() 
    

    証明書チェーンの作成に使用できる、信頼性のある認証局のリストを取得します。信頼性のある CA でチェーンを作成する必要がある場合、CertPathBuilderSpi 実装は、このリスト内の CA を使用する必要があります。

  • clone

    Object clone()
    

    このインタフェースのクローンは作成できません。

CertPathValidatorSpi 実装で CertPathValidatorParametersSpi SSPI の使用

JDK 実装には、WebLogic CertPathValidatorParametersSpi にキャストできる JDK CertPathParameters オブジェクトが渡されます。これにより、信頼性のある CA および ContextHandler を取得する WebLogic メソッドにアクセスできるようになります。また、このオブジェクトを使用すると、WebLogic 証明書パス プロバイダ オブジェクトにもアクセスできます。CLV フレームワークは、検証プロバイダ SPI に渡された証明書チェーンが適切な順序になっている (目的の証明書から開始される) こと、および各証明書が次の証明書に署名していることを確認します。以下のメソッドを利用できます。

  • getCertPathProvider

    CertPathProvider getCertPathProvider() 
    

    証明書パス プロバイダで提供されているサービスを WebLogic Security フレームワークにエクスポーズする証明書パス プロバイダ SSPI インタフェースを取得します。特に、MBean へのフックを実行し、そのカスタム コンフィグレーション データを CertPathValidatorSpi 実装で利用できるようにするには、コード リスト 15-2 で示すように、証明書パス プロバイダ SSPI の initialize メソッドを使用します。

  • getContext()

    ContextHandler getContext() 
    

    証明書パスの作成および検証に使用可能な追加パラメータを渡すことができる ContextHandler を取得します。

    SSL は、1 つまたは複数の CertPathValidator オブジェクトを呼び出して追加検証を実行する前に、一部の組み込み検証を実行します。検証プロバイダは、実行済みの検証を検出することで、必要な検証の規模を縮小できます。

    たとえば、WebLogic 証明書パス プロバイダは、SSL が実行するものと同じ Certicom 検証を実行します。SSL によって呼び出された場合でも、その検証を繰り返す必要はありません。そのため、SSL は、検証プロバイダに渡すコンテキストに一部の情報を保存し、どの検証がすでに実行済みかを示します。weblogic.security.SSL.SSLValidationConstants CHAIN_PREVALIDATED_BY_SSL フィールドは、SSL が証明書チェーンを検証済みかどうかを示すブール値です。アプリケーション コードは、このフィールドをテストできます。フィールドは、SSL が証明書チェーンを検証済みの場合は true、まだ検証していない場合は false に設定されます。

  • getTrustedCAs()

    X509Certificate[] getTrustedCAs() 
    

    証明書チェーンの検証に使用できる、信頼性のある認証局のリストを取得します。信頼性のある CA でチェーンを検証する必要がある場合、CertPathBuilderSpi 実装は、このリスト内の CA を使用する必要があります。

  • clone

    Object clone() 
    

    このインタフェースのクローンは作成できません。

ビルダまたは検証プロバイダの結果の返し

JDK CertPathBuilder 実装または CertPathValidator 実装は、java.security.cert.CertPathValidatorResult インタフェースまたは java.security.cert.CertPathValidatorResult インタフェースを実装するオブジェクトを返す必要があります。

ユーザ独自の結果の実装を作成することも、WebLogic Server コンビニエンス ルーチンを使用することもできます。

WebLogic Server には、WLSCertPathBuilderResultWLSCertPathValidatorResult という 2 つの便利な結果実装クラスがあります。どちらのクラスも weblogic.security.pk にあり、java.security.cert.CertPathValidatorResult または java.security.cert.CertPathValidatorResult のインスタンスを返す場合に使用できます。


注意 :

返される結果は、WebLogic Security フレームワーク内を通りません。

例 : サンプル証明書パス プロバイダの作成

コード リスト 15-6 では、証明書パス ビルダ/検証プロバイダの例を示します。例には、コード フローを説明する拡張コメントが記載されています。

コード リスト 15-6 で使用する証明書パス MBean は、コード リスト 15-1 に示されています。

コード リスト 15-6 サンプル証明書パス プロバイダの作成

package com.acme;

import weblogic.management.security.ProviderMBean;
import weblogic.security.pk.CertPathSelector;
import weblogic.security.pk.SubjectDNSelector;
import weblogic.security.pk.WLSCertPathBuilderResult;
import weblogic.security.pk.WLSCertPathValidatorResult;
import weblogic.security.service.ContextHandler;
import weblogic.security.spi.CertPathBuilderParametersSpi;
import weblogic.security.spi.CertPathProvider;
import weblogic.security.spi.CertPathValidatorParametersSpi;
import weblogic.security.spi.SecurityServices;
import weblogic.security.SSL.SSLValidationConstants;

import java.security.InvalidAlgorithmParameterException;
import java.security.NoSuchAlgorithmException;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.Provider;
import java.security.Security;
import java.security.cert.CertPath;
import java.security.cert.CertPathBuilder;
import java.security.cert.CertPathBuilderResult;
import java.security.cert.CertPathBuilderSpi;
import java.security.cert.CertPathBuilderException;
import java.security.cert.CertPathParameters;
import java.security.cert.CertPathValidator;
import java.security.cert.CertPathValidatorResult;
import java.security.cert.CertPathValidatorSpi;
import java.security.cert.CertPathValidatorException;
import java.security.cert.X509Certificate;

public class MyCertPathProviderRuntimeImpl implements CertPathProvider
{
   private static final String MY_JDK_SECURITY_PROVIDER_NAME = "MyCertPathProvider";
   private static final String BUILDER_ALGORITHM = MY_JDK_SECURITY_PROVIDER_NAME + "CertPathBuilder";
   private static final String VALIDATOR_ALGORITHM = MY_JDK_SECURITY_PROVIDER_NAME + "CertPathValidator";

   // JDK 証明書パス ビルダ/検証プロバイダの実装を呼び出すために使用する
   private CertPathBuilder   certPathBuilder;
   private CertPathValidator certPathValidator;

   // mbean からのカスタム コンフィグレーション データを記憶する
   private String customConfigData;

   private String description;

   public void initialize(ProviderMBean mBean, SecurityServices securityServices)
   {
     MyCertPathProviderMBean myMBean = (MyCertPathProviderMBean)mBean;

     description = myMBean.getDescription();

     customConfigData = myMBean.getCustomConfigData();

     // 証明書パス実装を JDK に登録し、CLV
     // フレームワークが JDK 証明書パス api
     // を介してその実装を呼び出せるようにする。
     if (Security.getProvider(MY_JDK_SECURITY_PROVIDER_NAME) == null) {
       AccessController.doPrivileged(
         new PrivilegedAction() {
           public Object run() {
            Security.addProvider(new MyJDKSecurityProvider());
             return null;
           }
         }
       );
     }

     // JDK 証明書パス実装を取得する
     try {
       certPathBuilder = CertPathBuilder.getInstance(BUILDER_ALGORITHM);
     } catch (NoSuchAlgorithmException e) { throw new AssertionError("..."); }

     try {
       certPathValidator = CertPathValidator.getInstance(VALIDATOR_ALGORITHM);
     } catch (NoSuchAlgorithmException e) { throw new AssertionError("..."); }
   }

   public void             shutdown          () {                     }
   public String           getDescription       () { return description;    }
   public CertPathBuilder  getCertPathBuilder   () { return certPathBuilder;}
   public CertPathValidator getCertPathValidator () { return certPathValidator;}

   // コンフィグレーション データを JDK CertPathBuilderSpi 実装と
   // CertPathValidatorSpi 実装で使用可能にする
   private String getCustomConfigData() { return customConfigData; }

   /**
   * このクラスには、このプロバイダの JDK 証明書パス ビルダ実装が含まれる。
   */

   static public class MyJDKCertPathBuilder extends CertPathBuilderSpi
    {
     public CertPathBuilderResult
      engineBuild(CertPathParameters genericParams)
       throws CertPathBuilderException, InvalidAlgorithmParameterException
     {

   // CertPathParameters を WLS のパラメータに絞り込んで、証明書パスの
   // 作成および検証に必要なデータを取得できるようにする
   if (!(genericParams instanceof CertPathBuilderParametersSpi)) {
     throw new InvalidAlgorithmParameterException("The CertPathParameters must be a
 weblogic.security.pk.CertPathBuilderParametersSpi instance.");
   }

   CertPathBuilderParametersSpi params = (CertPathBuilderParametersSpi)genericParams;

   // 証明書パスの作成および検証に必要なコンフィグレーション データを
   // 保持する実行時実装インスタンスを取得する
   MyCertPathProviderRuntimeImpl runtime = (MyCertPathProviderRuntimeImpl)params.getCertPathProvider();
   String myCustomConfigData = runtime.getCustomConfigData();

   // 呼び出し側が作成する証明書パスを示すセレクタを取得する。
   // セレクタは、EndCertificateSelector、SubjectDNSelector、
   // IssuerDNSerialNumberSelector
   // SubjectKeyIdentifier のいずれか。
   CertPathSelector genericSelector = params.getCertPathSelector();

   // このビルダでサポートするセレクタの種類を決める。

   if (genericSelector instanceof SubjectDNSelector) {

    // 呼び出し側が作成する証明書パスの目的の証明書のサブジェクト
   // dn を取得する
    SubjectDNSelector selector = (SubjectDNSelector)genericSelector;
    String subjectDN = selector.getSubjectDN();

   // 信頼性のある CA が実装で必要な場合は、取得する。
   // 不要な場合は、無視する。つまり、これは、信頼性のある CA が必要かどうかという
   // サービス品質の問題となる。
   X509Certificate[] trustedCAs = params.getTrustedCAs();

   // 使用する実装でコンテキスト ハンドラの特別なデータを検索する必要があれば
   // コンテキスト ハンドラを入手する。不要な場合、コンテキスト ハンドラは無視する。
   ContextHandler context = params.getContext();
   if (context != null) {
   // ...
   }

   // カスタム コンフィグレーション データ (myCustomConfigData)、
   // 信頼性のある CA (実装に適用可能な場合)、
   // コンテキスト (実装に適用可能な場合)、
   // サブジェクト DN を使用して、証明書パスを作成および検証する
   CertPath certpath = ...
   // または X509Certificate[] chain = ...

   // 見つからない場合は、例外を送出する
   if (...) {
    throw new CertPathBuilderException("Could not build a cert path for " + subjectDN);
   }

   // 有効でない場合、例外を送出する
   if (...) { 
    throw new CertPathBuilderException("Could not validate the cert path for " + subjectDN);
   }

   // 見つかった場合、有効であれば、証明書パスを返す。
   // 便宜上、WLSCertPathBuilderResult クラスを使用する
   return new WLSCertPathBuilderResult(certpath);
   // または return new WLSCertPathBuilderResult(chain);

   } else {

   // 実装がサポートしていないセレクタが渡された呼び出し側
   throw new InvalidAlgorithmParameterException("MyCertPathProvider only
   supports weblogoic.security.pk.SubjectDNSelector");
   }
  }
}

   /**
   * このクラスには、このプロバイダの JDK 証明書パス検証プロバイダ実装が含まれる。
   */

   static public class MyJDKCertPathValidator extends CertPathValidatorSpi
   {
     public CertPathValidatorResult
      engineValidate(CertPath certPath, CertPathParameters genericParams)
       throws CertPathValidatorException, InvalidAlgorithmParameterException
     {

   // CertPathParameters を WLS のパラメータに絞り込んで、証明書パスの
   // 作成および検証に必要なデータを取得できるようにする
   if (!(genericParams instanceof CertPathValidatorParametersSpi)) {
     throw new InvalidAlgorithmParameterException("The CertPathParameters must be a
 weblogic.security.pk.CertPathValidatorParametersSpi instance.");
   }

     CertPathValidatorParametersSpi params = (CertPathValidatorParametersSpi)genericParams;


     // 証明書パスの作成および検証に必要なコンフィグレーション データを
     // 保持する実行時実装インスタンスを取得する
     MyCertPathProviderRuntimeImpl runtime = (MyCertPathProviderRuntimeImpl)params.getCertPathProvider();
     String myCustomConfigData = runtime.getCustomConfigData();

     // 信頼性のある CA が実装で必要な場合は、取得する。
     // 不要な場合、コンテキスト ハンドラは無視する。つまり、これは、信頼性のある CA が必要かどうかという
     // サービス品質の問題となる。
     X509Certificate[] trustedCAs = params.getTrustedCAs();

     // 使用する実装でコンテキスト ハンドラの特別なデータを検索する必要があれば
     // コンテキスト ハンドラを入手する。不要な場合は、無視する。
     ContextHandler context = params.getContext();
     if (context != null) {
       // ...
     }

     // CLV フレームワークは、プロバイダに送る前に証明書パスに対して
     // 以下の最小限の検証を実行済み
     //   1) 証明書パスは空ではない
     //   2) 証明書パスは、目的の証明書から開始される
     //   3) 証明書パス内の各証明書が発行され、
     //      チェーン内の次の証明書によって署名された
     //      したがって、検証プロバイダは、これらの実行済みのチェックを
     //      再利用できるので、チェックを再び実行
     //      する必要はない。

   // カスタム コンフィグレーション データ (myCustomConfigData)、
   // 信頼性のある CA (実装に適用可能な場合)、
   // コンテキスト (実装に適用可能な場合)
   // を使用して証明書パスを検証する

   // 無効な場合は、以下の例外を送出する
   if (...) {
     throw new CertPathValidatorException("Could not validate the cerpath " + certPath);
   }
   // 有効な場合は、成功を返す

   // 便宜上、WLSCertPathValidatorResult クラスを使用する

   return new WLSCertPathValidatorResult();
  }
}

   // このクラスは、このプロバイダの証明書パス ビルダ実装と // 証明書パス検証プロバイダ実装を JDK に登録する JDK
   // セキュリティ プロバイダを実装する。
   private class MyJDKSecurityProvider extends Provider
   {
   private MyJDKSecurityProvider()
   {
     super(MY_JDK_SECURITY_PROVIDER_NAME, 1.0, "MyCertPathProvider JDK CertPath provider");
     put("CertPathBuilder." + BUILDER_ALGORITHM, "com.acme.MyPathProviderRuntimeImpl$MyJDKCertPathBuilder");
     put("CertPathValidator." + VALIDATOR_ALGORITHM, "com.acme.MyCertPathProviderRuntimeImpl$MyJDKCertPathValidator");
   }
  }
}

WebLogic MBeanMaker による MBean タイプの生成

カスタム セキュリティ プロバイダの MBean タイプを生成する前に、以下の作業が必要です。

この情報を理解し、設計に関する判断を下したら、次の手順でカスタム証明書パス プロバイダの MBean タイプを作成します。

MBean 定義ファイル (MDF) の作成

WebLogic MBeanMaker による MBean タイプの生成

WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) の作成

WebLogic Server 環境に MBean タイプのインストール


注意 :

この節で説明する手順はすべて、Windows 環境での作業を想定しています。

MBean 定義ファイル (MDF) の作成

MBean 定義ファイル (MDF) を作成するには、次の手順に従います。

  1. サンプル認証プロバイダの MDF をテキスト ファイルにコピーします。


    注意 :

    サンプル認証プロバイダの MDF は、SimpleSampleAuthenticator.xml です。(サンプル証明書パス プロバイダはありません)。

  2. MDF で <MBeanType> 要素と <MBeanAttribute> 要素の内容をカスタム証明書パス プロバイダに合わせて修正します。CertPathBuilderMBean または CertPathValidatorMBean を拡張または実装する必要があります。

  3. カスタム属性および操作 (つまり、<MBeanAttribute> および <MBeanOperation> 要素) を MDF に追加します。

  4. ファイルを保存します。


    注意 :

    MDF 要素の構文についての詳細なリファレンスは、「A MBean 定義ファイル (MDF) 要素の構文」に収められています。

WebLogic MBeanMaker を使用して MBean タイプの生成

MDF を作成したら、WebLogic MBeanMaker を使用してそれを実行できます。WebLogic MBeanMaker は現在のところコマンドライン ユーティリティで、入力として MDF を受け取り、MBean インタフェース、MBean 実装、関連する MBean 情報ファイルなどの中間 Java ファイルをいくつか出力します。これらの中間ファイルが合わさって、カスタム セキュリティ プロバイダの MBean タイプになります。

MBean タイプの生成手順は、カスタム証明書パス プロバイダの設計に応じて異なります。必要な設計に合わせて適切な手順を実行してください。

任意 SSPI MBean とカスタム操作を追加しない場合

カスタム証明書パス プロバイダの MDF に任意 SSPI MBean もカスタム操作も実装しない場合、次の手順に従います。

  1. 新しい DOS シェルを作成します。

  2. 次のコマンドを入力します。

    java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker
    

    ここで、-DMDF フラグは WebLogic MBeanMaker が MDF をコードに変換すべきであることを示し、xmlFile は MDF (XML MBean の記述ファイル)、filesdir は WebLogic MBeanMaker で作成された MBean タイプの中間ファイルが格納される場所を示します。

    xmlfile が入力されるたびに、新しい出力ファイル群が生成されます。

    -DcreateStubs=true フラグを使用するたびに、既存の MBean 実装ファイルがすべて上書きされます。


    注意 :

    バージョン 9.0 以降の WebLogic Server では、-DMDFDIR <MDF directory name> オプションを使用して、複数の MDF を格納するディレクトリを指定することができます。旧バージョンの WebLogic Server では、WebLogic MBeanMaker で一度に処理される MDF は 1 つだけです。したがって、MDF (つまり証明書パス プロバイダ) が複数ある場合には、このプロセスを繰り返す必要がありました。

  3. WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) の作成」に進みます。

任意 SSPI MBean またはカスタム操作を追加する場合

カスタム証明書パス プロバイダの MDF に任意 SSPI MBean またはカスタム操作を実装する場合、以下の質問に答えながら手順を進めてください。

MBean タイプを作成するのは初めてですか。初めての場合は、次の手順に従ってください。

  1. 新しい DOS シェルを作成します。

  2. 次のコマンドを入力します。

    java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker
    

    ここで、-DMDF フラグは WebLogic MBeanMaker が MDF をコードに変換すべきであることを示し、xmlFile は MDF (XML MBean の記述ファイル)、filesdir は WebLogic MBeanMaker で作成された MBean タイプの中間ファイルが格納される場所を示します。

    xmlfile が入力されるたびに、新しい出力ファイル群が生成されます。

    -DcreateStubs=true フラグを使用するたびに、既存の MBean 実装ファイルがすべて上書きされます。


    注意 :

    バージョン 9.0 以降の WebLogic Server では、-DMDFDIR <MDF directory name> オプションを使用して、複数の MDF を格納するディレクトリを指定することができます。旧バージョンの WebLogic Server では、WebLogic MBeanMaker で一度に処理される MDF は 1 つだけです。したがって、MDF (つまり証明書パス プロバイダ) が複数ある場合には、このプロセスを繰り返す必要がありました。

  3. 任意 SSPI MBean を MDF に実装した場合は、次の手順に従います。

    1. MBean 実装ファイルを見つけます。

      WebLogic MBeanMaker によって生成される MBean 実装ファイルには、MBeanNameImpl.java という名前が付けられます。 たとえば、SampleIdentityAsserter という名前の MDF の場合、編集される MBean 実装ファイルは SampleIdentityAsserterImpl.java という名前になります。

    2. MDF で実装した任意 SSPI MBean ごとに、各メソッドを実装します。任意 SSPI MBean が継承するメソッドもすべて実装してください。

  4. MDF にカスタム操作を含めた場合、メソッド スタブを使用してメソッドを実装します。

  5. ファイルを保存します。

  6. WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) の作成」に進みます。

既存の MBean タイプの更新ですか。更新の場合は、次の手順に従ってください。

  1. WebLogic MBeanMaker によって現在のメソッドの実装が上書きされないように、既存の MBean 実装ファイルを一時ディレクトリにコピーします。

  2. 新しい DOS シェルを作成します。

  3. 次のコマンドを入力します。

    java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker
    

    ここで、-DMDF フラグは WebLogic MBeanMaker が MDF をコードに変換すべきであることを示し、xmlFile は MDF (XML MBean の記述ファイル)、filesdir は WebLogic MBeanMaker で作成された MBean タイプの中間ファイルが格納される場所を示します。

    xmlfile が入力されるたびに、新しい出力ファイル群が生成されます。

    -DcreateStubs=true フラグを使用するたびに、既存の MBean 実装ファイルがすべて上書きされます。


    注意 :

    バージョン 9.0 以降の WebLogic Server では、-DMDFDIR <MDF directory name> オプションを使用して、複数の MDF を格納するディレクトリを指定することができます。旧バージョンの WebLogic Server では、WebLogic MBeanMaker で一度に処理される MDF は 1 つだけです。したがって、MDF (つまり証明書パス プロバイダ) が複数ある場合には、このプロセスを繰り返す必要がありました。

  4. 任意 SSPI MBean を MDF に実装した場合は、次の手順に従います。

    1. MBean 実装ファイルを見つけて開きます。

      WebLogic MBeanMaker によって生成される MBean 実装ファイルには、MBeanNameImpl.java という名前が付けられます。 たとえば、SampleIdentityAsserter という名前の MDF の場合、編集される MBean 実装ファイルは SampleIdentityAsserterImpl.java という名前になります。

    2. 手順 1 で一時ディレクトリに保存した既存の MBean 実装ファイルを開きます。

    3. 既存の MBean 実装ファイルを、WebLogic MBeanMaker によって生成された MBean 実装ファイルと同期させます。

      これには、メソッドの実装を既存の MBean 実装ファイルから新しく生成された MBean 実装ファイルにコピー (または、新しく生成された MBean 実装ファイルから既存の MBean 実装ファイルに新しいメソッドを追加) し、いずれの MBean 実装ファイルにも入っているメソッドのメソッド シグネチャへの変更が、使用する MBean 実装ファイルに反映されていることを確認するといった作業が必要です。

    4. MDF を修正して元の MDF にはない任意 SSPI MBean を実装した場合は、各メソッドを実装します。任意 SSPI MBean が継承するメソッドもすべて実装してください。

  5. MDF を変更して元の MDF にはないカスタム操作を含めた場合、メソッド スタブを使用してメソッドを実装します。

  6. 完成した、つまりすべてのメソッドを実装した MBean 実装ファイルを保存します。

  7. この MBean 実装ファイルを、WebLogic MBeanMaker が MBean タイプの実装ファイルを配置したディレクトリにコピーします。このディレクトリは、手順 3 で filesdir として指定したものです。 (手順 3 の結果として WebLogic MBeanMaker で生成された MBean 実装ファイルがオーバーライドされます)。

  8. WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) の作成」に進みます。

生成される MBean インタフェース ファイルについて

MBean インタフェース ファイルとは、実行時クラスまたは MBean 実装がコンフィグレーション データを取得するために使用する MBean のクライアントサイド API です。「「Provider」SSPI の目的について」で説明されているように、これは initialize メソッドで使用するのが一般的です。

WebLogic MBeanMaker では、作成済みの MDF から MBean タイプを生成するので、生成される MBean インタフェース ファイルの名前は、その MDF 名の後に「MBean」というテキストが付いたものになります。たとえば、WebLogic MBeanMaker を使用して SampleIdentityAsserter MDF を実行すると、SampleIdentityAsserterMBean.java という名前の MBean インタフェース ファイルが生成されます。

WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) の作成

WebLogic MBeanMaker を使用して MDF を実行して中間ファイルを生成し、MBean 実装ファイルを編集して適切なメソッドの実装を提供したら、カスタム証明書パス プロバイダの MBean ファイルと実行時クラスを MBean JAR ファイル (MJF) にパッケージ化する必要があります。このプロセスも、WebLogic MBeanMaker によって自動化されます。

カスタム証明書パス プロバイダの MJF を作成するには、次の手順に従います。

  1. 新しい DOS シェルを作成します。

  2. 次のコマンドを入力します。

    java -DMJF=jarfile -Dfiles=filesdir weblogic.management.commo.WebLogicMBeanMaker
    

    ここで、-DMJF フラグは WebLogic MBeanMaker が新しい MBean タイプを含む JAR ファイルを構築すべきであることを示し、jarfile は MJF の名前、filesdir は WebLogic MBeanMaker で MJF に JAR 化する対象ファイルが存在する場所を示します。

    この時点でコンパイルが行われるので、エラーが発生するおそれがあります。jarfile が指定されていて、エラーが発生しなかった場合には、指定された名前の MJF が作成されます。


    注意 :

    カスタム セキュリティ プロバイダの JAR ファイルを作成する際には、一連の XML バインディング クラスと 1 つのスキーマも生成されます。そのスキーマに関連付けるネームスペースを選択できます。それにより、使用しているカスタム クラスと Oracle のカスタム クラスとの衝突を防ぐことができます。ネームスペースのデフォルトは vendor です。-targetNameSpace 引数を WebLogicMBeanMaker または関連する WLMBeanMaker ant タスクに渡すことで、このデフォルトを変更できます。

    既存の MJF を更新する場合は、単純に MJF を削除して再生成します。WebLogic MBeanMaker にも -DIncludeSource オプションがあり、それを指定すると、生成される MJF にソース ファイルを含めるかどうかを制御できます。ソース ファイルには、生成されたソースと MDF そのものがあります。デフォルトは false。このオプションは、-DMJF を使用しない場合には無視されます。


生成された MJF は、自らの WebLogic Server 環境にインストールすることも、顧客に配布してそれぞれの WebLogic Server 環境にインストールしてもらうこともできます。

WebLogic Server 環境に MBean タイプのインストール

MBean タイプを WebLogic Server 環境にインストールするには、MJF をWL_HOME\server\lib\mbeantypes ディレクトリにコピーします。ここで、WL_HOME は WebLogic Server の最上位のインストール ディレクトリです。 このインストール コマンドによって、カスタム証明書パス プロバイダが「デプロイ」されます。つまり、カスタム証明書パス プロバイダを WebLogic Server Administration Console から管理できるようになります。


注意 :

MBean タイプのインストール用のディレクトリは、デフォルトでは WL_HOME\server\lib\mbeantypes ですが、初めて使用するバージョンが 9.0 の場合、セキュリティ プロバイダは ...\domaindir\lib\mbeantypes からもロードできます。ただし、サーバを起動するときに -Dweblogic.alternateTypesDirectory=<dir> コマンドライン フラグを使用すれば、WebLogic Server が追加ディレクトリで MBean タイプを検索します。<dir> は、ディレクトリ名のカンマ区切りのリストです。このフラグを使用する場合、WebLogic Server は常に最初に WL_HOME\server\lib\mbeantypes から MBean タイプをロードします。その後で、追加ディレクトリにあるすべての有効なアーカイブを検索して、ロードします。このとき拡張子は考慮されません。たとえば、-Dweblogic.alternateTypesDirectory = dirX,dirY の場合、WebLogic Server は最初に WL_HOME\server\lib\mbeantypes から MBean タイプをロードしてから、dirX および dirY にある有効なアーカイブをロードします。WebLogic Server に追加ディレクトリで MBean タイプを検索するように指示する際に JAVA セキュリティ マネージャを使用している場合は、weblogic.policy ファイルを更新して、MBean タイプ (その結果としてカスタム セキュリティ プロバイダ) に対する適切なパーミッションを付与することも必要になります。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Security プログラマーズガイド』の「Java セキュリティを使用しての WebLogic リソースの保護」を参照してください。

カスタム証明書パス プロバイダをコンフィグレーションすることによって (「Administration Console によるカスタム証明書パス プロバイダのコンフィグレーション」を参照)、MBean タイプのインスタンスを作成して、GUI、他の Java コード、または API からそれらの MBean インスタンスを使用することができます。たとえば、WebLogic Server Administration Console を使用して、属性を取得/設定したり操作を呼び出したりすることもできますし、他の Java オブジェクトを開発して、そのオブジェクトで MBean をインスタンス化し、それらの MBean から提供される情報に自動的に応答させることもできます。なお、これらの MBean インスタンスをバックアップしておくことをお勧めします。

Administration Console によるカスタム証明書パス プロバイダのコンフィグレーション

カスタム証明書パス プロバイダをコンフィグレーションするということは、証明書サービスを必要とするアプリケーションがアクセス可能なセキュリティ レルムにカスタム証明書パス プロバイダを追加するということです。

カスタム セキュリティ プロバイダのコンフィグレーションは管理タスクですが、カスタム セキュリティ プロバイダの開発者が行うこともできます。


注意 :

WebLogic Server Administration Console を使用してカスタム証明書パス プロバイダをコンフィグレーションする手順は、『Oracle Fusion Middleware Oracle WebLogic Server のセキュリティ』の「WebLogic セキュリティ プロバイダのコンフィグレーション」で説明されています。