ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティ・プロバイダの開発
11gリリース1(10.3.6)
B61623-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

14 バージョン管理可能なアプリケーションのプロバイダ

バージョン管理可能なアプリケーションは、アプリケーション・アーカイブ(EARファイル)のマニフェスト内で指定されているアプリケーション・アーカイブのバージョンを持つアプリケーションです。バージョン管理可能なアプリケーションはサイドバイサイドでデプロイでき、同時にアクティブにすることが可能です。バージョン管理可能なアプリケーションを使用すると、アプリケーションの複数のバージョンを利用できます。各バージョンには、個別のセキュリティ制約を設定できます。

バージョン管理可能なアプリケーションのプロバイダSSPIを使用すると、バージョンが作成および削除されたときに、アプリケーションのバージョン管理をサポートするすべてのセキュリティ・プロバイダに通知できます。また、バージョンが1つしかないアプリケーションが削除された場合にも、アプリケーションのバージョン管理をサポートするすべてのセキュリティ・プロバイダに通知できます。

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

バージョン管理可能なアプリケーションの概念

バージョン管理可能なアプリケーションの再デプロイメントは、以降の再デプロイメントで同じアーカイブ・バージョンが指定されている場合を除き、必ずサイドバイサイド・バージョンを介して行われます。ただし、バージョン管理可能なアプリケーションは、複数のバージョンが競合することなく並列的に実行できるように作成する必要があります。つまり、バージョン管理可能なアプリケーションは、アプリケーション名などの固有性を想定しないようにする必要があります。たとえば、アプリケーションが、データベース表やLDAPストアなどのグローバル・データ構造の一意のキーとしてアプリケーション名を使用する場合、アプリケーションは、その代わりにアプリケーション識別子を使用するよう変更する必要があります。

本番再デプロイメントは、構成されたセキュリティ・プロバイダがアプリケーション・バージョニング・セキュリティSSPIをサポートしている場合にのみ許可されます。セキュリティ・レルムのすべての認可プロバイダ、ロール・マッピング・プロバイダ、および資格証明マッピング・プロバイダは、アプリケーションのデプロイにバージョンを使用するために、アプリケーションのバージョン管理をサポートする必要があります。

アプリケーションでアプリケーション・バージョンを割り当てる方法の詳細は、『Oracle WebLogic Serverアプリケーションの開発』の本番再デプロイメント用アプリケーションの開発に関する項を参照してください。

バージョン管理可能なアプリケーションのプロセス

セキュリティ・プロバイダでアプリケーションのバージョニングをサポートするには、バージョン管理可能なアプリケーションのSSPIを実装する必要があります。WebLogicセキュリティ・フレームワークは、アプリケーションのバージョンが作成および削除されるときに、プロバイダがアプリケーションのバージョンに関連付けられたデータを作成、コピー、または削除するのに必要なアクションを実行できるように、バージョン管理可能なアプリケーションのプロバイダSSPIを呼び出します。実行するアクションは、プロバイダによって異なります。

また、バージョンが1つしかないアプリケーションが削除されたときにも、プロバイダがクリーンアップ・アクションを実行できるように、バージョン管理可能なアプリケーション・プロバイダSSPIが呼び出されます。

WebLogicセキュリティ・フレームワークは、新しいバージョンのアプリケーション識別子とアプリケーション・データのソースとして使用されるバージョンのアプリケーション識別子をバージョン管理可能なアプリケーション・プロバイダに渡します。ソース識別子が指定されなかった場合、アプリケーションの初期バージョンが作成中です。

バージョン管理可能なアプリケーションのカスタム・プロバイダを開発する必要があるか

WebLogic Serverの初期状態のセキュリティ・プロバイダ(認可、ロール・マッピング、および資格証明マッピング・プロバイダ)は、アプリケーション・バージョニングSSPIをサポートしています。新しいバージョンが作成されると、新しいアプリケーションのバージョンを表す新しいリソース識別子でカスタマイズされたすべてのロール、ポリシー、および資格証明マップのクローンが作成されます。さらに、アプリケーションのバージョンが削除されると、削除されたバージョンに関連付けられたリソースが削除されます。

認可、ロール・マッピング、または資格証明マッピング用にカスタム・セキュリティ・プロバイダを開発する際に、バージョン管理されたアプリケーションをサポートする必要がある場合は、バージョン管理可能なアプリケーションのSSPIを実装する必要があります。

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

バージョン管理可能なアプリケーションSSPIをサポートする必要がある場合、次の手順でバージョン管理可能なアプリケーションのカスタム・プロバイダを開発できます。

適切なSSPIによるランタイム・クラスの作成

ランタイム・クラスを作成する前に、以下の作業が必要です。

この情報を理解し、設計に関する判断を下したら、次の手順でバージョン管理可能なアプリケーションのカスタム・プロバイダのランタイム・クラスを作成します。

VersionableApplication SSPIの実装

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

  • createApplicationVersion

    void createApplicationVersion(String appIdentifier, String sourceAppIdentifier) 
    

    新しいアプリケーションのバージョンの作成をマークします。バージョンが作成された時点で、WebLogic Serverドメイン内の1つのサーバーで(WebLogic Serverドメイン内の管理サーバーでのみ)呼び出されます。WebLogicセキュリティ・フレームワークは、新しいバージョンのアプリケーション識別子(appIdentifier)とアプリケーション・データのソースとして使用されるバージョンのアプリケーション識別子(sourceAppIdentifier)をcreateApplicationVersionメソッドに渡します。ソース識別子が指定されなかった場合、アプリケーションの初期バージョンが作成中です。

  • deleteApplication

    void deleteApplication(String appName) 
    

    バージョンが1つしかないアプリケーションの削除をマークします。アプリケーションが削除された時点で、WebLogic Serverドメイン内の管理サーバーでのみ呼び出されます。

  • deleteApplicationVersion

    void deleteApplicationVersion(String appIdentifier) 
    

    アプリケーションのバージョンの削除をマークします。バージョンが削除された時点で、WebLogic Serverドメイン内の管理サーバーでのみ呼び出されます。

例:サンプルVersionableApplicationプロバイダのランタイム・クラスの作成

例14-1では、バージョン管理可能なアプリケーションのSSPIがサンプル認可プロバイダでどのように実装されるかを示します。

例14-1 SimpleSampleAuthorizationProviderImpl

public final class SimpleSampleAuthorizationProviderImpl
  implements DeployableAuthorizationProviderV2, AccessDecision, VersionableApplicationProvider
:
:
public void createApplicationVersion(String appId, String sourceAppId)
{
System.out.println("SimpleSampleAuthorizationProviderImpl.createApplicationVersion");
System.out.println("\tapplication identifier\t= " + appId);
System.out.println("\tsource app identifier\t= " + ((sourceAppId != null) ? sourceAppId : "None"));
// create new policies when existing application is specified
    if (sourceAppId != null) {
      database.clonePoliciesForApplication(sourceAppId,appId);
    }

public void deleteApplicationVersion(String appId)
{
System.out.println("SimpleSampleAuthorizationProviderImpl.deleteApplicationVersion");
System.out.println("\tapplication identifier\t= " + appId);

// clear out policies for the application
database.removePoliciesForApplication(appId);
}

public void deleteApplication(String appName)
{
System.out.println("SimpleSampleAuthorizationProviderImpl.deleteApplication");
System.out.println("\tapplication name\t= " + appName);

// clear out policies for the application
database.removePoliciesForApplication(appName);
}

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

カスタム認可、ロール・マッピング、および資格証明マッピング・プロバイダのMBeanタイプを生成する際には、バージョン管理可能なアプリケーションのプロバイダのMBeanも実装する必要があります。ApplicationVersionerMBeanはマーカー・インタフェースなので、メソッドはありません。

例14-2では、SimpleSampleAuthorizer MBean定義ファイル(MDF)がApplicationVersionerMBean MBeanをどのように実装するかを示します。

例14-2 ApplicationVersionerMBeanを実装する

<MBeanType
 Name          = "SimpleSampleAuthorizer"
 DisplayName   = "SimpleSampleAuthorizer"
 Package       = "examples.security.providers.authorization.simple"
 Extends       = "weblogic.management.security.authorization.DeployableAuthorizer"
 Implements    = "weblogic.management.security.ApplicationVersioner"
 PersistPolicy = "OnUpdate"
>

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

WebLogic MBeanMakerを使用してMDFを実行して中間ファイルを生成し、MBean実装ファイルを編集して適切なメソッドの実装を提供したら、バージョン管理可能なアプリケーションのプロバイダを含むカスタム認可プロバイダ、ロール・マッピング・プロバイダ、資格証明マッピング・プロバイダのMBeanファイルとランタイム・クラスをMBean JARファイル(MJF)にパッケージ化する必要があります。

カスタム認可プロバイダの場合、この手順は、「WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成」で説明します。

カスタム・ロール・マッピング・プロバイダの場合、この手順は、「WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成」で説明します。

カスタム資格証明マッピング・プロバイダの場合、この手順は、「WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成」で説明します。

管理コンソールによるバージョン管理可能なアプリケーションのカスタム・プロバイダの構成

バージョン管理可能なアプリケーションのカスタム・プロバイダを構成するということは、アプリケーション・バージョン・サービスを必要とするアプリケーションがアクセス可能なセキュリティ・レルムにバージョン管理可能なアプリケーションのカスタム・プロバイダを追加するということです。

カスタム・セキュリティ・プロバイダの構成は管理タスクですが、カスタム・セキュリティ・プロバイダの開発者が行うこともできます。

WebLogic Server管理コンソールを使用してバージョン管理可能なアプリケーションのカスタム・プロバイダを構成する手順は、『Oracle WebLogic Serverの保護』のWebLogicセキュリティ・プロバイダの構成に関する項で説明されています。