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

目次
目次

戻る
戻る
 
次へ
次へ

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

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

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

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

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

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

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

アプリケーションでアプリケーション バージョンを割り当てる方法の詳細については、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションの開発』の「プロダクション再デプロイメント用アプリケーションの開発」を参照してください。

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

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

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

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

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

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 Security フレームワークは、新しいバージョンのアプリケーション識別子 (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"));
// 既存のアプリケーションを指定したときに新しいポリシーを作成する
    if (sourceAppId != null) {
      database.clonePoliciesForApplication(sourceAppId,appId);
    }

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

// アプリケーションのポリシーを削除する
database.removePoliciesForApplication(appId);
}

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

// アプリケーションのポリシーを削除する
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) の作成」で説明します。

Administration Console によるバージョン管理可能なアプリケーションのカスタム プロバイダのコンフィグレーション

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

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

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