この付録の内容は次のとおりです。
カスタム・セキュリティ・プロバイダのMBeanタイプを生成する前に、以下の作業が必要です。
この情報を理解し、設計に関する判断を下したら、次の手順を実行して、カスタム・セキュリティ・プロバイダのMBeanタイプを作成します。
注意:
これらの手順の実行方法を示すために、複数のセキュリティ・プロバイダのサンプルを使用できます。
この節で説明する手順はすべて、Windows環境での作業を想定しています。
MBean定義ファイル(MDF)を作成するには、次の手順に従います。
サンプル・セキュリティ・プロバイダのMDFをテキスト・ファイルにコピーします。
サンプル・セキュリティ・プロバイダごとに、次のMDFファイル名を示します。
サンプル・セキュリティ・プロバイダ・タイプ | MDFファイル名 |
---|---|
認証プロバイダ |
SimpleSampleAuthenticator.xml |
IDアサーション・プロバイダ |
SampleIdentityAsserter.xml |
認可プロバイダ |
SimpleSampleAuthorizer.xml |
裁決プロバイダ |
現在、サンプル裁決プロバイダはありませんが、サンプル認証プロバイダ |
ロール・マッピング・プロバイダ |
SimpleSampleRoleMapper.xml |
監査プロバイダ |
|
資格証明マッピング・プロバイダ |
現在、サンプル資格証明マッピング・プロバイダはありませんが、サンプル認証プロバイダ |
証明書パス・プロバイダ |
現在、サンプル証明書パス・プロバイダはありませんが、サンプル認証プロバイダ |
MDFで<MBeanType>
要素と<MBeanAttribute>
要素の内容をカスタム・セキュリティ・プロバイダに合せて修正します。
次の点に注意してください。
カスタムIDアサーション・プロバイダを作成する場合は、Base64DecodingRequired
属性をfalse
に設定するために、次の抜粋を考慮します。
<MBeanAttribute Name = "Base64DecodingRequired" Type = "boolean" Writeable = "false" Default = "false" Description = "See MyIdentityAsserter-doc.xml." />
カスタム証明書パス・プロバイダを作成する場合は、CertPathBuilderMBeanまたはCertPathValidatorMBeanを拡張または実装する必要があります。
カスタム属性および操作(つまり、<MBeanAttribute>
および<MBeanOperation>
要素)をMDFに追加します。
ファイルを保存します。
注意:
MDF要素の構文についての詳細なリファレンスは、「MBean定義ファイル(MDF)要素の構文」に収められています。
MDFを作成したら、WebLogic MBeanMakerを使用してそれを実行できます。WebLogic MBeanMakerは現在のところコマンドライン・ユーティリティで、入力としてMDFを受け取り、次に示すような一連の中間Javaファイルを生成します。
MBeanインタフェース
MBean実装
関連するMBean情報ファイル
これらの中間ファイルが合わさって、カスタム・セキュリティ・プロバイダのMBeanタイプになります。
MBeanタイプの作成手順は、カスタム・セキュリティ・プロバイダの設計に応じて異なります。必要な設計に合わせて適切な手順を実行してください。
この項では、カスタム裁決プロバイダ、カスタム・ロール・マッピング・プロバイダ、およびカスタム監査プロバイダに適用します。
カスタム・セキュリティ・プロバイダのMDFがいかなるカスタム操作も含まない場合、次の手順を実行します。
この項では、次のカスタム・セキュリティ・プロバイダ・タイプに適用します。
認証プロバイダ
IDアサーション・プロバイダ
認可プロバイダ
資格証明マッピング・プロバイダ
証明書パス・プロバイダ
カスタム・セキュリティ・プロバイダのMDFがオプショナルSSPI MBeanを実装せず、かつ、いかなるカスタム操作も含まない場合、次の手順を実行します。
この項では、すべてのカスタム・セキュリティ・プロバイダ・タイプに適用します。
カスタム・セキュリティ・プロバイダのMDFがオプショナルSSPI MBeanまたはカスタム操作を実装する場合、次の質問に答えながら手順を進めてください。
MBeanタイプを作成するのは初めてですか。その場合は、次の手順に従ってください:
新しいDOSシェルを作成します。
次のコマンドを入力します。
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が複数ある(たとえば認証プロバイダが複数ある)場合には、このプロセスを繰り返す必要がありました。
オプショナルSSPI MBeanをMDFに実装した場合は、次の手順に従います。
MBean実装ファイルを見つけます。
WebLogic MBeanMakerによって生成されるMBean実装ファイルには、MBeanNameImpl.java
という名前が付けられます。たとえば、SampleAuthenticator
という名前のMDFの場合、編集されるMBean実装ファイルはSampleAuthenticatorImpl.java
という名前になります。
MDFで実装したオプショナルSSPI MBeanごとに、各メソッドを実装します。オプショナルSSPI MBeanが継承するメソッドもすべて実装してください。
MDFにカスタム属性または操作を含めた場合は、メソッド・スタブを使用してメソッドを実装します。
ファイルを保存します。
既存のMBeanタイプの更新ですか。その場合は、次の手順に従ってください:
WebLogic MBeanMakerによって現在のメソッドの実装が上書きされないように、既存のMBean実装ファイルを一時ディレクトリにコピーします。
新しいDOSシェルを作成します。
次のコマンドを入力します。
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が複数ある(たとえば認証プロバイダが複数ある)場合には、このプロセスを繰り返す必要がありました。
オプショナルSSPI MBeanをMDFに実装した場合は、次の手順に従います。
MBean実装ファイルを見つけて開きます。
WebLogic MBeanMakerによって生成されるMBean実装ファイルには、<MBeanName>Impl.java
という名前が付けられます。たとえば、SampleAuthenticator
という名前のMDFの場合、編集されるMBean実装ファイルはSampleAuthenticatorImpl.java
という名前になります。
ステップ1で一時ディレクトリに保存した既存のMBean実装ファイルを開きます。
既存のMBean実装ファイルを、WebLogic MBeanMakerによって生成されたMBean実装ファイルと同期させます。
これには、メソッドの実装を既存のMBean実装ファイルから新しく生成されたMBean実装ファイルにコピー(または、新しく生成されたMBean実装ファイルから既存のMBean実装ファイルに新しいメソッドを追加)し、いずれのMBean実装ファイルにも入っているメソッドのメソッド・シグネチャへの変更が、使用するMBean実装ファイルのバージョンに反映されていることを確認するといった作業が必要です。
MDFを修正して元のMDFにはないオプショナルSSPI MBeanを実装した場合は、各メソッドを実装します。オプショナルSSPI MBeanが継承するメソッドもすべて実装してください。
MDFを変更して元のMDFにはないカスタム操作を含めた場合、メソッド・スタブを使用してメソッドを実装します。
完成した、つまりすべてのメソッドを実装したMBean実装ファイルを保存します。
このMBean実装ファイルを、WebLogic MBeanMakerがMBeanタイプの実装ファイルを配置したディレクトリにコピーします。このディレクトリは、ステップ3でfilesdirとして指定します。(ステップ3の結果としてWebLogic MBeanMakerで生成されたMBean実装ファイルをオーバーライドします。)
MBeanインタフェース・ファイルは、ランタイム・クラスまたはMBean実装が構成データを取得するために使用するMBeanとのクライアント側APIです。「「Provider」SSPIの目的について」で説明されているように、これはinitializeメソッドで使用するのが一般的です。
WebLogic MBeanMakerでは、作成済のMDFからMBeanタイプを生成するので、生成されるMBeanインタフェース・ファイルの名前は、そのMDF名の後にMBean
というテキストが付いたものになります。たとえば、WebLogic MBeanMakerを使用してSimpleSampleAuthenticator
MDFを実行すると、MBeanインタフェース・ファイルSimpleSampleAuthenticatorMBean.java
が生成されます。
WebLogic MBeanMakerでMDFを実行して中間ファイルを作成し、MBean実装ファイルを編集して適切なメソッドの実装を提供したら、カスタム・セキュリティ・プロバイダのMBeanファイルとランタイム・クラスをMBean JARファイル(MJF)にパッケージ化する必要があります。このプロセスも、WebLogic MBeanMakerによって自動化されます。
カスタム・セキュリティ・プロバイダのMJFを作成するには、次の手順を実行します。
新しいDOSシェルを作成します。
次のコマンドを入力します。
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環境にインストールしてもらうこともできます。
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セキュリティ・サービスによるアプリケーションの開発』のWebLogicリソースを保護するためのJavaセキュリティの使用に関する項を参照してください。
WebLogic Server管理コンソールを使用してカスタム・セキュリティ・プロバイダを構成することによって、MBeanタイプのインスタンスを作成して、GUI、他のJavaコード、またはAPIからそれらのMBeanインスタンスを使用することができます。たとえば、WebLogic Server管理コンソールを使用して、属性を取得/設定したり操作を呼び出したりすることもできますし、他のJavaオブジェクトを開発して、そのオブジェクトでMBeanをインスタンス化し、それらのMBeanから提供される情報に自動的に応答させることもできます。なお、これらのMBeanインスタンスをバックアップしておくことをお薦めします。