次の項目では、Oracle WSMリポジトリを管理するためのガイダンスを示します。
Oracle Web Services Manager (WSM)は、MDSリポジトリを使用してOracle WSMメタデータ(ポリシー、アサーション・テンプレート、ポリシー使用状況データなど)を格納します。Oracle WSMリポジトリは、データベース(稼働用)またはファイル・システムのファイル(JDeveloperでの開発用)として使用できます。
このリリースでサポートされているデータベースのリストは、http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
のOracle Fusion Middlewareでサポートされているシステム構成に関する項を参照してください。
Oracle WSMリポジトリ内では、各ポリシーがURIを持ち、それを評価してパスが形成され、そのパスにポリシーを含む特定のXMLドキュメントが置かれます。Oracle WSMはMDSカスタマイズ機能を使用しません。そのためすべてのポリシーは完全なドキュメントとして格納されます。MDSには指定されたドキュメントの複数のバージョンを格納する機能がありますが、Oracle WSMはポリシー強制時に最新バージョンのみにアクセスします。
MDSリポジトリの管理の詳細は、『Oracle Fusion Middleware管理者ガイド』の「MDSリポジトリの管理」で入手できます。
Oracle WSMリポジトリのようなMDSリポジトリにアプリケーションをデプロイする場合、あらかじめリポジトリをOracle WebLogicドメインに登録する必要があります。Oracle WSMリポジトリを登録するには次の手順を実行します。
Enterprise Manager Fusion Middleware ControlまたはWebLogic Scripting Tool (WLST) のコマンドを使用して、Oracle WSMリポジトリにポリシーをインポートしたり、リポジトリからポリシーをエクスポートしたりすることができます。Oracle Enterprise Manager Fusion Middleware Controlを使用すると、1回につき1つのポリシーを選択的にインポートしたりエクスポートしたりすることができます。Fusion Middleware Controlを使用したポリシーのインポートおよびエクスポートの手順は、次の項で説明されています。
WSMリポジトリから複数のOracle WSMドキュメントを直接インポートしたりエクスポートしたりする場合は、WLSTコマンドのimportRepository
およびexportRepository
を使用すると作業がはかどります。これらのコマンドの使用方法の詳細は、「リポジトリ内のドキュメントのインポートおよびエクスポート」を参照してください。
これらのメカニズムのいずれかを使用してポリシーをインポートまたはエクスポートする場合、操作はOracle WSM Policy Managerアプリケーションのインスタンス経由でルーティングされます。ランタイムでポリシーのリクエストが実行された場合、Policy Managerにより最新のポリシーが常に提供されることが保証されているため、実行されるのは常に最新のポリシーです。
注意: 以前のリリースでは、ポリシーのインポートおよびエクスポートのみに使用できるWLSTコマンドはMDS WLSTコマンドのimportMetadata およびexportMetadata でした。Oracle WSMドキュメントに対してこれらのコマンドを使用することはお薦めしません。これは、操作がOracle WSM Policy Managerのインスタンス経由でルーティングされないため、変更内容がOracle Web Services Managerで認識されずに古いポリシーが実行される可能性があるからです。確実に最新のポリシーだけが実行されるためには、Oracle WSM MDSリポジトリの登録先となっているサーバーをすべて再起動する必要があります。 |
Oracle WSMドキュメントをOracle WSMリポジトリにインポートする場合およびリポジトリからエクスポートする場合には、importRepository
およびexportRepository
の各コマンドをそれぞれ使用します。
ドキュメントを、リポジトリから対応するZIPアーカイブ・ファイルにエクスポートするには、exportRepository
コマンドを使用します。
exportRepository(archive,[documents=None],[expandReferences='false'])
次の点に注意してください。
archive
引数を使用して指定したアーカイブがすでに存在する場合は、そのドキュメントを既存のアーカイブにマージするか、既存のアーカイブをオーバーライドするか、操作を取り消すことができます。
オプションのdocuments
引数を使用して、アーカイブにエクスポートするドキュメントを指定することもできます。この引数を指定しない場合は、すべてのアサーション・テンプレート、インテント、ポリシーおよびポリシー・セットがエクスポートされます。リポジトリ内の特定のドキュメントを見つけるには、エクスポート対象であるドキュメントのリストを指定するか検索表現式を使用します。たとえば、URIがoracle/wss10_またはoracle/wss11_で始まるポリシーのリストをエクスポートするには、次のように入力します。
wls:/jrfServer_domain/serverConfig>exportRepository('/tmp/test2.zip',['policies:oracle/wss10_%','policies:oracle/wss11_%'])
Exporting "/policies/oracle/wss10_message_protection_client_policy"
Exporting "/policies/oracle/wss10_message_protection_service_policy"
.
.
.
Exporting "/policies/oracle/wss11_x509_token_with_message_protection_client_policy"
Exporting "/policies/oracle/wss11_x509_token_with_message_protection_service_policy"
Successfully exported "43" documents.
エクスポートの最中にポリシーの参照を展開するには、オプションのexpandReferences
引数を使用します。デフォルトはfalse
です。ドキュメントのリストが提供されていない場合、expandReferences
はtrue
です。
たとえば、アクティブ・ポリシー・セットのドキュメントおよびこのドキュメントで使用するポリシーをエクスポートする場合は次のようになります。
wls:/jrfServer_domain/serverConfig>exportRepository('/tmp/repository-active.jar', ['policysets:global/%'], true)
Exporting "/policies/oracle/wsaddr_policy"
Exporting "/policies/oracle/wss11_saml_or_username_token_with_message_protection_service_policy"
Exporting "/policies/oracle/wss_username_token_service_policy"
Exporting "/policysets/global/all-domains-default-web-service-policies"
Exporting "/policysets/global/app-only-web-service-policies"
Exporting "/policysets/global/migrate_example"
Successfully exported "6" documents.
リポジトリ内のドキュメントを編集する場合には、アーカイブ・ファイルのドキュメントを更新できます。たとえば、module-web-service-policiesというポリシー・セットを編集する場合には、次のコマンドを使用してアーカイブ内のポリシー・セットを更新します。
wls:/jrfServer_domain/serverConfig>exportRepository('/tmp/repository-backup.jar', ['/policysets/global/module-web-service-policies'])
ドキュメントをリポジトリにインポートするには、importRepository
コマンドを使用します。
importRepository(archive,[map=none],[generateMapFile='false'])
次の点に注意してください。
必要となるarchive
引数で、インポート対象のドキュメントのリストが格納されているアーカイブ・ファイルのパスが指定されます。
オプションとしてmap
引数も使用できます。この引数を使用すると、ポリシー・セット内の物理的情報をソース環境からターゲット環境にマッピングする方法を説明したファイルの場所がわかります。たとえば、マップ・ファイルを指定したのにそれが存在せず、操作が失敗してエラー・メッセージが表示される場合のDomain("foo")=Domain("bar")
のように、マップ・ファイルを使用すると、ポリシー・セット内のリソース・スコープ表現式が更新されてターゲット環境と一致することを確認できます。
map
引数で指定された場所でサンプル・マップ・ファイルを作成する場合は、オプションのgenerateMapFile
引数をtrue
に設定することができます。この引数がtrue
に設定されている場合、ドキュメントはインポートされません。デフォルトはfalse
です。ファイル作成後にテキスト・エディタでそれを編集できます。
たとえば、/tmp/repository-active.jarのマップ・ファイル/tmp/mapfile.txtを生成するには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig>importRepository('/tmp/repository-active.jar', '/tmp/mapfile.txt', true)
Successfully generated "Resource Scope Mappings" file at "/tmp/mapfile.txt"
アクティブ・ポリシー・セットのアーカイブ/tmp/repository-active.jarをマップ・ファイル/tmp/mapfile.txtを使用してインポートするには、次のように入力します。
wls:/jrfServer_domain/serverConfig>importRepository('/tmp/repository-active.jar', '/tmp/mapfile.txt')
Importing "META-INF/policies/oracle/wsaddr_policy"
Importing "META-INF/policies/oracle/wss11_saml_or_username_token_with_message_protection_service_policy"
Importing "META-INF/policies/oracle/wss_username_token_service_policy"
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 "6" documents
WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。
ポリシーは、アプリケーションの開発サイクルやデプロイ・サイクル(たとえば開発から本番まで)の様々な段階でいつでも移行できます。「ポリシーの移行」で説明されているように、ポリシーの移行にはimportRepository
およびexportRepository
の各コマンドを使用することをお薦めします。
JDeveloperでは、カスタム・ポリシーを次のデフォルトのポリシー格納場所に追加できます。
C:\Documents and Settings\user-dir\ApplicationData\JDeveloper\system11.1.1.2.x.x.x\DefaultDomain\oracle\store\gmds
このディレクトリ内で、次のディレクトリ構造のいずれかを使用してOracle WSMポリシー・ファイルを格納する必要があります。
事前定義済Oracle WSMポリシー: owsm/policies/oracle/
policy_file
カスタム・ユーザー・ポリシー: owsm/policies/oracle/
policy_file
JDeveloper用としてポリシー・ファイルをOracle WSMリポジトリからエクスポートする場合、このディレクトリ構造は維持されません。エクスポートされたポリシーをJDeveloper環境に追加する場合は、必ず上記の必要なディレクトリ構造を使用してください。そうしないと、ポリシーはJDeveloper環境で使用できなくなります。
「ポリシーのインポートとエクスポートの異なるメカニズムの理解」で説明されているように、Fusion Middleware ControlまたはWLSTコマンドを使用してOracle WSMリポジトリをパッチできます。ポリシーを作成または更新する場合、リポジトリのパッチを行うときに考慮すべきシナリオとして次の2つが考えられます。
新しいポリシーを作成するか、新しいポリシーURIを使用する既存のポリシーを更新します。このシナリオでは、リポジトリのパッチは、新しいファイルがインストールに追加されたかのように機能します。結果として、新しいポリシーを使用する予定のコンポーネントのみが影響を受けます。ロードすると、ポリシーはすべてのアプリケーションで使用できるようになります。一般的には、新しいポリシーURIを使用する方が望ましいモデルといえます。というのは、ポリシーは通常それが行う動作を示すように名前が付けられてるためです。
新しいポリシーを作成するか、既存のポリシーURLを使用する既存のポリシーを更新します。このシナリオでは、リポジトリのパッチは、既存のファイルが新しいバージョンで上書きされたかのように機能します。そのため、既存のポリシーを使用しているすべてのコンポーネントに影響します。ロードすると、すべてのアプリケーションで新しいバージョンのポリシーが使用されます。既存のURIの再使用は、通常はポリシーの動作の変更箇所が少ない場合にのみ行われます。WLSTコマンドを使用してリポジトリをパッチする場合は、サーバーを再起動して必ず最新バージョンのポリシーが強制されるようにする必要があることに注意してください。Fusion Middleware Controlを使用する場合は、再起動する必要はありません。
Oracle WSMリポジトリのバックアップおよびリストアを行うには、WLSTコマンドexportRepository
およびimportRepository
を使用します。これらのコマンドの詳細は、「リポジトリ内のドキュメントのインポートおよびエクスポート」を参照してください。
たとえば、リポジトリ内のOracle WSMアーティファクトをすべてバックアップするには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig>exportRepository('/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.
リポジトリをバックアップからリストアするには、importRepository
コマンドを使用してOracle WSMリポジトリのアーティファクトをすべてインポートします。
たとえば、前の例で作成されたバックアップ・ファイルを使用してリポジトリをリストアする場合には、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig>importRepository('/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コマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。
事前定義済Oracle WSMポリシーとカスタムOracle WSMポリシーはいずれもOracle WSMリポジトリに格納されます。これらの事前定義済ポリシーは、以降のリリースで廃止または変更されるか、事前定義済ポリシーが追加される可能性があります。新しいバージョンのFusion Middleware softwareをインストールした場合は、WebサービスのカスタムWLSTコマンドを使用して、リポジトリを新規または更新された事前定義済ポリシーによりアップグレードできます。また、カスタム・ポリシーを含むOracle WSMポリシーをリポジトリからすべて削除して、インストールで提供された事前定義済ポリシーを使用して再移入し、リポジトリをリフレッシュすることもできます。リポジトリをアップグレードすると、リポジトリ内のすべてのポリシーも再評価されます。
注意: ポリシーを削除する前に、既存のポリシーを安全な場所にバックアップする必要があります。新しいポリシーで問題が発生した場合に、バックアップから既存のポリシーをインポートできます。 |
Oracle WSMリポジトリをアップグレードする手順:
新バージョンのOracle Fusion Middlewareをインストールするかパッチを当てます。詳細は、『Oracle Fusion Middlewareインストレーション・プランニング・ガイド』のインストールの出発点の理解に関する項を参照してください。
アップグレードするOracle WSMリポジトりが次のいずれかであることを確認します。
Oracle Fusion Middlewareを新たにインストールして登録した場合。詳細は、「Oracle WSMリポジトリの登録」を参照してください。
最新のスキーマ・バージョンにアップグレードした場合。詳細は、『Oracle Fusion Middlewareパッチ適用ガイド』の「パッチ・セット・アシスタントによるスキーマの更新」を参照してください。
「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、新しいバージョンのOracle Fusion MiddlewareをインストールしたOracleホームからWLSTを起動します。
次のいずれかを実行します。
Oracle Fusion Middlewareソフトウェアの最新インストールで提供された新しい事前定義済ポリシーを追加するには、次のコマンドを入力します。
upgradeWSMPolicyRepository()
このコマンドを実行するときには、リポジトリに追加されたポリシーを示すメッセージが表示されます。リポジトリ内の既存の事前定義済ポリシーおよびユーザー定義のカスタム・ポリシーは変更されないことに注意してください。出力メッセージには、最新リリースで変更されたか廃止された既存の事前定義済ポリシーのリストも表示されます。ポリシーが廃止されてサポートされなくなった場合は、それに対するすべての参照を削除してから、Oracle Enterprise Managerを使用してそのポリシーを削除することをお薦めします。事前定義済ポリシーが最新リリースで変更された場合は、Oracle Enterprise Managerを使用して更新されたバージョンのポリシーをインポートすることをお薦めします。Enterprise Managerを使用したポリシーの削除とインポートの詳細は、第7章 「Webサービス・ポリシーの管理」を参照してください。
リポジトリに格納された既存の事前定義済ポリシーを削除して、それらを最新の事前定義済ポリシーのセットと置き換えるには、次のコマンドを使用します。
resetWSMPolicyRepository(false)
ユーザー定義のカスタム・ポリシーは変更されません。リポジトリ内で追加、削除、または置き換えられた事前定義済ポリシーをリストする出力メッセージが表示されます。
カスタム・ポリシーを含むすべてのポリシーをリポジトリから削除して、最新の事前定義済ポリシーのセットと置き換えるには、次のコマンドをし使用します。
resetWSMPolicyRepository(true)
注意: ポリシーを削除する前に、ポリシーがポリシー・サブジェクトに添付されていないことを確認することをお薦めします。 |
これらのコマンドのいずれかを実行する場合は、すべての既存ポリシーが再評価されます。
このWLSTコマンドの詳細は、WebLogic Scripting Toolコマンド・リファレンスのポリシー・リポジトリ・アップグレード・コマンドに関する項を参照してください。
環境によっては、元の事前定義済ポリシーおよびアサーション・テンプレートのリストアを含めて、Oracle WSMリポジトリ全体を再構築する方が望ましい場合もあります。たとえば、新しいプロジェクトをテスト環境で開始する場合、リポジトリの中身を元の状態にリセットできると便利なことがあります。
Oracle WSMポリシー・リポジトリを再構築するには、次の手順を実行します。
リポジトリが登録されているWebLogic Serverドメインの管理サーバー・インスタンスに接続します。手順については、「WebサービスのカスタムWLSTコマンドへのアクセス」を参照してください。
注意: ポリシーの削除またはリポジトリの再構築の前に、既存のポリシーを安全な場所にバックアップする必要があります。新しいポリシーで問題が発生した場合に、バックアップから既存のポリシーをインポートできます。 |
resetWSMPolicyRepository(true)
コマンドを使用して、Oracle WSMリポジトリからすべてのドキュメントを削除し、ソフトウェアとともにインストールされた事前定義済ポリシーおよびアサーション・テンプレートのセットを再移入します。この方法を使用することをお薦めします。
WLSTコマンドresetWSMPolicyRepository
の詳細は、WebLogic Scripting Toolコマンド・リファレンスのポリシー・リポジトリ・アップグレード・コマンドに関する項を参照してください。
注意: ポリシーを削除する前に、ポリシーがポリシー・サブジェクトに添付されていないことを確認することをお薦めします。 |