プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティ・プロバイダの開発 12c
12c (12.2.1.3.0)
E90323-01
目次へ移動
目次

前

B WebLogic MBeanMakerを使用してMBeanタイプを生成する

この付録では、カスタム・セキュリティ・プロバイダ用のMBeanタイプを作成する方法について説明します。

この付録の内容は次のとおりです。

手順の概要

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

この情報を理解し、設計に関する判断を下したら、次の手順を実行して、カスタム・セキュリティ・プロバイダのMBeanタイプを作成します。

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

  2. WebLogic MBeanMakerを使用してMBeanタイプを生成する

  3. WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成

  4. WebLogic Server環境にMBeanタイプをインストールする

注意:

これらの手順の実行方法を示すために、複数のセキュリティ・プロバイダのサンプルを使用できます。

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

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

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

  1. サンプル・セキュリティ・プロバイダのMDFをテキスト・ファイルにコピーします。

    サンプル・セキュリティ・プロバイダごとに、次のMDFファイル名を示します。

    サンプル・セキュリティ・プロバイダ・タイプ MDFファイル名

    認証プロバイダ

    SimpleSampleAuthenticator.xml

    IDアサーション・プロバイダ

    SampleIdentityAsserter.xml

    認可プロバイダ

    SimpleSampleAuthorizer.xml

    裁決プロバイダ

    現在、サンプル裁決プロバイダはありませんが、サンプル認証プロバイダSimpleSampleAuthenticator.xmlのMDFファイルを使用できます。

    ロール・マッピング・プロバイダ

    SimpleSampleRoleMapper.xml

    監査プロバイダ

    SampleAuditor.xml

    資格証明マッピング・プロバイダ

    現在、サンプル資格証明マッピング・プロバイダはありませんが、サンプル認証プロバイダSimpleSampleAuthenticator.xmlのMDFファイルを使用できます。

    証明書パス・プロバイダ

    現在、サンプル証明書パス・プロバイダはありませんが、サンプル認証プロバイダSimpleSampleAuthenticator.xmlのMDFファイルを使用できます。

  2. MDFで<MBeanType>要素と<MBeanAttribute>要素の内容をカスタム・セキュリティ・プロバイダに合せて修正します。

    次の点に注意してください。

    • カスタムIDアサーション・プロバイダを作成する場合は、Base64DecodingRequired属性をfalseに設定するために、次の抜粋を考慮します。

      <MBeanAttribute
        Name         = "Base64DecodingRequired"
        Type         = "boolean"
        Writeable    = "false"
        Default      = "false"
        Description  = "See MyIdentityAsserter-doc.xml."
      />
      
    • カスタム証明書パス・プロバイダを作成する場合は、CertPathBuilderMBeanまたはCertPathValidatorMBeanを拡張または実装する必要があります。

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

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

    注意:

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

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

MDFを作成したら、WebLogic MBeanMakerを使用してそれを実行できます。WebLogic MBeanMakerは現在のところコマンドライン・ユーティリティで、入力としてMDFを受け取り、次に示すような一連の中間Javaファイルを生成します。

  • MBeanインタフェース

  • MBean実装

  • 関連するMBean情報ファイル

これらの中間ファイルが合わさって、カスタム・セキュリティ・プロバイダのMBeanタイプになります。

MBeanタイプの作成手順は、カスタム・セキュリティ・プロバイダの設計に応じて異なります。必要な設計に合わせて適切な手順を実行してください。

カスタム操作を追加しない場合

この項では、カスタム裁決プロバイダ、カスタム・ロール・マッピング・プロバイダ、およびカスタム監査プロバイダに適用します。

カスタム・セキュリティ・プロバイダのMDFがいかなるカスタム操作も含まない場合、次の手順を実行します。

  1. 新しいDOSシェルを作成します。
  2. 次のコマンドを入力します。
    java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker
    

    前のコマンドで、

    • -DMDFフラグは、WebLogic MBeanMakerがMDFをコードに変換する必要があることを示します。

    • xmlFileはXML MBean記述ファイル(MDF)を表します。

    • filesdirは、WebLogic MBeanMakerがMBeanタイプの中間ファイルを配置する場所を表します。

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

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

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

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

    注意:

    WebLogic MBeanMakerではMDFを一度に1つ処理します。そのため、特定のセキュリティ・プロバイダ・タイプのMDFが複数ある(たとえば裁決プロバイダが複数ある)場合には、このプロセスを繰り返す必要があります。

  3. 「WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成」に進みます。

オプショナルSSPI MBeanカスタム操作を追加しない場合

この項では、次のカスタム・セキュリティ・プロバイダ・タイプに適用します。

  • 認証プロバイダ

  • IDアサーション・プロバイダ

  • 認可プロバイダ

  • 資格証明マッピング・プロバイダ

  • 証明書パス・プロバイダ

カスタム・セキュリティ・プロバイダのMDFがオプショナルSSPI MBeanを実装せず、かつ、いかなるカスタム操作も含まない場合、次の手順を実行します。

  1. 新しいDOSシェルを作成します。
  2. 次のコマンドを入力します。
    java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true
     weblogic.management.commo.WebLogicMBeanMaker
    

    前のコマンドで、

    • -DMDFフラグは、WebLogic MBeanMakerがMDFをコードに変換する必要があることを示します。

    • xmlFileはXML MBean記述ファイル(MDF)を表します。

    • 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はXML MBean記述ファイル(MDF)を表します。

    • 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という名前が付けられます。たとえば、SampleAuthenticatorという名前のMDFの場合、編集されるMBean実装ファイルはSampleAuthenticatorImpl.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はXML MBean記述ファイル(MDF)を表します。

    • 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実装ファイルには、<MBeanName>Impl.javaという名前が付けられます。たとえば、SampleAuthenticatorという名前のMDFの場合、編集されるMBean実装ファイルはSampleAuthenticatorImpl.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を使用してSimpleSampleAuthenticator MDFを実行すると、MBeanインタフェース・ファイルSimpleSampleAuthenticatorMBean.javaが生成されます。

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管理コンソールから管理可能になります。

注意:

MBeanタイプをインストールするデフォルトのディレクトリは、WL_HOME\server\lib\mbeantypesです。(初めて使用するバージョンがWebLogic Server 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タイプ(その結果としてカスタム・セキュリティ・プロバイダ)に対する適切なパーミッションを付与することも必要になります。『WebLogicセキュリティ・サービスによるアプリケーションの開発』のJavaセキュリティ・マネージャを使用してWebLogicリソースを保護する方法に関する項を参照してください。

WebLogic Server管理コンソールを使用してカスタム・セキュリティ・プロバイダを構成することによって、MBeanタイプのインスタンスを作成して、GUI、他のJavaコード、またはAPIからそれらのMBeanインスタンスを使用することができます。たとえば、WebLogic Server管理コンソールを使用して、属性を取得/設定したり操作を呼び出したりすることもできますし、他のJavaオブジェクトを開発して、そのオブジェクトでMBeanをインスタンス化し、それらのMBeanから提供される情報に自動的に応答させることもできます。なお、これらのMBeanインスタンスをバックアップしておくことをお薦めします。