ヘッダーをスキップ
Oracle® Fusion Middlewareアプリケーション・セキュリティ・ガイド
11gリリース1(11.1.1)
B56235-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

6 セキュア・アプリケーションのデプロイ

アプリケーションをOracle WebLogic Serverにデプロイするには、Oracle WebLogic Server管理コンソール、Oracle Enterprise Manager Fusion Middleware ControlまたはOracle JDeveloperのいずれかのツールを使用します。

アプリケーションをデプロイするための推奨ツールは、アプリケーションのタイプと、アプリケーションが開発中フェーズと開発後フェーズのどちらのフェーズにあるかによって異なります。この章で説明する推奨事項は、Oracle ADFアプリケーションと、OPSSを使用するJavaEEアプリケーションにのみ当てはまります。

開発時には、Oracle JDeveloperを使用してアプリケーションを組込みOracle WebLogic Serverにデプロイすることが普通です。テスト環境または本番環境に移行したアプリケーションは、通常、Fusion Middleware ControlまたはOracle WebLogic Server管理コンソールを使用してデプロイします。

この章では、Oracle ADFアプリケーションまたはPure JavaEEアプリケーションのデプロイ時に実行する管理タスクを中心に説明します。最後の項では、アプリケーションを手動でパッケージ化する場合のみを対象として、セキュアJavaEEアプリケーションのパッケージ要件について説明します。

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

補足ドキュメント

デプロイの詳細は、Oracle Fusion Middlewareの管理者ガイドの第8章「アプリケーションのデプロイ」を参照してください。

開発から本番に至るまでのアプリケーションのセキュリティ・ライフサイクル全体の概要は、『Oracle Fusion Middlewareセキュリティ概要』を参照してください。

開発段階のOracle ADFアプリケーションの保護の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。

開発サイクルの概要は、第13.1.1項「開発サイクル」を参照してください。

web.xmlweblogic-application.xmlなど、アプリケーションのセキュリティ管理と構成に関連してEARファイルに含まれているファイルの詳細は、第14章「OPSSを使用するためのJavaEEアプリケーションの手動構成」を参照してください。

6.1 概要

Oracle ADFアプリケーションをリモートのOracle WebLogic Serverにデプロイするまでの一般的な手順は次のとおりです。

このフローを図示すると次のようになります。

jisec014.gifについては周囲のテキストで説明しています。

6.2 デプロイのためのツールの選択

この章で検討するアプリケーションのタイプは、JavaEEアプリケーションです。JavaEEアプリケーションは、さらにPure JavaEEアプリケーションとOracle Fusion Middleware ADFアプリケーションに分類できます。この2種類のJavaEEアプリケーションの相違点は、第1.5.1項「シナリオ1: JavaEEアプリケーションの保護」および第1.5.2項「シナリオ2: Oracle ADFアプリケーションの保護」を参照してください。

表6-1は、開発したアプリケーションのデプロイに使用するツールをそのアプリケーションのタイプ別に示しています。

表6-1 開発したアプリケーションをデプロイするためのツール

アプリケーション・タイプ 使用するツール

Pure JavaEEアプリケーション

Oracle WebLogic管理コンソール、Fusion Middleware ControlまたはWLSTコマンド。推奨ツールはOracle WebLogic管理コンソールです。

Oracle ADFアプリケーション

Fusion Middleware ControlまたはWLSTコマンド。推奨ツールはFusion Middleware Controlです。


6.2.1 Fusion Middleware Controlを使用したJavaEEアプリケーションとOracle ADFアプリケーションのデプロイ

この項では、Oracle ADFのセキュリティを使用するアプリケーションまたはOPSSを使用するJavaEEアプリケーションを、Fusion Middleware Controlを使用してデプロイする際に使用できるセキュリティ構成について説明します。具体的には、デプロイ設定の第3段階である「アプリケーション・セキュリティの構成」ページのオプションを中心とした説明です。

このページの外観は、EARファイルのパッケージ内容に応じて次のようになります。

  • アプリケーション・ポリシーを設定したjazn-data.xmlをEARファイルにパッケージ化している場合は、アプリケーション・ポリシーの移行セクションが表示されます。

  • cwallet.ssoに収めた資格証明をEARファイルにパッケージ化している場合は、資格証明の移行セクションが表示されます。

  • 前述のいずれもEARファイルにパッケージ化していない場合、このページにはデフォルトのJava EEセキュリティ・オプションが表示されます。

このページには、ポリシーの移行セクションが表示されます。その一部を次に示します。

emdeploy1.gifについては周囲のテキストで説明しています。

このページの設定は、該当のドメイン・ストアへのアプリケーション・ポリシーと資格証明(アプリケーションEARファイルにパッケージ化される)の移行に関連するものです。次では、これらの設定について説明します。

「アプリケーション・ポリシー移行」の設定

これらの設定では、次のシナリオでポリシーの移行を制御します。

  • アプリケーションを初めてデプロイする場合、通常はドメイン・ポリシー・ストアにアプリケーション・ポリシーを移行します。そのためには、「アプリケーション・ポリシー移行」領域で「追加」を選択します。

    なんらかの理由で移行しない場合は「無視」を選択します。オプションの「上書き」も使用できます。

  • 以前のデプロイでアプリケーション・ポリシーを移行済であることを前提としてアプリケーションを再デプロイしている場合、パッケージ化したポリシーをドメイン内の既存のポリシーにマージするには「追加」を選択し、ポリシーを移行しないようにするには「無視」を選択します。

    アプリケーションを再デプロイするときに、ドメインに設定した現在のアプリケーション・ポリシーを変更しない場合、つまり以前のデプロイの際に変更したポリシー・ストアの内容を保持する場合は、「無視」を選択します。

  • 追加」を選択すると、移行する権限とロールを指定できます。基本的な相違点は、ADFアプリケーションのロールと権限(本番環境で必要)と開発時のみのロールと権限(本番環境では不要)との差です。

    ADFアプリケーションのロールと権限を移行して、開発時のみのセキュリティ・ロールと権限を移行しないようにするには、「アプリケーション・ロールおよび権限のみを移行します。アイデンティティ・ストア・アーティファクトは無視します。」チェック・ボックスを選択します。通常、本番環境へのデプロイ時には、このチェック・ボックスを選択します。このボックスを選択した場合は、アプリケーションをデプロイした後でそのアプリケーション・ロールをエンタープライズ・グループにマップする必要があります。

  • 追加」を選択した場合に、アプリケーション・ポリシーの移行先とする特定のストライプ(アプリケーション名を名前としたデフォルトのストライプとは異なるストライプ)を指定するには、「アプリケーション・ストライプID」ボックスにそのストライプの名前を入力します。


    アプリケーション・ストライプについて:

    ドメイン・ポリシー・ストアは、論理的に複数のストライプにパーティション化されており、ファイルsystem-jazn-data.xmlの<applications>要素で指定したアプリケーション名ごとにストライプが1つずつあります。各ストライプで、特定のアプリケーションに関するドメイン・ポリシーのサブセットを特定します。
    一般的な使用例

    このページでは、次の2つの一般的なシナリオで指定するポリシーの移行について説明します。

    • EARファイル内の一貫性のない指定を解決する場合: EARファイルに記述された指定が検証されます。web.application.xmlweb.xmlおよびejb-jar.xmlの各ファイル(EARファイルにパッケージ化されているファイル)で指定されているアプリケーション・ストライプに一貫性がない(互いに一致しない)場合は、使用する新しいストライプ名を入力するか、ドロップダウン・リストから選択します。EARファイルにあるどの指定値より、ここで指定した値が優先され、その値が移行先として実行時環境で使用されます。

    • 1つのアプリケーション・ストライプを複数のアプリケーションで共有できるようにする場合: 既存のストライプ(別のアプリケーションで移入したストライプ)をアプリケーションで共有する場合は、そのストライプを指定できます。既存のアプリケーション・ストライプを共有している場合、「上書き」オプションの使用には注意が必要です。


  • 何も指定しない場合のデフォルト設定は、「追加」(デプロイの場合)と「無視」(再デプロイの場合)です。

「アプリケーション資格証明移行」の設定

これらの設定では、次のシナリオで資格証明の移行を制御します。

  • アプリケーションを初めてデプロイする場合、通常はドメイン資格証明ストアにアプリケーション資格証明を移行します。そのためには、「アプリケーション資格証明移行」領域で「追加」を選択します。

  • いずれの場合も(初めてのデプロイでもその後のデプロイでも)、なんらかの理由で移行しない場合は「無視」を選択します。


    注意:

    資格証明の移行を無視すると、資格証明を使用するアプリケーション・コードが動作しない場合があります。通常は、マップとキーが同じで値が異なる資格証明を手動で作成するという前提の下で「無視」オプションを選択します。

  • WebLogicサーバーを開発モードで稼働している場合にのみ、「上書き」オプションを使用できます。

  • 何も入力しない場合は、デフォルトの「無視」になります。

6.3 テスト環境へのOracle ADFアプリケーションのデプロイ

Oracle ADFアプリケーションはJAAS認可を使用するJavaEEアプリケーションで、通常はOracle JDeveloperを使用して開発し、テストします。この環境により、開発者はアプリケーションをパッケージ化し、このOracle JDeveloperと統合した組込みOracle WebLogic Serverにデプロイできます。テスト環境または本番環境にアプリケーションを移行するとき、デプロイにはOracle Fusion Middleware Controlを使用し、そのフレームワークで提供されるOracle ADFのセキュリティ機能すべてを活用します。詳細は、「概要」を参照してください。

Fusion Middleware Controlを使用してOracle ADFアプリケーションをデプロイする方法の具体的な手順は、次の項を参照してください。

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

6.3.1 テスト環境へのデプロイ

デプロイ時に使用できるセキュリティ・オプションは、「Fusion Middleware Controlを使用したJavaEEアプリケーションとOracle ADFアプリケーションのデプロイ」を参照してください。

Fusion Middleware Controlを使用してOracle ADFアプリケーションをテスト環境にデプロイするときには次の手順が発生します。

ポリシー管理

  • アプリケーションとパッケージ化されたアプリケーション固有のポリシーは、アプリケーションがデプロイされるときにドメイン資格証明ストアに自動的に移行されます。

    Oracle JDeveloperでは、この移行を実行するために必要な構成が自動的に書き込まれます。

資格証明管理

  • アプリケーションとパッケージ化されたアプリケーション固有の資格証明は、アプリケーションがデプロイされるときにドメイン資格証明ストアに自動的に移行されます。

    Oracle JDeveloperでは、この移行を実行するために必要な構成が自動的に書き込まれます。

  • 移行中にLDAPリポジトリにアクセスするために必要なブートストラップ資格証明は、Fusion Middleware Controlによって自動的に生成されます。手動設定の詳細は、第14.4.7項「ブートストラップ資格証明の手動による指定」を参照してください。

アイデンティティ管理

アプリケーションとパッケージ化されたアイデンティティは移行されません。ドメイン管理者はドメイン認証プロバイダを構成し(管理コンソールを使用)、必要に応じて、環境にあるアイデンティティ(エンタープライズ・ユーザーおよびグループ)を更新して、エンタープライズ・ユーザーおよびグループにアプリケーション・ロールをマップする(Fusion Middleware Controlを使用)必要があります。

その他の考慮事項

  • LDAPベースのセキュリティ・ストアを持つドメインにデプロイする場合は、アプリケーションのデータの整合性を保持するために、アプリケーションをクラスタ・レベルでデプロイするか、1つの管理対象サーバーにのみデプロイすることをお薦めします。

  • アプリケーションを複数の管理対象サーバーにデプロイするときは、管理サーバーを含めてデータが予期したとおりに移行されるようにしてください。

  • ドメイン・ストアの再関連付けは頻繁に行う操作ではなく、通常は、アプリケーションをデプロイする前のドメインを設定するときに行います。手順の詳細は、第7.2.1項「Fusion Middleware Controlを使用したドメイン・ストアの再関連付け」を参照してください。

6.3.1.1 テスト環境へのデプロイ後の一般的な管理タスク

テスト環境へのアプリケーションのデプロイ後、管理者はFusion Middleware Controlまたは管理コンソールを使用していつでも次のタスクを実行できます。


注意:

Fusion Middleware Controlを使用して、本番モードで実行しているサーバーからアプリケーションをアンデプロイすると、そのアプリケーション固有のポリシーがドメイン・ポリシー・ストアから自動的に削除されます。また、他のツールを使用してアプリケーションをアンデプロイする場合は、そのアプリケーション固有のポリシーを手動で削除する必要があります。

資格証明は、アプリケーションをアンデプロイしても削除できません。資格証明は、アプリケーションとパッケージ化することで有効になりますが、アプリケーションをアンデプロイしても資格証明は削除されません


6.4 標準JavaEEアプリケーションのデプロイ

OPSSを使用せずにJavaの標準認可を使用するJavaEEアプリケーションを保護するには、管理コンソールまたはWLSTスクリプト(コマンドラインまたはスクリプト・モード)を使用して管理面で保護する方法と、デプロイメント・ディスクリプタを使用してプログラムで保護する方法の2通りがあります。

Oracle WebLogic ServerにデプロイしたJavaEEアプリケーションは、WebLogicリソースとなります。したがって、管理者は、他のリソースの場合と同じ方法で、デプロイされたアプリケーションにセキュリティを設定できます。

デプロイ手順の詳細は、Oracle Fusion Middlewareの管理者ガイドのJavaEEアプリケーションのデプロイとアンデプロイに関する第8.3項を参照してください。

WLSTコマンドを使用したアプリケーションのデプロイの詳細は、『Oracle Fusion Middleware WebLogic Scripting Tool Command Reference』のデプロイメント・コマンドに関する項を参照してください。

WebLogic Serverのデプロイメント機能の概要は、『Oracle Fusion Middleware Deploying Applications to Oracle WebLogic Server』のWebLogic Serverのデプロイメントに関する項を参照してください。

関連ドキュメント

アプリケーション・リソースの保護の詳細は、次のドキュメントに記載されています。

Oracle Fusion Middleware Securing Resources Using Roles and Policies for Oracle WebLogic Server

Oracle Fusion Middleware Oracle WebLogic Server管理コンソールのヘルプ

Oracle Fusion Middleware Securing WebLogic Web Services for Oracle WebLogic Server

Oracle Fusion Middleware Programming Security for Oracle WebLogic Server

6.5 テスト環境から本番環境への移行

次の推奨事項は、JAAS認可を使用するJavaEEアプリケーションにのみ当てはまります。このようなアプリケーションには、Oracle Application Development Frameworkアプリケーション、Oracle SOAアプリケーション、Oracle WebCenterアプリケーションなどがあります。標準認可を使用するJavaEEアプリケーションは、この推奨事項の対象外です。標準認可を使用するJavaEEアプリケーションのデプロイは、「標準JavaEEアプリケーションのデプロイ」を参照してください。

アプリケーションをデプロイするための推奨ツールはFusion Middleware Controlです。後述の項で説明する操作を実行するユーザーは、LDAPリポジトリでスキーマをシードする権限など、適切な権限を持っている必要があります。

第5.2.1項「新しい本番環境の設定」の説明に従って本番環境が設定されていることを前提とします。

新しい本番環境への移行は、ポリシー・プロバイダおよび資格証明プロバイダ以外のプロバイダの移行、ポリシー・プロバイダおよび資格証明プロバイダの移行、監査ポリシーの移行という3段階に分かれています。それぞれの段階の詳細は次の各項を参照してください。

6.5.1 ポリシー・プロバイダおよび資格証明プロバイダ以外のプロバイダの移行

本番環境でのプロバイダ(ポリシー・プロバイダおよび資格証明プロバイダ以外)の構成は、テスト環境で使用した構成と同じものとする必要があります。この構成として、次のものが考えられます。

  • ユーザーのプロビジョニングなどのアイデンティティ・ストアの構成(WebLogic管理コンソールを使用)

  • 発行者リストのSAML構成

  • テスト環境で実行したあらゆる特定のプロバイダの構成


注意:

Oracle WebLogic Serverには、packコマンドやunpackコマンドなど、ドメインの作成に役立つ様々なツールが用意されています。詳細は、『Oracle Fusion Middleware Creating Templates and Domains Using the Pack and Unpack Commands』を参照してください。

6.5.1.1 アイデンティティの手動による移行

アイデンティティ・データは、WLSTコマンドmigrateSecurityStoreを使用してソース・リポジトリからターゲット・リポジトリに手動で移行できます。この移行が必要になる状況の例として、ファイルベースのアイデンティティ・ストアを使用するテスト環境からLDAPベースのアイデンティティ・ストアを使用する本番環境に移行する場合があります。

このコマンドはオフラインなので、実行中のサーバーに接続しなくても機能します。したがって、引数configFileで渡す構成ファイルは実際のドメイン構成ファイルである必要はなく、移行のソース・リポジトリとターゲット・リポジトリを指定するようにアセンブルするだけで済みます。

後述のコマンドは、インタラクティブ・モードでもスクリプト・モードでも実行できます。インタラクティブ・モードの場合は、コマンドライン・プロンプトにコマンドを入力すると、応答が即座に表示されます。スクリプト・モードの場合、コマンドはテキスト・ファイル(ファイル名拡張子は.py)に記述するので、シェル・スクリプトのディレクティブのように入力なしで実行できます。


重要:

シェル内でセキュリティ関連のWLSTコマンドを起動する前に、次のサンプルで説明するように、wlst.shスクリプトを実行する必要があります。
> sh $ORACLE_HOME/common/bin/wlst.sh

これにより、必要なJARがクラス・パスに確実に追加されます。新しいシェル内で前述のスクリプトを実行しないと、WLSTコマンドが使用できない状態になります。

オンライン・コマンドを実行する前に、次のようにサーバーに接続します。

>java weblogic.WLST
>connect('servername', 'password', 'localhost:portnum')

スクリプト・モードおよびインタラクティブ・モードの構文

アイデンティティを移行するには、次のスクリプト構文(1番目の記述)またはインタラクティブな構文(2番目の記述)を使用します(ここでは、見やすくするために各引数をそれぞれ別の行に記述しています)。

migrateSecurityStore -type idStore
                     -configFile jpsConfigFileLocation
                     -src srcJpsContext
                     -dst dstJpsContext
                     [-dstLdifFile LdifFileLocation]
migrateSecurityStore(type="idStore", configFile="jpsConfigFileLocation", src="srcJpsContext", dst="dstJpsContext", [dstLdifFile="LdifFileLocation"])
                     

引数(dstLdifFile以外はすべて必須)の意味は次のとおりです。

  • configFileでは、構成ファイルjps-config.xmlの位置を、このコマンドを実行するディレクトリを基準とした相対パスで指定します。

  • srcでは、引数configFileで渡す構成ファイルで移行元ストアを指定しているjps-contextの名前を指定します。

  • dstでは、引数configFileで渡す構成ファイルで移行先ストアを指定している別のjps-contextの名前を指定します。移行先ストアには、XMLベースのストアまたはOracle Internet Directoryサーバーで支援されるLDAPベースのストアを指定できます。それ以外のストアは移行先としてサポートされていません。

  • dstLdifFileでは、作成したLDIFファイルの相対パスまたは絶対パスを指定します。移行先がLDAPベースのOracle Internet Directoryストアである場合にのみ必要です。LDIFファイルはLDAPサーバーにはインポートされません。

srcおよびdstで渡すコンテキストは、渡される構成ファイル内で定義し、一意である必要があります。これら2つのコンテキストから、このコマンドは移行に関与するソース・リポジトリおよびターゲット・リポジトリの位置を特定します。

LDIFファイルを生成した後、通常は、このファイルを手動で編集して、LDIFファイルの最終的なインポート先となるLDAPリポジトリの属性をカスタマイズします。

6.5.2 デプロイ時のポリシーおよび資格証明の移行

本番環境では、ポリシー・ストアおよび資格証明ストアをLDAPベースのリポジトリに再関連付けすることを強くお薦めします。テスト用のポリシー・ストアおよび資格証明ストアもLDAPであったとしても、本番用のLDAPはテスト用のLDAPとは別のものとすることが前提となっています。ストアを再関連付けする方法の詳細は、第7.2.1項「Fusion Middleware Controlを使用したドメイン・ストアの再関連付け」を参照してください。

ポリシーおよび資格証明の移行は、アプリケーションのデプロイ時に自動的に処理できるほか、アプリケーションのデプロイ前またはデプロイ後に手動で実行することもできます。

WebLogic Serverにデプロイしたすべてのアプリケーションについて、(アプリケーション移行に関する特定の設定とは関係なく)ポリシーと資格証明の自動移行を無効にするには、システム・プロパティjps.deployment.handler.disabledをTRUEに設定します。

アプリケーションを本番環境にデプロイする際、管理者は次の点を把握している必要があります。

アプリケーションEARにパッケージ化したポリシーまたは資格証明がテスト環境で変更されているかどうか

この点を把握していることを前提として、アプリケーションを本番環境にデプロイする手順は次のとおりです。

  1. Fusion Middleware Controlで次のオプションを使用して、アプリケーションのEARファイルを本番環境にデプロイします。

    • ポリシー(アプリケーションまたはシステム)がテスト環境で変更されている場合は、Fusion Middleware Controlの「アプリケーション・セキュリティの構成」ページの「アプリケーション・ポリシー移行」領域で「無視」オプションを選択して、デプロイ時にポリシーを移行するオプションを無効にします。ポリシーが変更されていない場合は、「追加」を選択します。


      注意:

      テスト環境でのアプリケーション・ロールの変更がテスト用のエンタープライズ・グループへのマッピングにまで及んでいても、「追加」(アプリケーション・ポリシーの移行)を選択し、同時にアプリケーション・ロールおよび権限のみを移行します。アイデンティティ・ストア・アーティファクトは無視します。」チェック・ボックスを選択できます。

      この組合せを選択した場合、アプリケーション・ポリシーは移行されますが、テスト用のエンタープライズ・グループへのマッピングは無視されます。後述の手順3で、アプリケーション・ロールを本番用のエンタープライズ・グループに再マップする必要があります。


    • 資格証明がテスト環境で変更されている場合は、Fusion Middleware Controlの「アプリケーション・セキュリティの構成」ページの「アプリケーション資格証明移行」領域で「無視」オプションを選択して、デプロイ時に資格証明を移行するオプションを無効にします。資格証明が変更されていない場合は、「追加」を選択します。

  2. 次の説明に従い、コマンドmigrateSecurityStoreを使用して、変更済のデータを移行します。

    • アプリケーション・ポリシーの移行で「無視」を選択した場合は、テスト用のLDAPから本番用のLDAPにアプリケーション・ポリシーおよびシステム・ポリシーを移行します。「ポリシーの手動による移行」のサンプルを参照してください。

    • アプリケーション資格証明の移行で「無視」を選択した場合は、テスト用のLDAPから本番用のLDAPに資格証明を移行します。「資格証明の手動による移行」のサンプルを参照してください。

  3. いずれの場合も、必要に応じ、Fusion Middleware Controlを使用してアプリケーション・ロールを本番用のエンタープライズ・グループにマップします。

  4. Fusion Middleware Controlを使用して、本番環境の管理資格証明が有効であることを確認します。特に、テスト用のパスワードと本番用のパスワードを照合してください。必要に応じて、本番用のデータを適宜変更します。


注意:

アプリケーションのデプロイでポリシーを移行したときに、GUIDを再作成しなくても元のGUIDが保持されるようにアプリケーションを構成する方法があります。

この設定は、手動でのみ構成できます。詳細は、第14.4.1項「ポリシーの移行を制御するパラメータ」でパラメータjps.approle.preserveguidの説明を参照してください。


6.5.2.1 ポリシーの手動による移行

デフォルトでは、コマンドmigrateSecurityStoreでGUIDが再作成されるので、このコマンドを使用して大量のポリシーを移行すると長時間を要する場合があります。そのため、テスト環境から本番環境への移行時には、Oracle Internet Directoryの一括操作を使用する別の手順によるポリシーと資格証明の移行を検討するようお薦めします。詳細は、「大量のポリシー・ストアおよび資格証明ストアの移行」を参照してください。ただし、移行してもGUIDを保持できるように指定する方法もあります。詳細は、第7.3.2項「コマンドmigrateSecurityStoreを使用したポリシーの移行」で引数preserveAppRoleGuidの説明を参照してください。

コマンドmigrateSecurityStoreを使用して手動でポリシーを移行するには、移行元と移行先を指定している構成ファイルをアセンブルする必要があります。

次のt2p-policies.xmlという構成ファイルの完全なサンプルは、LDAPポリシーおよびXMLポリシーの移行元とLDAPポリシーの移行先の指定を示しています。

<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<jpsConfig xmlns="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd" schema-major-version="11" schema-minor-version="1">
 
<serviceProviders>
 <serviceProvider class="oracle.security.jps.internal.credstore.ssp.SspCredentialStoreProvider" name="credstoressp" type="CREDENTIAL_STORE">
 <description>Bootstrap credential provider</description>
 </serviceProvider>
 
 <serviceProvider class="oracle.security.jps.internal.policystore.xml.XmlPolicyStoreProvider" name="policystore.xml.provider" type="POLICY_STORE">
 <description>XML-based policy store provider</description>
 </serviceProvider>
         
 <serviceProvider class="oracle.security.jps.internal.policystore.ldap.LdapPolicyStoreProvider" name="ldap.policystore.provider" type="POLICY_STORE">
 <property value="OID" name="policystore.type"/>
 <description>LDAP-based policy store provider</description>
 </serviceProvider>
</serviceProviders>
 
<serviceInstances>
 <!-- Source XML-based policy store instance -->
 <serviceInstance location="./system-jazn-data.xml" provider="policystore.xml.provider" name="policystore.xml.source">
 <description>Replace location with the full path of the folder where the system-jazn-data.xml is located in the source file system </description>
 </serviceInstance>
 
<!-- Source LDAP-based policy store instance -->
<serviceInstance provider="ldap.policystore.provider" name="policystore.ldap.source">
 <description>Replace: A. mySourceDomain and mySourceRootName to appropriate
 values according to your source LDAP directory structure; B. OID with OVD, if your source LDAP is OVD; C. ldap://mySourceHost.com:3060 with the URL and port number of your source LDAP</description>
 <property value="OID" name="policystore.type"/>
 <property value="bootstrap" name="bootstrap.security.principal.key"/>
 <property value="cn=mySourceDomain" name="oracle.security.jps.farm.name"/>
 <property value="cn=mySourceRootName" name="oracle.security.jps.ldap.root.name"/>
 <property value="ldap://mySourceHost.com:3060" name="ldap.url"/>
</serviceInstance>
 
 <!-- Destination LDAP-based policy store instance -->
 <serviceInstance provider="ldap.policystore.provider" name="policystore.ldap.destination">
<description>Replace: A. myDestDomain and myDestRootName to appropriate values according to your destination LDAP directory structure; B. OID with OVD, if your destination LDAP is OVD; C. ldap://myDestHost.com:3060 with the URL and port number of your destination LDAP</description>
 <property value="OID" name="policystore.type"/>
 <property value="bootstrap" name="bootstrap.security.principal.key"/>
 <property value="cn=myDestDomain" name="oracle.security.jps.farm.name"/>
 <property value="cn=myDestRootName" name="oracle.security.jps.ldap.root.name"/>
 <property value="ldap://myDestHost.com:3060" name="ldap.url"/>
</serviceInstance>
 
<!-- Bootstrap credentials to access source and destination LDAPs -->
 <serviceInstance location="./bootstrap" provider="credstoressp" name="bootstrap.cred">
  <description>Replace location with the full path of the directory where the bootstrap file cwallet.sso is located; typically found in destinationDomain/config/fmwconfig/</description>
 </serviceInstance>
 </serviceInstances>

 <jpsContexts>
 <jpsContext name="XMLsourceContext">
 <serviceInstanceRef ref="policystore.xml.source"/>
 </jpsContext>

 <jpsContext name="LDAPsourceContext">
 <serviceInstanceRef ref="policystore.ldap.source"/>
 </jpsContext>

 <jpsContext name="LDAPdestinationContext">
 <serviceInstanceRef ref="policystore.ldap.destination"/>
 </jpsContext>
 
 <!-- Do not change the name of the next context -->
 <jpsContext name="bootstrap_credstore_context">
 <serviceInstanceRef ref="bootstrap.cred"/>
 </jpsContext>
 </jpsContexts>
</jpsConfig>

ここではLDAPストアも移行するので、ブートストラップ資格証明ファイルcwallet.ssoが格納されているディレクトリを指定するbootstrap_credstore_contextというjps-contextがファイルに含まれています。

コマンドmigrateSecurityStoreの使用方法を示す後述の例は、次の点を前提としています。

  • コマンドを実行するターゲット・システム上のディレクトリにファイルt2p-policies.xmlが格納されていること。

  • テスト環境と本番環境とでLDAPシステム・ポリシーのディレクトリ構造が同じであること。このディレクトリ構造が異なっている場合は、本番環境のシステム・ポリシー・ディレクトリを、テスト環境側の対応する構造に合せて手動で再構築した後でコマンドを実行します。

これらの前提の下で、テスト用の(移行元)LDAPストアから本番用の(移行先)LDAPストアにポリシーを移行するには、ターゲット・システムで次のようにmigrateSecurityStoreを呼び出します。

>migrateSecurityStore(type="policyStore",configFile="t2p-policies.xml",src="LDAPsourceContext",dst="LDAPdestinationContext")

同様に、テスト用の(移行元)XMLストアから本番用の(移行先)LDAPストアにポリシーを移行するには、ターゲット・システムで次のようにmigrateSecurityStoreを呼び出します。

>migrateSecurityStore(type="policyStore",configFile="t2p-policies.xml",src="XMLsourceContext",dst="LDAPdestinationContext")

6.5.2.2 資格証明の手動による移行

コマンドmigrateSecurityStoreではGUIDが再作成されるので、このコマンドを使用して大量の資格証明を移行すると長時間を要する場合があります。そのため、テスト環境から本番環境への移行時には、Oracle Internet Directoryの一括操作を使用する別の手順でポリシーと資格証明を移行することを検討するようお薦めします。詳細は、「大量のポリシー・ストアおよび資格証明ストアの移行」を参照してください。

コマンドmigrateSecurityStoreを使用して手動で資格証明を移行するには、移行元と移行先を指定している構成ファイルをアセンブルする必要があります。

コマンドmigrateSecurityStoreではGUIDが再作成されるので、大量のデータを移行する場合は長時間を要します。そのため、Oracle Internet Directoryの一括操作を使用する別の手順によるストアの移行を検討することをお薦めします。詳細は、「大量のポリシー・ストアおよび資格証明ストアの移行」を参照してください。

次のt2p-credentials.xmlという構成ファイルの完全なサンプルは、LDAP資格証明およびXML資格証明の移行元とLDAP資格証明の移行先の指定を示しています。

<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<jpsConfig xmlns="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd" schema-major-version="11" schema-minor-version="1">
 
<serviceProviders>
 <serviceProvider class="oracle.security.jps.internal.credstore.ssp.SspCredentialStoreProvider" name="credstoressp" type="CREDENTIAL_STORE">
 <description>File-based credential provider</description>
 </serviceProvider>
 
 <serviceProvider class="oracle.security.jps.internal.credstore.ldap.LdapCredentialStoreProvider" name="ldap.credentialstore.provider" type="CREDENTIAL_STORE">
 <description>LDAP-based credential provider</description>
 </serviceProvider>
</serviceProviders>
 
<serviceInstances>
 <!-- Source file-based credential store instance -->
 <serviceInstance location="myFileBasedCredStoreLocation" provider="credstoressp" name="credential.file.source">
 <description>Replace location with the full path of the folder where the file-based source credential store cwallet.sso is located in the source file system; typically located in sourceDomain/config/fmwconfig/</description>
 </serviceInstance>
 
<!-- Source LDAP-based credential store instance -->
<serviceInstance provider="ldap.credentialstore.provider" name="credential.ldap.source">
 <description>Replace: A. mySourceDomain and mySourceRootName to appropriate
 values according to your source LDAP directory structure; B. OID with OVD, if your source LDAP is OVD; C. ldap://mySourceHost.com:3060 with the URL and port number of your source LDAP</description>
 <property value="OID" name="credstore.type"/>
 <property value="bootstrap" name="bootstrap.security.credential.key"/>
 <property value="cn=mySourceDomain" name="oracle.security.jps.farm.name"/>
 <property value="cn=mySourceRootName" name="oracle.security.jps.ldap.root.name"/>
 <property value="ldap://mySourceHost.com:3060" name="ldap.url"/>
</serviceInstance>
 
 <!-- Destination LDAP-based credential store instance -->
 <serviceInstance provider="ldap.credentialstore.provider" name="credential.ldap.destination">
<description>Replace: A. myDestDomain and myDestRootName to appropriate values according to your destination LDAP directory structure; B. OID with OVD, if your destination LDAP is OVD; C. ldap://myDestHost.com:3060 with the URL and port number of your destination LDAP</description>
 <property value="OID" name="credstore.type"/>
 <property value="bootstrap" name="bootstrap.security.credential.key"/>
 <property value="cn=myDestDomain" name="oracle.security.jps.farm.name"/>
 <property value="cn=myDestRootName" name="oracle.security.jps.ldap.root.name"/>
 <property value="ldap://myDestHost.com:3060" name="ldap.url"/>
</serviceInstance>
 
<!-- Bootstrap credentials to access source and destination LDAPs -->
 <serviceInstance location="./bootstrap" provider="credstoressp" name="bootstrap.cred">
 <description>Replace location with the full path of the directory where the bootstrap file cwallet.sso is located; typically found in destinationDomain/config/fmwconfig/</description>
 </serviceInstance>
 </serviceInstances>

 <jpsContexts>
 <jpsContext name="FileSourceContext">
 <serviceInstanceRef ref="credential.file.source"/>
 </jpsContext>

 <jpsContext name="LDAPsourceContext">
 <serviceInstanceRef ref="credential.ldap.source"/>
 </jpsContext>

 <jpsContext name="LDAPdestinationContext">
 <serviceInstanceRef ref="credential.ldap.destination"/>
 </jpsContext>
 
 <!-- Do not change the name of the next context -->
 <jpsContext name="bootstrap_credstore_context">
 <serviceInstanceRef ref="bootstrap.cred"/>
 </jpsContext>
 </jpsContexts>
</jpsConfig>

ここではLDAPストアも移行するので、ブートストラップ資格証明ファイルcwallet.ssoが格納されているディレクトリを指定するbootstrap_credstore_contextというjps-contextがファイルに含まれています。

コマンドmigrateSecurityStoreの使用方法を示す後述の例は、コマンドを実行するターゲット・システム上のディレクトリにファイルt2p-credentials.xmlが格納されていることを前提とします。

この前提の下で、テスト用の(移行元)LDAPストアから本番用の(移行先)LDAPストアに資格証明を移行するには、ターゲット・システムで次のようにmigrateSecurityStoreを呼び出します。

>migrateSecurityStore(type="credStore",configFile="t2p-credentials.xml",src="LDAPsourceContext",dst="LDAPdestinationContext")

同様に、テスト用の(移行元)XMLストアから本番用の(移行先)LDAPストアに資格証明を移行するには、ターゲット・システムで次のようにmigrateSecurityStoreを呼び出します。

>migrateSecurityStore(type="credStore",configFile="t2p-credentials.xml",src="FileSourceContext",dst="LDAPdestinationContext")

6.5.2.3 大量のポリシー・ストアおよび資格証明ストアの移行

この項で説明する別の手順によるストアの移行は、ソースのGUIDを保持する場合や、コマンドmigrateSecurityStoreによる移行では長時間を要する大量のストアを移行する場合に適しています。

ここでは次のコードで示すように、ファイルjps-config.xmlでサービス・インスタンスを使用して移行元のポリシー・ストアLDAPを構成しているものとします。

<serviceInstance provider="ldap.policystore.provider" name="policystore.ldap">
 <property name="policystore.type" value="OID" />
 <property name="bootstrap.security.principal" value="bootstrap"/>
 <property  name="oracle.security.jps.farm.name" value="cn=base_domain"/>
 <property  name="oracle.security.jps.ldap.root.name" value="cn=mySrcRootName"/>
 <property  name="ldap.url" value="ldap://myCompany.com:7766"/>
</serviceInstance>

重要:

移行先のOracle Internet Directoryがリリース10.1.4.3.0の場合は、次の手順を実行する前にOracle Bug#8417224のパッチを適用する必要があります。使用しているプラットフォームに対応するパッチをダウンロードするには、My Oracle Support(http://myoraclesupport.oracle.com)にアクセスしてください。

一括コマンドを使用して移行元のOracle Internet Directoryストアを移行先のOracle Internet Directoryストアに移行する手順は次のとおりです。

  1. 移行元のOracle Internet Directoryがあるシステムで、次の行に示すようにldfiwriteを実行してLDIFファイルを生成します。

    >ldifwrite connect="srcOidDbConnectStr" baseDN="cn=jpsnode, c=us" ldiffile="srcOid.ldif"
    

    このコマンドでは、ノードcn=jpsnode, c=us以下のすべてのエントリがファイルsrcOid.ldifに書き込まれます。生成したLDIFファイルを、次に実行するコマンドで使用できるように、必要に応じて移行先のOracle Internet Directoryファイル・システムに移動します。

  2. 移行先のOracle Internet Directoryノードで、JPSスキーマがシード済であることを確認します。

  3. 移行元のOracle Internet Directoryシステムで、次の行に示すようにbulkloadを実行してスキーマ・エラーや不適切なエントリがないことを確認します。

    >bulkload connect="dstOidDbConnectStr" check=true generate=true restore=true file="fullPath2SrcOidLdif"
    

    重複するDN(移行元のディレクトリと移行先のディレクトリとの間で共通するエントリ)が検出された場合は、予期しない結果が生じないようにそれらのDNを確認します。

  4. 移行先のDBをバックアップします。次の手順に失敗した場合(その結果、DBが破損した場合)は、DBをリストアする必要があります。

  5. 次の行に示すようにbulkloadを実行して、移行先のOracle Internet Directoryにデータをロードします。

    >bulkload connect="dstOidDbConnectStr" load=true file="fullPath2SrcOidLdif"
    

前述のコマンドの詳細は、『Oracle Fusion Middleware Oracle Internet Directory管理者ガイド』の第14章「一括操作の実行」を参照してください。

6.5.3 監査ポリシーの移行

監査ポリシーを移行するには、次に説明するエクスポート操作とインポート操作を使用します。

まず、次のいずれかのツールを使用して、テスト環境からファイルに監査構成をエクスポートします。

  • Fusion Middleware Control: 「ドメイン名」→「セキュリティ」→「監査ポリシー」に移動し、「エクスポート」をクリックします。

  • WLSTコマンドexportAuditConfig。詳細は、付録C「exportAuditConfig」を参照してください。

次に、次のいずれかのツールを使用して、本番環境にファイルをインポートします。

  • Fusion Middleware Control: 「ドメイン名」→「セキュリティ」→「監査ポリシー」に移動し、「インポート」をクリックします。

  • WLSTコマンドimportAuditConfig。詳細は、付録C「importAuditConfig」を参照してください。

前述のインポートとエクスポートの操作で移行できるのは監査ポリシーのみです。監査データ・ストアの設定は移行できません。テスト環境で監査データソースを構成していた場合は、本番環境でデータソースを構成する手順を繰り返します。詳細は、第11.2.2項「監査データソースの設定」を参照してください。

通常、テスト環境の監査データ・レコードを本番環境に移行することはありませんが、移行する場合は、データベースのインポート/エクスポート・ユーティリティを使用します。詳細は、第11.5.5項「データのインポートとエクスポート」を参照してください。