ナビゲーションをスキップ

WebLogic セキュリティ プロバイダの開発

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

監査プロバイダ

監査とは、リクエストの操作とそれらのリクエストの結果に関する情報を、否認防止を目的として収集、格納、および配布するプロセスのことです。WebLogic Server では、監査はコンピュータのアクティビティの電子的な記録を提供するものです。

以下の節では、監査プロバイダの概念と機能、およびカスタム監査プロバイダの開発手順について説明します。

 


監査の概念

監査プロバイダを開発する前に、以下の概念を理解しておく必要があります。

監査チャネル

監査チャネルは監査プロバイダのコンポーネントで、セキュリティ イベントを監査すべきかどうかを決定し、サービス品質 (QoS) ポリシーに基づいて監査情報を実際に記録します。

注意 : 監査チャネルの詳細については、「AuditChannel SSPI を実装する」を参照してください。

カスタム セキュリティ プロバイダからのイベントの監査

各タイプのセキュリティ プロバイダは、セキュリティ関連イベントの実行前または実行後に、それらのイベントに関する情報を記録するようコンフィグレーション済みの監査プロバイダに要求できます。たとえば、あるユーザが預金口座アプリケーションの (アクセス権を持たない) withdraw メソッドにアクセスしようとした場合、認可プロバイダはこの操作を記録するよう要求できます。セキュリティ関連イベントは、監査プロバイダのコンフィグレーションで指定されている重大度レベルと一致するか、それを超えた場合にのみ記録されます。

カスタム セキュリティ プロバイダから監査イベントをポストする方法については、「カスタム セキュリティ プロバイダからのイベントの監査」を参照してください。

 


監査プロセス

図 9-1 に、監査プロバイダが WebLogic Security フレームワークと他のタイプのセキュリティ プロバイダ (ここでは認証プロバイダ) と対話して、選択されたイベントを監査する仕組みを示します。図の後には、詳しい説明が続きます。

図 9-1 監査プロバイダ、WebLogic Security フレームワーク、および他のセキュリティ プロバイダ

監査プロバイダ、WebLogic Security フレームワーク、および他のセキュリティ プロバイダ


 

監査プロバイダは、次のように WebLogic Security フレームワークと他のタイプのセキュリティ プロバイダと対話します。

注意 : 図 9-1 と以下の説明文で、「他のタイプのセキュリティ プロバイダ」とは WebLogic 認証プロバイダとカスタム認証プロバイダです。ただし、「カスタム セキュリティ プロバイダからのイベントの監査」で説明するように、これらはどのようなタイプのセキュリティ プロバイダでも構いません。

  1. リソース コンテナは、ログイン リクエストの一部としてユーザの認証情報 (ユーザ名とパスワードの組み合わせなど) を WebLogic Security フレームワークに渡します。
  2. WebLogic Security フレームワークは、ログイン リクエストに関連付けられている情報をコンフィグレーション済みの認証プロバイダに渡します。
  3. 認証サーバが認証サービスを提供するほかに監査イベントをポストする場合、各認証プロバイダは以下のことを行います。
    1. AuditEvent オブジェクトをインスタンス化します。AuditEvent オブジェクトには、少なくとも監査対象のイベント タイプに関する情報と監査の重大度レベルが含まれます。
    2. 注意 : AuditEvent クラスを作成するには、認証プロバイダの実行時クラスに AuditEvent SSPI または AuditEvent コンビニエンス インタフェースを実装し、さらにカスタム認証プロバイダがすでに実装している必要がある他のセキュリティ サービス プロバイダ インタフェース (SSPI) を実装します。監査イベントと AuditEvent SSPI/コンビニエンス インタフェースについては、「監査イベントの作成」を参照してください。

    3. 監査サービスに対して信頼性のある呼び出しを行って、AuditEvent オブジェクトを渡します。
    4. 注意 : これが信頼性のある呼び出しである理由は、監査サービスがすでにセキュリティ プロバイダの initialize メソッドに「Provider」 SSPI 実装の一部として追加されているからです。詳細については、「「Provider」SSPI の目的について」を参照してください。

  4. 監査サービスは、AuditEvent オブジェクトをコンフィグレーション済みの監査プロバイダの実行時クラス (AuditChannel SSPI 実装) に渡し、監査イベントの記録を有効にします。
  5. 注意 : 認証プロバイダの AuditEvent コンビニエンス インタフェースの実装によっては、監査リクエストがイベントに対して 1 回だけでなく、イベントの前後にも発生する場合があります。

  6. 監査プロバイダの実行時クラスは、AuditEvent オブジェクトから取得したイベント タイプ、監査重大度、およびその他の情報 (監査コンテキストなど) を利用して監査レコードの内容を管理します。一般に、コンフィグレーション済みの監査プロバイダの 1 つだけがすべての監査条件を満たします。
  7. 注意 : 監査重大度レベルと監査コンテキストの詳細については、それぞれ「監査重大度」と「監査コンテキスト」を参照してください。

  8. AuditEvent オブジェクト内に認証プロバイダによって指定された監査条件が満たされると、該当する監査プロバイダの実行時クラス (AuditChannel SSPI 実装) はそれらの実装によって指定された方法で監査レコードを書き出します。
  9. 注意 : AuditChannel SSPI 実装によっては、監査条件が満たされたときに監査記録がファイルやデータベースなどの永続ストレージ メディアに書き込まれます。

 


ContextHandler MBean の実装

ContextHandlerMBean weblogic.management.security.audit.ContextHandler は、ContextHandler がサポートする一連の属性を提供します。このインタフェースを使用すると、コンテキスト ハンドラ エントリを標準的な方法でサポートする監査プロバイダを管理できます。

監査プロバイダ MBean は、ContextHandlerMBean の MBean を必要に応じて実装できます。監査プロバイダは、この MBean を使用して、サポートされているアクティブな ContextHandler エントリを判別します。

WebLogic Server Administration Console は、監査プロバイダがこの MBean を実装したことを検出して、これらの属性を使用するためのタブを自動的に提供します。

注意 : ContextHandlerMBean に関連付けられている ContextHandler エントリは、監査プロバイダに渡される AuditEvent の内容に関連付けられることも、影響を与えることもありません。プロバイダが受信した AuditEvent には、ContextElement が指定された ContextHandler が含まれる場合も含まれない場合もあります。ContextHandler が含まれている場合、監査プロバイダは、ContextHandlerMBean 管理インタフェースを実装したかどうかに関係なく AuditEvent から ContextHandler を取得できます。特に、AuditContext getContext メソッドは、ContextHandlerMBean によって実装されたコンテキスト ハンドラに依存しない weblogic.security.service.ContextHandler インタフェースを返します。

AuditContext getContext メソッドを補完する形で ContextHandlerMBean コンテキスト ハンドラを実装するように選択することもできます (サンプルの SimpleSampleAuditProviderImpl.java では、この方法を取っています)。ただし、これは必須ではありません。

ContextHandlerMBean のメソッド

ContextHandlerMBean インタフェースは、以下のメソッドを実装しています。

getActiveContextHandlerEntries

public String[] getActiveContextHandlerEntries()

現在、監査プロバイダが処理するようにコンフィグレーションされている ContextHandler エントリを返します。

getSupportedContextHandlerEntries

public String[] getSupportedContextHandlerEntries()

監査プロバイダによってサポートされているすべての ContextHandler エントリのリストを返します。

setActiveContextHandlerEntries

public void setActiveContextHandlerEntries(String[] types) throws InvalidAttributeValueException

監査プロバイダで処理する ContextHandler エントリを設定します。指定したエントリは、監査プロバイダの SupportedContextHandlerEntries 属性に列挙する必要があります。

例 : ContextHandlerMBean の実装

コード リスト 9-3 は、サンプル監査プロバイダの実行時クラスである SimpleSampleAuditProviderImpl.java クラスを示しています。このサンプル監査プロバイダは、ContextHandlerMBean を実装するように拡張されています。

MBean 定義ファイル (MDF) は、WebLogic MBeanMaker ユーティリティで、MBean タイプを構成する Java ファイルを生成するために使用される XML ファイルです。すべての MDF では、作成済みのセキュリティ プロバイダのタイプに固有の必須 SSPI MBean を拡張する必要があり、さらに任意 SSPI MBean を実装することができます。

コード リスト 9-1 は、必要に応じて ContexthandlerMBean を実装するサンプル監査プロバイダに関連する MDF 内の主要なセクションを示しています。

コード リスト 9-1 例 : SimpleSampleAuditor.xml

<MBeanType
Name = "SimpleSampleAuditor"
DisplayName = "SimpleSampleAuditor"
Package = "examples.security.providers.audit.simple"
Extends = "weblogic.management.security.audit.Auditor"
Implements = "weblogic.management.security.audit.ContextHandler"
PersistPolicy = "OnUpdate"
>
...
<MBeanAttribute
Name = "SupportedContextHandlerEntries"
Type = "java.lang.String[]"
Writeable = "false"
Default = "new String[] {
"com.bea.contextelement.servlet.HttpServletRequest" }"
Description = "List of all ContextHandler entries
supported by the auditor."
/>

 


カスタム監査プロバイダを開発する必要があるか

WebLogic Server のデフォルト (つまりアクティブな) セキュリティ レルムには WebLogic 監査プロバイダが含まれています。WebLogic 監査プロバイダは、WebLogic Security フレームワークで内部的に決定された、複数のセキュリティ リクエストの情報を記録します。また、WebLogic 監査プロバイダはこれらのセキュリティ リクエストに関連付けられているイベント データとリクエストの結果も記録します。

WebLogic 監査プロバイダは、その writeEvent メソッドで、コンフィグレーション済みの監査重大度レベルとそのメソッドに渡された AuditEvent オブジェクトに格納されている監査重大度に基づいて監査上の決定を行います (AuditEvent オブジェクトの詳細については、「監査イベントの作成」を参照)。

注意 : WebLogic 監査プロバイダのコンフィグレーション済み監査重大度レベルは、WebLogic Server Administration Console で変更できます。詳細については、『WebLogic Server のセキュリティ』の「WebLogic 監査プロバイダのコンフィグレーション」を参照してください。

一致するものがある場合、WebLogic 監査プロバイダは、WL_HOME\yourdomain\ yourserver\logs ディレクトリにある DefaultAuditRecorder.log ファイルに監査情報を書き込みます。コード リスト 9-2 は、DefaultAuditRecorder.log ファイルからの抜粋です。

コード リスト 9-2 DefaultAuditRecorder.log ファイル : 出力例

認証に成功した場合。[SUCCESS]
#### Audit Record Begin <Feb 23, 2005 11:42:17 AM>  <Severity=SUCCESS> 
<<<Event Type = Authentication Audit Event><TestUser><AUTHENTICATE>>> Audit
Record End ####
認証に失敗した場合。[FAILURE]
#### Audit Record Begin <Feb 23, 2005 11:42:01 AM>  <Severity=FAILURE> 
<<<Event Type = Authentication Audit Event><TestUser><AUTHENTICATE>>> Audit
Record End ####When Operations are invoked.[SUCCESS]
ユーザ アカウントのロックが解除された場合。[SUCCESS]
#### Audit Record Begin <Feb 23, 2005 11:42:17 AM>  <Severity=SUCCESS> 
<<<Event Type = Authentication Audit Event><TestUser><USERUNLOCKED>>> Audit
Record End ####
認可リクエストに成功した場合。[SUCCESS]
#### Audit Record Begin <Feb 23, 2005 11:42:17 AM>  <Severity=SUCCESS> 
<<<Event Type = Authorization Audit Event ><Subject: 1
Principal = class weblogic.security.principal.WLSUserImpl("TestUser")
><ONCE><<jndi>><type=<jndi>, application=, path={weblogic}, action=lookup>>>
Audit Record End ####

コード リスト 9-2 には、特にロール マネージャ (セキュリティ ロールを扱う WebLogic Security フレームワーク コンポーネント) による監査イベント記録が示されています。この記録から、権限のある管理者が証明書サーブレット内の保護されたメソッドにアクセスしたことがわかります。

WebLogic Server インスタンスが起動するたびに、新しい DefaultAuditRecorder.log ファイルが作成されます (古い DefaultAuditRecorder.log ファイルの名前は DefaultAuditRecorder.log.old に変更されます)。

次の Java 起動オプションを使用すれば、コマンドラインで DefaultAuditRecorder.log の新しいディレクトリを指定することができます。

-Dweblogic.security.audit.auditLogDir=c:\foo

新しいファイルの場所は、c:\foo\yourserver\DefaultAuditRecorder.log になります。

監査情報を WebLogic Security フレームワークで指定された以外のファイル、または DefaultAuditRecorder.log 以外の出力リポジトリ (異なる名前/場所のシンプル ファイルまたは既存のデータベース) に書き込む場合、カスタム監査プロバイダを開発する必要があります。

 


カスタム監査プロバイダの開発方法

WebLogic 監査プロバイダが開発者のニーズを満たさない場合、次の手順でカスタム監査プロバイダを開発することができます。

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

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

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

カスタム監査プロバイダの実行時クラスの作成例については、「例 : サンプル監査プロバイダの実行時クラスを作成する」を参照してください。

AuditProvider SSPI を実装する

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

getAuditChannel

public AuditChannel getAuditChannel();

getAuditChannel メソッドは、AuditChannel SSPI の実装を取得します。MyAuditProviderImpl.java という 1 つの実行時クラスの場合、getAuditChannel メソッドの実装は次のようになります。

return this;

実行時クラスが 2 つの場合、getAuditChannel メソッドの実装は次のようになります。

return new MyAuditChannelImpl;

これは、AuditProvider SSPI を実装する実行時クラスが、AuditChannel SSPI を実装するクラスを取得する場合のファクトリとして使用されるためです。

AuditProvider SSPI と getAuditChannel メソッドの詳細については、WebLogic Server API リファレンス Javadoc を参照してください。

AuditChannel SSPI を実装する

AuditChannel SSPI を実装する際には、以下のメソッドの実装を提供する必要があります。

writeEvent

public void writeEvent(AuditEvent event)

writeEvent メソッドは、渡された AuditEvent オブジェクト内に指定されている情報に基づいて監査記録を書き込みます。AuditEvent オブジェクトの詳細については、「監査イベントの作成」を参照してください。

AuditChannel SSPI と writeEvent メソッドの詳細については、WebLogic Server API リファレンス Javadoc を参照してください。

例 : サンプル監査プロバイダの実行時クラスを作成する

コード リスト 9-3 は、サンプル監査プロバイダの実行時クラスである SimpleSampleAuditProviderImpl.java クラスを示しています。実行時クラスには以下の実装が含まれています。

注意 : コード リスト 9-3 の太字のコードは、クラス宣言とメソッド シグネチャを示しています。

コード リスト 9-3 SimpleSampleAuditProviderImpl.java

package examples.security.providers.audit.simple;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import javax.servlet.http.HttpServletRequest;
import weblogic.management.security.ProviderMBean;
import weblogic.security.service.ContextHandler;
import weblogic.security.spi.AuditChannel;
import weblogic.security.spi.AuditContext;
import weblogic.security.spi.AuditEvent;
import weblogic.security.spi.AuditProvider;
import weblogic.security.spi.SecurityServices;
public final class SimpleSampleAuditProviderImpl implements AuditProvider, AuditChannel
{
   private String description; // このプロバイダの説明
   private PrintStream log; // イベントが書き込まれるログ ファイル
   private boolean handlerEnabled = false;
   private final static String HTTP_REQUEST_ELEMENT = "com.bea.contextelement.servlet.HttpServletRequest";
   public void initialize(ProviderMBean mbean, SecurityServices services)
   {
     System.out.println("SimpleSampleAuditProviderImpl.initialize");
     SimpleSampleAuditorMBean myMBean = (SimpleSampleAuditorMBean)mbean;
     description = myMBean.getDescription() + "\n" + myMBean.getVersion();
     String [] activeHandlerEntries = myMBean.getActiveContextHandlerEntries();
     if (activeHandlerEntries != null) {
       for (int i=0; i<activeHandlerEntries.length; i++) {
         if ((activeHandlerEntries[i] != null) &&
             (activeHandlerEntries[i].equalsIgnoreCase(HTTP_REQUEST_ELEMENT))) {
           handlerEnabled = true;
           break;
        }
       }
     }
     File file = new File(myMBean.getLogFileName());
     System.out.println("\tlogging to " + file.getAbsolutePath());
     try {
       log = new PrintStream(new FileOutputStream(file), true);
     } catch (IOException e) {
       throw new RuntimeException(e.toString());
     }
   }
   public String getDescription()
   {
     return description;
   }
   public void shutdown()
   {
     System.out.println("SimpleSampleAuditProviderImpl.shutdown");
     log.close();
   }
   public AuditChannel getAuditChannel()
   {
     return this;
   }
   public void writeEvent(AuditEvent event)
   {
     log.println(event);

     if ((!handlerEnabled) || (!(event instanceof AuditContext)))
       return;

     AuditContext auditContext = (AuditContext)event;
     ContextHandler handler = auditContext.getContext();

     if ((handler == null) || (handler.size() == 0))
       return;
     Object requestValue = handler.getValue("com.bea.contextelement.servlet.HttpServletRequest");
     if ((requestValue == null) || (!(requestValue instanceof HttpServletRequest)))
       return;
     HttpServletRequest request = (HttpServletRequest) requestValue;
     log.println(" " + HTTP_REQUEST_ELEMENT + " method: " + request.getMethod());
     log.println(" " + HTTP_REQUEST_ELEMENT + " URL: " + request.getRequestURL());
     log.println(" " + HTTP_REQUEST_ELEMENT + " URI: " + request.getRequestURI());
     return;
   }
}

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

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

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

注意 : これらの手順の実行方法は、いくつかのサンプル セキュリティ プロバイダ (dev2dev Web サイトの「Code Samples: WebLogic Server」で入手可能) に示されています。

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

MBean 定義ファイル (MDF) を作成する

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

  1. サンプル監査プロバイダの MDF をテキスト ファイルにコピーします。
  2. 注意 : サンプル監査プロバイダの MDF は、SampleAuditor.xml という名前です。

  3. MDF で <MBeanType> 要素と <MBeanAttribute> 要素の内容をカスタム監査プロバイダに合わせて修正します。
  4. カスタム属性および操作 (つまり、<MBeanAttribute> および <MBeanOperation> 要素) を MDF に追加します。
  5. ファイルを保存します。

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

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

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

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

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

カスタム監査プロバイダの MDF にカスタム操作を含めない場合、次の手順に従います。

  1. 新しい DOS シェルを作成します。
  2. 次のコマンドを入力します。
  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 が入力されるたびに、新しい出力ファイル群が生成されます。filesdir で指定された場所にファイルがすでに存在する場合には、既存のファイルが上書きされることが通知され確認を求められます。

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

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

カスタム操作を追加する場合

カスタム監査プロバイダの MDF にカスタム操作を含める場合、質問に答えながら手順を進めてください。

  1. 新しい DOS シェルを作成します。
  2. 次のコマンドを入力します。
  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 が入力されるたびに、新しい出力ファイル群が生成されます。<filesdir> で指定された場所にファイルがすでに存在する場合には、既存のファイルが上書きされることが通知され確認を求められます。

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

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

  4. MDF のすべてのカスタム操作に対して、メソッド スタブを使用してメソッドを実装します。
  5. ファイルを保存します。
  1. WebLogic MBeanMaker によって現在のメソッドの実装が上書きされないように、既存の MBean 実装ファイルを一時ディレクトリにコピーします。
  2. 新しい DOS シェルを作成します。
  3. 次のコマンドを入力します。
  4. java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker

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

    xmlfile が入力されるたびに、新しい出力ファイル群が生成されます。filesdir で指定された場所にファイルがすでに存在する場合には、既存のファイルが上書きされることが通知され確認を求められます。

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

    注意 : WebLogic MBeanMaker では MDF を一度に 1 つ処理します。したがって、MDF (つまり監査プロバイダ) が複数ある場合には、このプロセスを繰り返す必要があります。

  5. MDF を変更して元の MDF にはないカスタム操作を含めた場合、メソッド スタブを使用してメソッドを実装します。
  6. 完成した、つまりすべてのメソッドを実装した MBean 実装ファイルを保存します。
  7. この MBean 実装ファイルを、WebLogic MBeanMaker が MBean タイプの実装ファイルを配置したディレクトリにコピーします。このディレクトリは、手順 3 で filesdir として指定しました (手順 3 の結果として WebLogic MBeanMaker で生成された MBean 実装ファイルがオーバーライドされる)。

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

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

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

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

WebLogic MBeanMaker で MDF を実行して中間ファイルを作成し、MBean 実装ファイルを手作業で編集してその中にメソッドの内容を記述したら、カスタム監査プロバイダの MBean ファイルと実行時クラスを MBean JAR ファイル (MJF) にパッケージ化する必要があります。このプロセスも、WebLogic MBeanMaker によって自動化されます。

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

  1. 新しい DOS シェルを作成します。
  2. 次のコマンドを入力します。
  3. 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 つのスキーマも生成されます。そのスキーマに関連付けるネームスペースを選択できます。それにより、使用しているカスタム クラスと BEA のカスタム クラスとの衝突を防ぐことができます。ネームスペースのデフォルトは 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 を WebLogic Server の 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 タイプ (その結果としてカスタム セキュリティ プロバイダ) に対する適切なパーミッションを付与することも必要になります。詳細については、『WebLogic Security プログラミングの概要』の「Java セキュリティ マネージャを使用しての WebLogic リソースの保護」を参照してください。

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

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

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

カスタム セキュリティ プロバイダのコンフィグレーションは管理タスクですが、カスタム セキュリティ プロバイダの開発者が行うこともできます。この節では、カスタム監査プロバイダのコンフィグレーション担当者向けの重要な情報を取り上げます。

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

監査重大度をコンフィグレーションする

コンフィグレーション手順では、監査プロバイダの監査重大度を下記の重大度レベルのいずれかに設定する必要があります。

この重大度は、監査プロバイダが監査を開始するレベルを表します。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次