15 Oracle Web Services Managerリポジトリの管理
トピック:
15.1 OWSMリポジトリの概要
Oracle Web Services Manager (WSM)は、MDSリポジトリを使用してポリシー、アサーション・テンプレート、ポリシーの使用状況データなどの、OWSMメタデータを格納します。OWSMリポジトリは、データベースとして(本番用)またはファイル・システム内のファイルとして(JDeveloperでの開発用)利用できます。
このリリースでサポートされているデータベースのリストは、Oracle Fusion Middlewarのサポートされるシステム構成を参照してください。
OWSMリポジトリ内では、各ポリシーがURIを持ち、それを評価してパスが形成され、そのパスにポリシーを含む特定のXMLドキュメントが置かれます。OWSMはMDSカスタマイズ機能を使用しません。そのためすべてのポリシーは完全なドキュメントとして格納されます。MDSには指定されたドキュメントの複数のバージョンを格納する機能がありますが、OWSMはポリシー強制時に最新バージョンのみにアクセスします。
MDSリポジトリの管理の詳細は、『Oracle Fusion Middlewareの管理』のMDSリポジトリの管理に関する項を参照してください。
15.2 OWSMリポジトリの登録
アプリケーションをOWSMリポジトリなどのMDSリポジトリにデプロイする前に、リポジトリをOracle WebLogicドメインに登録する必要があります。
OWSMリポジトリを登録する手順は、次のとおりです。
15.3 ポリシーのインポートとエクスポートの異なるメカニズムの理解
ポリシーのOWSMリポジトリへのインポートやリポジトリからのエクスポートは、Enterprise Manager Fusion Middleware ControlとWebLogic Scripting Tool (WLST)コマンドのどちらでも行えます。
Fusion Middleware Controlでは、ユーザーが作成した1つ以上のポリシーまたはアサーション・テンプレートを、zipアーカイブ・ファイルに選択的にインポートしたりエクスポートしたりできます。事前定義済のポリシーやアサーション・テンプレートなど、読取り専用ドキュメントは、ターゲット環境に同じドキュメントがあるため、インポートまたはエクスポートできません。Fusion Middleware Controlを使用したポリシーとアサーション・テンプレートのインポートおよびエクスポートの手順は、次の項で説明されています。
WLSTコマンドのimportWSMArchive
およびexportWSMRepository
を使用すると、複数のOWSMドキュメントをOWSMリポジトリに簡単に直接インポートまたはエクスポートできます。これらのコマンドの使用の詳細は、「WLSTを使用したリポジトリへのドキュメントのインポートおよびエクスポートについて」を参照してください。
いずれかのメカニズムを使用してポリシーをインポートまたはエクスポートする場合、操作はOWSMポリシー・マネージャ・アプリケーションのインスタンスを介してルーティングされます。実行時にポリシーのリクエストが行われたときには、常に最新のポリシーが提供されることがポリシー・マネージャによって保証されます。そのため、常に最新のポリシーが強制されます。
15.4 WLSTを使用したリポジトリへのドキュメントのインポートおよびエクスポートについて
OWSMドキュメントおよびアプリケーション・メタデータをOWSMリポジトリにインポートまたはエクスポートするには、importWSMArchive
、exportWSMRepository
およびexportWSMAppMetadata
コマンドを使用します。
次の項で、これについて説明します。
このWLSTコマンドおよびその議論に関する情報は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービス・カスタムWLSTコマンドに関する項を参照してください。
15.4.1 WLSTを使用したリポジトリからのドキュメントのエクスポート
サポートされているZIPアーカイブ・ファイルにリポジトリからドキュメントをエクスポートするには、exportWSMRepository
コマンドを使用します。
exportWSMRepository(archive,[documents=None],[includeShared='false'])
次の点に注意してください。
-
事前定義済のポリシーやアサーション・テンプレートなど、読取り専用ドキュメントは、ターゲット環境に同じドキュメントがすでにあるため、エクスポートできません。
-
archive
引数で指定したアーカイブがすでに存在する場合、既存のアーカイブにドキュメントをマージするか、既存のアーカイブを上書きするか、操作を取り消すかを選択できます。 -
アーカイブにエクスポートされるドキュメントを指定するには、オプションの
documents
引数を使用します。ドキュメントを指定しない場合、ポリシーおよびポリシー・セットが含まれる共有ドキュメントのみがエクスポートされます。読取り専用ドキュメントはエクスポートできないため、エクスポートには、カスタムまたはクローニングされた共有ポリシーのみが含まれます。この引数を空の文字列['']
として指定すると、ポリシーおよびポリシー・セットが含まれるすべての共有ドキュメント、アプリケーション・メタデータおよび構成ドキュメントがエクスポートされます。エクスポートするドキュメントのリストを指定したり、検索式を使用してリポジトリ内の特定のドキュメントを検索したりできます。たとえば、URIがtest/wss_またはtest/wss11_で始まる、ユーザーが作成したポリシーのリストをエクスポートするには、次のように入力します。
wls:/jrfServer_domain/serverConfig>exportWSMRepository('/tmp/test2.zip',['policies:test/wss_%','policies:test/wss11_%']) Exporting "/policies/test/wss11_x509_token_with_message_protection_service_policy_test" Exporting "/policies/test/wss_username_token_over_ssl_service_policy_Test" Successfully exported "2" documents.
-
エクスポート時に同じアーカイブの一部として共有ドキュメント(ポリシー・セットおよびwsm-assemblyドキュメント内でポリシー参照として指定されるドキュメント)を含めるには、オプションの
includeShared
引数を使用します。読取り専用ドキュメントはエクスポートできないため、エクスポートにはカスタムまたはクローンの共有ポリシーのみが含まれます。デフォルトは、false
です。たとえば、アクティブ・ポリシー・セット・ドキュメントおよびそれらが使用するポリシーをエクスポートする手順は、次のとおりです。
wls:/jrfServer_domain/serverConfig>exportWSMRepository('/tmp/repository-active.jar', ['policysets:global/%'], true) Exporting "/policies/test/wss_username_token_over_ssl_service_policy_Test" Exporting "/policysets/global/all-domains-default-web-service-policies" Exporting "/policysets/global/app-only-web-service-policies" Exporting "/policysets/global/migrate_example" Successfully exported "4" documents.
-
リポジトリ内のドキュメントを変更した場合、アーカイブ・ファイル内でそのドキュメントを更新できます。たとえば、module-web-service-policiesという名前のポリシー・セットを変更した場合、次のコマンドでアーカイブ内のポリシー・セットを更新できます。
wls:/jrfServer_domain/serverConfig>exportWSMRepository('/tmp/repository-backup.jar', ['/policysets/global/module-web-service-policies'])
15.4.2 WLSTを使用したリポジトリからのアプリケーション・メタデータのエクスポート
サポートされているZIPアーカイブ・ファイルにリポジトリからアプリケーション・メタデータをエクスポートするには、exportWSMAppMetadata
コマンドを使用します。
exportWSMAppMetadata(archive,[applications=None],[includeShared='false'])
次の点に注意してください。
-
このコマンドは、Oracle Infrastructure WebサービスおよびRESTful Webサービスでのみサポートされます。このコマンドは、ADF DC Webサービス・クライアントおよびJava EE Webサービスではサポートされません。
-
archive
引数で指定したアーカイブがすでに存在する場合、既存のアーカイブにドキュメントをマージするか、既存のアーカイブを上書きするか、操作を取り消すかを選択できます。上書きオプションを選択すると、元のアーカイブはバックアップされ、バックアップ・アーカイブの場所を示すメッセージが表示されます。 -
メタデータがアーカイブにエクスポートされるアプリケーションを指定するには、オプションの
applications
引数を使用します。アプリケーション名を指定しない場合、ドメイン内のすべてのアプリケーションのメタデータがエクスポートされます。検索式のリストを指定して、リポジトリ内の特定のアプリケーションのメタデータを検索できます。これを行うには、/{PLATFORM_NAME}
/{DOMAIN_NAME}
/{APPLICATION_NAME}
という構文を使用します。 -
共有ドキュメント(wsm-assemblyドキュメント内でポリシー参照として指定されるドキュメント)をエクスポートに含めるかどうかを指定するには、オプションの
includeShared
引数を使用します。デフォルトは、false
です。読取り専用ドキュメントはエクスポートできないため、エクスポートにはカスタムまたはクローンの共有ポリシーのみが含まれます。
たとえば、次のコマンドでは、名前がjaxws
で始まるアプリケーションのアプリケーション・メタデータを、tmp
ディレクトリ内のapplications.zip
ファイルにエクスポートします。
wls:/jrfServer_domain/serverConfig>exportWSMRepository('/tmp/applications.zip',['/WLS/base_domain/jaxws%'])
Exporting "\assembly\WLS\base_domain\jaxwsejb30ws\jaxwsejb\wsm-assembly.xml"Successfully exported "1" documents.
15.4.3 WLSTを使用したリポジトリへのドキュメントのインポート
リポジトリにドキュメントをインポートするには、importWSMArchive
コマンドを使用します。
importWSMArchive(archive,[map=none],[generateMapFile='false'])
次の点に注意してください。
-
事前定義済のポリシーやアサーション・テンプレートなど、読取り専用ドキュメントは、ターゲット環境に同じドキュメントがすでにあるため、インポートできません。
-
archive
引数は必須であり、インポートされるドキュメントのリストが格納されるアーカイブ・ファイルへのパスを指定します。 -
オプションで、
map
引数を使用して、ポリシー・セット内の物理情報をソース環境からターゲット環境へマップする方法が記載されている、ファイルの場所を指定できます。たとえば、マップ・ファイルを使用して、ポリシー・セット内のリソース・スコープ式を更新してターゲット環境に一致させることができます(たとえば、Domain("foo")=Domain("bar")
)。マップ・ファイルを指定し、それが存在しない場合、操作は失敗し、エラーが表示されます。 -
オプションの
generateMapFile
引数をtrue
に設定して、map
引数で指定される場所にサンプルのマップ・ファイルを作成できます。この引数をtrue
に設定すると、どのドキュメントもインポートされません。デフォルトは、false
です。ファイルが作成された後に、任意のテキスト・エディタを使用して編集できます。マップ・ファイルには、アーカイブ・ファイルに指定されているドキュメント名および対応する
attachTo
値が含まれます。attachTo
値は、新しい環境に対応するように更新できます。ドキュメント名に対してマッピングの更新が不要な場合は、そのエントリを削除するか、文字#
を使用してコメント化することができます。注意:
リポジトリへのドキュメントのインポート時、OWSMは
attachTo
値のみを検証します。値が無効な場合、ポリシー・セットは無効化されます。マップ・ファイル内の他のテキストは検証されません。たとえば、/tmp/repository-active.jarのマップ・ファイル/tmp/mapfile.txtを生成するには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig>importWSMArchive('/tmp/repository-active.jar', '/tmp/mapfile.txt', true) Successfully generated "Documents Mappings" file at "/tmp/mapfile.txt"
マップ・ファイル/tmp/mapfile.txtを使用してアクティブ・ポリシー・セット・アーカイブ/tmp/repository-active.jarをインポートするには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig>importWSMArchive('/tmp/repository-active.jar', '/tmp/mapfile.txt')
Importing "META-INF/policysets/global/all-domains-default-web-service-policies"
Importing "META-INF/policysets/global/app-only-web-service-policies"
Importing "META-INF/policysets/global/migrate_example"
Successfully imported "3" documents
15.5 JDeveloperで使用するためにポリシーをOWSMリポジトリからエクスポート
ポリシーは、アプリケーションの開発およびデプロイのサイクルにおいて様々なステージ間(開発から本番へなど)で移行できます。ポリシーの移行には、importWSMArchive
コマンドおよびexportWSMRepository
コマンドを使用することをお薦めします。
これについては、Webサービスの管理のポリシーの移行に関する項で説明されています。
JDeveloperでは、カスタム・ポリシーを次のデフォルトのポリシー格納場所に追加できます。
JDEV_USER_HOME
\system12.1.2.0.x.x.x\DefaultDomain\store\gmds\owsm
設定されていない場合、JDEV_USER_HOME
のデフォルトはC:\Users\user-dir\AppData\Roaming\JDeveloper
になります。
このデフォルトのポリシーの格納場所では、OWSMポリシーはpolicies/
policyname
というディレクトリ構造で格納する必要があります。
注意:
このディレクトリ構造の中で、policyname
には、ポリシーが存在するディレクトリが含まれています。たとえば、Oracleで提供される事前定義済のすべてのポリシーは、oracle/wss_http_token_service_policy
などのoracle/
ディレクトリに含まれています。
カスタム・ポリシーは、事前定義済ポリシーが含まれている/oracle
ディレクトリとは別のディレクトリ(たとえばmycompany/mypolicy
)に格納することをお薦めします。
ポリシー・ファイルをOWSMリポジトリからWLSTまたはFusion Middleware Controlを使用してエクスポートすると、次のディレクトリ構造を使用したZipアーカイブにエクスポートされます。
META-INF/policies/
policyname
JDeveloper環境でポリシーを使用するには、ZipアーカイブのMETA-INF
ディレクトリの中身を、前述のデフォルトのJDeveloperのポリシー格納場所に抽出する必要があります。このようにすると、policies/
policyname
という構造が維持され、JDeveloper環境でポリシーが使用できるようになります。このディレクトリ構造が維持されないと、ポリシーをJDeveloper環境で使用できません。
15.6 リポジトリ内のポリシーへのパッチ適用について
OWSMリポジトリにパッチ適用するには、Fusion Middleware ControlまたはWLSTコマンドを使用できます。
これについては、ポリシーのインポートとエクスポートの異なるメカニズムの理解で説明されています。
ポリシーを作成または更新する場合、リポジトリをパッチするときに使用可能なシナリオとして次の2つが考えられます。
注意:
事前定義済のポリシーは読取り専用であり、更新または上書きできません。
-
新しいポリシーを作成するか、新しいポリシーURIを使用する既存のユーザー定義ポリシーを更新します。このシナリオでは、リポジトリのパッチは、新しいファイルがインストールに追加されたかのように機能します。結果として、新しいポリシーを使用する予定のコンポーネントのみが影響を受けます。ロードすると、ポリシーはすべてのアプリケーションで使用できるようになります。一般的には、新しいポリシーURIを使用する方が望ましいモデルといえます。というのは、ポリシーは通常それが行う動作を示すように名前が付けられてるためです。
-
新しいポリシーを作成するか、既存のポリシーURIを使用する既存のユーザー定義ポリシーを更新します。このシナリオでは、リポジトリのパッチは、既存のファイルが新しいバージョンで上書きされたかのように機能します。そのため、既存のポリシーを使用しているすべてのコンポーネントに影響します。ロードすると、すべてのアプリケーションで新しいバージョンのポリシーが使用されます。既存のURIの再使用は、通常はポリシーの動作の変更箇所が少ない場合にのみ行われます。WLSTコマンドを使用してリポジトリをパッチする場合は、サーバーを再起動して必ず最新バージョンのポリシーが強制されるようにする必要があることに注意してください。Fusion Middleware Controlを使用する場合は、再起動する必要はありません。
15.7 OWSMリポジトリのバックアップの作成とリストア
OWSMリポジトリをバックアップおよびリストアするには、WLSTコマンドのexportWSMRepository
およびimportWSMArchive
を使用します。
これらのコマンドの詳細は、「WLSTを使用したリポジトリへのドキュメントのインポートおよびエクスポートについて」を参照してください。
たとえば、リポジトリ内のすべてのOWSMアーティファクトをバックアップするには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig>exportWSMRepository ('/tmp/repository-backup.jar')
Exporting "/assertiontemplates/oracle/binding_authorization_template"
Exporting "/assertiontemplates/oracle/binding_permission_authorization_template"
.
.
.
Exporting "/policies/oracle/binding_authorization_denyall_policy"
Exporting "/policies/oracle/binding_authorization_permitall_policy"
.
.
.
Exporting "/policysets/global/all-domains-default-web-service-policies"Exporting "/policysets/global/app-only-web-service-policies"
Successfully exported "170" documents.
バックアップからリポジトリをリストアするには、importWSMArchive
コマンドを使用してすべてのOWSMリポジトリ・アーティファクトをインポートします。
たとえば、前述の例で作成したバックアップ・ファイルを使用してリポジトリをリストアするには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig>importWSMArchive ('/tmp/repository-backup.jar')
Importing "META-INF/assertiontemplates/oracle/binding_authorization_template"Importing "META-INF/assertiontemplates/oracle/binding_permission_authorization_template"
.
.
.
Importing "META-INF/policies/oracle/binding_authorization_denyall_policy"
Importing "META-INF/policies/oracle/binding_authorization_permitall_policy"
.
.
.
Importing "META-INF/policysets/global/all-domains-default-web-service-policies"Importing "META-INF/policysets/global/app-only-web-service-policies"
Successfully imported "170" documents.
このWLSTコマンドおよびその議論に関する情報は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービス・カスタムWLSTコマンドに関する項を参照してください。
15.8 OWSMリポジトリのアップグレード
OWSMリポジトリを11gから12cにアップグレードできます。
事前定義済のポリシーやアサーション・テンプレートなど、12cリリースで配布される事前定義済OWSMドキュメントは、すべて読取り専用です。11gから12cにアップグレードする際、次のことが行われます。
-
変更されていない既存の事前定義済ドキュメントは、12cの読取り専用バージョンに置換されます。
-
12cで導入された新規の事前定義済ドキュメントが追加されます。
-
変更された既存の事前定義済ドキュメントおよびユーザーが作成したドキュメントは、上書きされず、変更もされません。
常にOracle事前定義済ドキュメントの最新バージョンを使用できるようにするために、次のことをお薦めします。
注意:
resetWSMRepository
コマンドも、事前定義済ポリシーおよびアサーション・テンプレートのバージョン番号を更新します。
カスタム・ドキュメントを含めたリポジトリ内のすべてのドキュメントを削除する方法は、「OWSMリポジトリの再構築」を参照してください。
15.9 OWSMリポジトリの再構築
状況によっては、OWSMリポジトリ内のすべてのドキュメントを削除し、Fusion Middlewareインストール付属の最新のセットと置換した方がよい場合もあります。たとえば、新しいプロジェクトをテスト環境で開始する場合、リポジトリの中身を元の状態にリセットできると便利なことがあります。
注意:
この項で説明されている手順では、クローンを作成したドキュメントおよびユーザー作成によるドキュメントを含め、OWSMリポジトリ内のすべてのドキュメントが削除されます。Oracle提供の事前定義済ドキュメントのみを削除および置換する手順は、「OWSMリポジトリのアップグレード」を参照してください。
OWSMリポジトリを再構築するには、次の手順を実行します。
注意:
ポリシーを削除する前に、ポリシーがポリシー・サブジェクトにアタッチされていないことを確認することをお薦めします。
15.10 単一のOWSMリポジトリ・インスタンスの複数のドメインの構成
一元化されたOWSMリポジトリを使用して、複数のドメインのポリシー、アサーション・テンプレート、ポリシーの使用状況データなどのOracle Web Services Managerメタデータを、インポート、エクスポート、バックアップおよびリストアできます。各ドメインには、共有OWSMリポジトリに接続される固有のOWSMポリシー・マネージャが含まれる場合があります。
-
ポリシーおよびアサーション
-
グローバル・ポリシー・セット
-
トークン発行者信頼
注意:
構成ドキュメントのカスタマイズはドメイン固有であるため、ドメインのデフォルト構成ドキュメントに行われた変更は複数のドメインで共有できません。複数のドメインのOWSMリポジトリを構成するには、次を実行します。
前提条件
単一のOWSMリポジトリ・インスタンスのドメインを構成する前に、次の操作を実行する必要があります。
-
リポジトリ作成ユーティリティ (RCU)を使用して、Metadata Services (MDS)、Oracle Platform Security Services (OPSS)、Service Table (STB)およびAudit Services Append (IAU_APPEND)スキーマをインストールする必要があります。『Oracle Fusion Middleware Oracle Fusion Middleware Infrastructureのインストールと構成』のデータベース・スキーマの作成に関する項を参照してください。
注意:
-
作成中のドメインに関連付けられるデータベース・スキーマは、新しいものである必要があり、以前に使用したものにすることはできません。
-
一元化されたリポジトリで管理される各ドメインのスキーマを作成する必要があります。
-
-
ドメインが単一のデータベース・インスタンスを共有している場合、『Oracle Fusion Middleware Oracle Platform Security Servicesによるアプリケーションの保護』のデータベース・インスタンスの共有に関する項の説明に従って、ドメインをデータベースに関連付ける必要があります。
-
『Oracle Fusion Middleware Oracle Fusion Middleware Infrastructureのインストールと構成』のWebLogicドメインの構成に関する項の説明に従って、構成ウィザードを使用してOWSMドメインを構成します。
注意:
管理サーバー画面から、ユーザーが展開可能なサーバー・グループを「サーバー・グループ」ドロップダウン・リストの管理サーバーに割り当てていることを確認します。 -
「Fusion Middleware Controlを使用したサービス表エントリとコンポーネントの確認」の説明に従って、Fusion Middleware Controlを使用して、サービス表エントリおよびコンポーネントを確認します。
-
「Fusion Middleware Controlを使用したエージェント・バインディングの確認」の説明に従って、OWSMエージェントがドメインの適切なポリシー・マネージャURLに正しく接続されていることを確認します。
ドメインの構成