この付録では、Oracle Fusion Middlewareコンポーネントをサード・パーティのHTTPリスナーと組み合せて使用するためのOracle Proxy Plug-InおよびOracle SSO Plug-Inの使用方法について説明します。
注意: 特に他に記載のないかぎり、このドキュメントに収められている情報は、Oracle HTTP ServerがOracle WebLogic ServerおよびOracle Fusion Middleware Controlにインストールされている場合に適用できます。このドキュメントの対象読者は、『Oracle Fusion Middlewareコンセプト・ガイド』および『Oracle Fusion Middleware管理者ガイド』の説明に従ってOracle Fusion Middlewareの主要概念を十分に理解しておく必要があります。 スタンドアロン・モードでのOracle HTTP Serverのインストールについては、『Oracle Fusion Middleware Oracle Web Tierインストレーション・ガイド』のスタンドアロン・モードでのOracle Web Tierのインストールに関する項を参照してください。 |
この付録では、次の項目について説明します。
該当する場合は、Apache Software Foundationのドキュメントを参照しています。
Oracle Proxy Plug-Inにより、サード・パーティのHTTPリスナーからのリクエストをOracle Fusion Middlewareにプロキシまたは送信できます。Oracle Proxy Plug-Inは、UNIXおよびMicrosoft Windowsシステム上のSun Java System Web Server Enterprise Edition、またはMicrosoft Internet Information Server (IIS) v6.0および7.0とともに動作するように提供されたもので、その動作が保証されています。
その他のサード・パーティのHTTPリスナーには、各リスナーのネイティブ・プロキシ機能を使用できます。
関連項目: 詳細な動作保証情報は、 |
この項の内容は、次のとおりです。
A.1.4項「Oracle Proxy Plug-Inを使用するためのSun Java System Webサーバーの構成」
A.1.5項「Oracle Proxy Plug-Inを使用するためのMicrosoft IIS 6.0リスナーの構成」
A.1.6項「Oracle Proxy Plug-Inを使用するためのMicrosoft IIS 7.0リスナーの構成」
Oracle Proxy Plug-InはリバースHTTPプロキシです。プラグインは、Sun Java SystemまたはMicrosoft IISサーバーのHTTPリスナーからの受信HTTPリクエストをOracle Fusion Middlewareインスタンスに転送します(図A-1を参照)。
プロキシの仕組みは、サード・パーティのHTTPリスナーによりロードされる共有ライブラリであり、プラグインとして提供されます。プラグインは、サード・パーティのリスナーとともに提供されるAPIを使用して、モジュールがOracle HTTP Serverで使用されるのとほぼ同じ方法で、HTTPリクエストを直接処理します。
Oracle HTTP Serverでは、サード・パーティのリスナーで使用されているアドレスとポートを擬似実行できます。Oracle HTTP Serverにリクエストを送信するときに、リクエストの送信先である実際のホスト名とポートとは異なるHost: HTTPヘッダーを送信するように、プロキシを構成できます。これにより、他のアプリケーションはリバース・プロキシから保護されます。
Oracle Proxy Plug-Inはロード・バランシングを実行しません。特定のURLに対してリクエストを単一のバックエンドOracle HTTP Serverに送信するのみです。また、Oracle Proxy Plug-Inはサード・パーティのリスナーとOracle HTTP Serverの間のSSLをサポートしていません。
Sun Java System WebサーバーおよびMicrosoft IIS用のOracle Proxy Plug-Inは、Oracle Fusion Middleware Web Tier and Utilitiesインストーラ(11.1.1.2以降のフル・インストーラ、パッチセットのインストーラではない)で使用できます。サード・パーティのリスナーがアクセスできるディレクトリに、適切な定義ファイルと共有ライブラリを格納します。
表A-1に、OracleAS Proxy Plug-Inの共有ライブラリに関する情報を示します。
表A-1 Oracle Proxy Plug-Inの共有ライブラリ
Oracle Proxy Plug-Inには、プロキシ機能を制御するプロキシ定義ファイルが1つあります。Webサーバーのファイル・システムにこのファイルが存在すると、プロキシ機能が有効になります。また、サード・パーティのリスナー固有の構成ファイル(Sun Java System WebサーバーやMicrosoft IISの構成ファイルなど)を変更して、そのリスナーに対してプラグインを有効にする必要があります。Oracle Proxy Plug-Inの定義ファイルは、どのような名前でもかまいません。
プロキシ・サーバー定義ファイルは、サード・パーティのリスナーが読取り可能なディレクトリに置く必要があります。たとえば、システム上の任意のディレクトリ内にproxy
というディレクトリを作成し、プロキシ・サーバー定義ファイル、プロキシ共有ライブラリ・ファイルおよびプロキシ・ログ・ファイルを配置します。
プロキシ・サーバー定義ファイルには、次のパラメータが含まれます。
リクエストをOracle Fusion Middlewareにプロキシするために使用されるサーバーを記述する名前/値ペア
サーバーとの通信用のオプション
URLをサーバーにマップするルールのセット
このファイルは、任意のテキスト・エディタで作成できます。
プロキシ定義ファイルでは、次のプロキシ・パラメータが使用されます。
プラグインで認識可能なサーバー名をすべてリストします。
カテゴリ | 値 |
---|---|
使用可能な値 |
リクエストの送信先となるOracle HTTP Serverごとに1つのサーバー名をカンマで区切ったリスト。サーバー・リスト内のすべてのサーバーは、ファイルにも定義する必要があります。 注意: Oracle Proxy Plug-Inではロード・バランシングが実行されないため、同じ |
デフォルト値 |
なし。プロキシを機能させるには、少なくとも1つはサーバー名を指定する必要があります。 |
例 |
|
特定のサーバーとの通信時に使用するホスト名を定義します。
カテゴリ | 値 |
---|---|
使用可能な値 |
有効なホスト名 |
デフォルト値 |
なし |
例 |
|
特定のサーバーとの通信時に使用するポートを定義します。
カテゴリ | 値 |
---|---|
使用可能な値 |
ポート値 |
デフォルト値 |
80 |
例 |
|
クライアントからサード・パーティのHTTPリスナーへのアクセスに使用するホスト名とポートを定義して、プロキシの別名機能をサポートします。このパラメータを定義すると、この値がHost: HTTPヘッダーとして渡されます。定義しない場合は、実際に通信先となるシステムのホスト名とポートが送信されます。
カテゴリ | 値 |
---|---|
使用可能な値 |
host:port |
例 |
|
ホスト名を解決するために、すべてのリクエストについてプロキシ・プラグインをバックエンド・サーバーに送ります。これにより、プロキシ・プラグインとバックエンド・サーバー間のDNSベースのフェイルオーバーまたはルーティングが可能になります。このパラメータを使用すると、すべての受信リクエストについてDNSサーバーへの送信が必要になるため、ホスト名からIPアドレスへのマッピングが動的に変わる場合のみ使用してください。
カテゴリ | 値 |
---|---|
使用可能な値 |
|
デフォルト値 |
|
例 |
|
このサーバーにリダイレクトされるURLまたはURLセットを記述します。指定したサーバーには、任意の数のurlruleプロパティを割り当てることができます。
カテゴリ | 値 |
---|---|
例 |
|
次のタイプのルールを使用できます。
完全一致: 1つのURLが1つのサーバーにマップされます。例:
oproxy.ohs1.urlrule=/foo/bar/foo.html
この例では、URL /foo/bar/foo.html
のみがマップされます。これは、サーバーohs1
のプロキシになります。
コンテキスト一致: 共通の接頭辞またはコンテキストを持つURLのセットが、1つのサーバーにマップされます。例:
oproxy.ohs1.urlrule=/foo/*
この例では、/foo
で始まるURLがサーバーohs1
にマップされます。
コンテキスト一致の場合は、stripcontext
オプションとurlrule
パラメータを使用して、ワイルドカードの後のURL部分のみをサーバーに送信できます。stripcontextオプションのデフォルトはfalse
で、true
に設定しないかぎり指定する必要はありません。次の例では、わかりやすくするためにfalseを指定しています。
パラメータ | URLリクエスト | 結果 |
---|---|---|
oproxy.ohs1.urlrule=/foo/* oproxy.ohs1.stripcontext=true |
http://hostname/foo/header1.gif
|
|
oproxy.ohs1.urlrule=/foo/* oproxy.ohs1.stripcontext=false |
http://hostname/foo/header1.gif
|
ORACLE_INSTANCE/config/OHS/ |
拡張子一致: 共通のファイル拡張子を持つファイルが、すべて1つのサーバーにマップされます。
例:
oproxy.ohs1.urlrule=/*.jsp
この例では、末尾が.jsp
のURLがすべてサーバーohs1
にマップされます。これをコンテキスト・ルールと組み合せて/foo/bar/*.jsp
と指定できます。この場合、/foo/bar
で始まって.jsp
で終わるURLのみがプロキシされます。
注意:
優先順位の例を次に示します。
|
プロキシ・サーバー定義ファイル内で、プラグインのプロキシとして使用するサーバーとURLを定義します。
次のように、ファイルの1行目にプラグインで使用できるすべてのサーバーのリストを指定します。
oproxy.serverlist=ohs1,ohs2
Fusion Middleware Controlまたはopmnctl
コマンドライン・ユーティリティを使用して、Oracle HTTP Serverポートを表示します。このポート番号は次の手順で使用します。
各サーバーの関連プロパティ(ホスト名、ポートおよびサーバー別名)を設定します。例:
oproxy.ohs1.hostname=host1.acme.com.us.example.com oproxy.ohs1.port=7777 oproxy.ohs1.alias=www.example.com
ホスト名は必須です。別名の値を指定しないと、ホスト名とポートの組合せが使用されます。別名により、バックエンド・サーバーは、クライアントからサード・パーティのリスナーに配信されるHTTPのHostヘッダーと完全一致のヘッダーを持つリクエストを受信できます。
urlrule
パラメータを設定して、サーバー間のリダイレクションを指定します。たとえば、このルールでは、プロキシに対するすべての受信リクエストがサーバーohs1
のWebサーバーにマップされます。
oproxy.ohs1.urlrule=/*
例A-1は、サンプルのプロキシ・サーバー定義ファイルです。
例A-1 サンプル・プロキシ・サーバー定義ファイル
# This file defines proxy server behavior. # # Server names that the proxy plug-in will recognize. oproxy.serverlist=ohs1 # Hostname to use when communicating with a specific server. oproxy.ohs1.hostname=host1.acme.com # Port to use when communicating with a specific server. oproxy.ohs1.port=7777 # URL(s) that will be redirected to this server. oproxy.ohs1.urlrule=/*
この項では、UNIXおよびMicrosoft Windowsプラットフォーム上のSun Java System Webサーバーに対してプロキシ・プラグインを構成する手順について説明します。
Sun Java System Webサーバーのデフォルト構成ファイルでは、/servletの受信するすべてのURIリクエストを、Sun Java Systemサーブレット・ハンドラにルーティングします。Oracle Proxy Plug-Inは、Sun Java Systemサーバーの構成設定をオーバーライドしません。Oracle Proxy Plug-InへのURLマッピングとSun Java Systemサーブレット・エンジンへのURLマッピングは、必ず異なるようにします。
Microsoft WindowsでSun Java System Webサーバーを構成する場合、すべてのパスでフォワード・スラッシュ(/)を使用してください。
Sun Java System Webサーバーのバージョン6.1またはバージョン7.0の/config
ディレクトリにあるmagnus.conf
ファイルを開きます。
オペレーティング・システムに応じて、次のload-modules行を追加します。
UNIXの場合:
Init fn="load-modules" shlib="/path/oracle_proxy.so" funcs=op_init,op_objecttype,op_service
Microsoft Windowsの場合:
Init fn="load-modules" shlib="/path/oracle_proxy_nes.dll" funcs=op_init,op_objecttype,op_service
これらの行で、pathはプラグインの共有ライブラリのパスです。これは、プロキシ共有ライブラリの場所、およびこのライブラリによって公開される関数をリスナーに示します。
次の構成パラメータを追加します。
Init fn="op_init" server_defs="/path/to/proxy/definition/file" log_file="/path/to/proxy/log/file" log_level=loglevel
例:
Init fn="op_init" server_defs="/oracle/proxyplugin/proxydefs" log_file="/oracle/proxyplugin/oproxy.log" log_level=error
プロキシ・サーバーの定義ファイルには、サーバーがプロキシ・プラグインと通信するためのすべての構成情報が含まれます。定義ファイルには任意の名前を使用できます。
プラグインからのメッセージを記録するためのログ・ファイルとログ・レベルを指定できます。これはオプションです。
obj.conf
ファイルの<Object name=default>
セクションで、ObjectType
という語で始まる他のすべての行の前に、次の行を追加します。
ObjectType fn=op_objecttype
Service
という語で始まる他のすべての行の前に、次の行を追加します。
Service type="oracle/proxy" fn="op_service"
ファイルを保存します。
Sun Java System WebサーバーGUIまたはシェル・スクリプトを使用して、リスナーを起動します。
この項では、Microsoft Windowsプラットフォーム上のMicrosoft IIS 6.0リスナーに対してプロキシ・プラグインを構成する手順について説明します。この手順では、Microsoft Windowsレジストリ・エントリを作成し、Microsoft IIS 6.0管理コンソールを使用してディレクトリおよびフィルタを追加します。プラグインの構成後にリスナーを再起動する必要があります。
プラグインを構成するには、次の手順を実行します。
Microsoft Windowsレジストリ エディタを使用して、新しいレジストリ・エントリを作成します。
「スタート」メニューから「ファイル名を指定して実行」を選択し、ダイアログ・ボックスにregedit
と入力して「OK」をクリックします。「レジストリ エディタ」ウィンドウが表示されます。
「レジストリ エディタ」ウィンドウで、名前の前のプラス記号(+)をクリックしてHKEY_LOCAL_MACHINEフォルダを開きます。
名前の前のプラス記号(+)をクリックしてSOFTWAREフォルダを開き、「ORACLE」フォルダをクリックします。
「編集」メニューの「新規」→「キー」を選択します。ORACLEフォルダの下に「新しいキー #1」という名前の新規フォルダが追加されます。
キー名としてIIS Proxy Adapter
を入力します。
「編集」メニューの「新規」→「文字列値」を選択します。新しい値が「New Value #1」という名前の右ウィンドウ・ペインに追加されます。値の名前にserver_defs
と入力します。
「編集」メニューの「修正」を選択します。「文字列の編集」ダイアログ・ボックスが表示されます。
「値のデータ」フィールドにプロキシ・サーバー定義ファイルのフルパスを入力して、「OK」をクリックします。
オプションで、d.)からh.)に示した手順を使用して、log_fileおよびlog_levelを指定できます。
名前log_file
とログ・ファイルの格納場所(d:\proxy\proxy.log
など)を指定する文字列値を追加します。
名前log_level
と必要なログ・レベルを指定する文字列値を追加します。有効な値は、debug
、inform
、error
およびemerg
です。
「ファイル」メニューから「レジストリ エディタの終了」を選択して、「レジストリ エディタ」ウィンドウを閉じます。
Microsoft IIS管理コンソールを使用し、oracle_proxy.dll
と同じ物理パスを指定して、Microsoft IIS Webサイトに新規の仮想ディレクトリを追加します。
「スタート」→「プログラム」→「管理ツール」→「インターネット インフォメーション サービス(IIS)マネージャ」をクリックして、IISマネージャを開きます。
サーバー名の前のプラス記号(+)をクリックしてserverフォルダを開きます。
「デフォルト・サイト」フォルダを右クリックし、メニューから「新規」→「Virtual Directory」の順にオプションを選択します。
「仮想ディレクトリの作成ウィザード」ウィンドウで、「エイリアス」にoproxyを入力します。次に、oracle_proxy.dll
ファイルが含まれるディレクトリを参照するかそのパス(たとえば、c:\OProxy
)を入力し、「ISAPIアプリケーションやCGI等を実行する」チェック・ボックスを選択します。
「完了」をクリックして、仮想ディレクトリの作成ウィザードを閉じます。
Microsoft IIS管理コンソールを使用し、Microsoft IIS Webサイトにフィルタとしてoracle_proxy.dll
を追加します。フィルタ名はoproxyとし、その実行可能ファイルはoracle_proxy.dll
ファイルを含むディレクトリを指す必要があります。
「デフォルト・サイト」フォルダを右クリックし、メニューから「プロパティ」オプションを選択します。
「既定のWebサイトのプロパティ」ウィンドウで、「ISAPIフィルタ」タブを選択します。
「追加」をクリックして、新しいフィルタを追加します。
「フィルタのプロパティの追加と編集」ウィンドウが表示されます。
フィルタ名にoproxyを入力します。次に、oracle_proxy.dll
ファイルが含まれるディレクトリを参照するかそのパス(たとえば、c:\OProxy\oracle_proxy.dll
)を入力します。
「OK」をクリックして、「フィルタのプロパティの追加と編集」ウィンドウを閉じます。
「OK」をクリックして、「既定のWebサイトのプロパティ」ウィンドウを閉じます。
「server name」フォルダの下の「Webサービス拡張」フォルダをクリックして、「Webサービス拡張」ページを開きます。右パネル内の「すべての不明なISAPI拡張」を選択し、「許可」をクリックします。この項目のステータスが「禁止」から「許可」に変わります。
「アプリケーション プール」フォルダを選択し、メニューから「プロパティ」オプションを右クリックします。「アプリケーション プールのプロパティ」ウィンドウで「識別」タブを選択し、「定義済み」アイデンティティを「Local System」に変更します。確認ダイアログ・ボックスが表示され、「このアプリケーション プールをローカル システムとして実行しますか?」と尋ねられます。「はい」を選択します。
Microsoft IIS 6.0サーバーを停止してから再起動します。
注意: Microsoft IISを再起動するには、コントロール パネルですべてのMicrosoft IISサービスを停止するか、コンピュータを再起動する必要があります。 |
新しく作成したoproxy
フィルタが緑の上矢印でマークされていることを確認します。
この項では、Microsoft Windowsプラットフォーム上のMicrosoft IIS 7.0リスナーに対してプロキシ・プラグインを構成する手順について説明します。この手順では、Microsoft Windowsレジストリ・エントリを作成し、Microsoft IIS 7.0管理コンソールを使用してディレクトリおよびフィルタを追加します。プラグインの構成後にリスナーを再起動する必要があります。
プラグインを構成するには、次の手順を実行します。
A.1.5項「Oracle Proxy Plug-Inを使用するためのMicrosoft IIS 6.0リスナーの構成」のステップ1を実行し、レジストリ エディタを使用してプラグインに新しいレジストリ・エントリを作成します。
Microsoft IIS管理コンソールを使用して、プロキシ・プラグイン・フィルタを追加します。
「スタート」→「プログラム」→「管理ツール」→「インターネット インフォメーション サービス(IIS)マネージャ」をクリックして、IISマネージャを開きます。
サーバー名(たとえば、DSCDAA10-VM6)の前のプラス記号(+)をクリックして、serverフォルダを開きます。
名前の前のプラス記号(+)をクリックしてSitesフォルダを開きます。
「既定のWebサイト」アイコンをクリックして、「既定のWebサイトのホーム」ページを開きます。
「ISAPIフィルタ」アイコンをダブルクリックして「ISAPIフィルタ」ページを開き、次のタスクを完了します。
「操作」ペインで「追加」をクリックして、「ISAPIの追加」ダイアログ・ボックスを開きます。
「フィルタ名」フィールドに、ISAPIフィルタのわかりやすい名前を入力します。
「実行可能ファイル」フィールドに、ISAPIフィルタ・ファイルの場所のファイル・システム・パスを入力するか、省略記号(「...」)ボタンをクリックして、ISAPIフィルタ・ファイルが含まれるフォルダに移動します。
「OK」をクリックします。
次の手順に従って、新しく追加したISAPIフィルタを構成します。
ナビゲーション・パネルの「既定のWebサイト」アイコンをクリックして、変更可能なアプリケーションに関連するすべての設定を表示します。
「ハンドラ マッピング」オプションをクリックして、特定のMIMEタイプのハンドラのマッピングを設定します。
「ハンドラ マッピング」ページの「StaticFile」オプションをクリックし、「モジュール マップの編集」ダイアログ・ボックスで「要求パス」を*.*
に変更します。
「ハンドラ マッピング」ページの「操作」領域で、「スクリプト マップの追加」オプションをクリックします。
「スクリプト マップの編集」ダイアログ・ボックスで、「要求パス」に*を入力します。「実行可能ファイル」フィールドを使用してoracle_proxy.dll
ファイルを参照し、これを実行可能ファイルとして追加します。このファイルにproxy
という名前を指定します。
「要求の制限」ボタンをクリックして、「要求の制限」ダイアログ・ボックスを開きます。「要求のマップ先が次の場合のみハンドラを呼び出す」チェック・ボックスを選択解除し、「OK」をクリックしてこのハンドラ・マッピングを追加します。
「スクリプト マップの追加」ダイアログ・ボックスで「はい」をクリックします。
IISマネージャ・ツリーのルート・ノードをクリックしてから「ISAPIおよびCGIの制限」をクリックすると、ここに示したようなoracle_proxy.dll
のエントリが表示されます。
[No Description] Allowed C:\proxy\oracle_proxy.dll
「コントロール パネル」の「サービス」を開き、World Wide Web Publishing Serviceをいったん停止して再起動することにより、Microsoft IISサーバーを再起動します。
注意: Microsoft IISを再起動するには、コントロール パネルですべてのMicrosoft IISサービスを停止するか、コンピュータを再起動する必要があります。 |
前述の手順を使用してOracle Proxy Plugin用にIIS7を構成することにより、リクエストがOHSにのみプロキシされます。状況によっては、リクエストをOHSにプロキシすると同時に、IISからファイルを処理することをお薦めします。そうするためには、プロキシ・プラグインを構成してそれが機能することを確認した後に(A.1.6項「Oracle Proxy Plug-Inを使用するためのMicrosoft IIS 7.0リスナーの構成」)、次の手順を実行します。
「既定のWebサイト」を右クリックして、「仮想ディレクトリの追加」をクリックします。
「エイリアス」フィールドで、static
と入力し、物理パスをc:\inetpub\wwwroot\static
に設定します。「OK」をクリックします。
注意: ファイルを別の場所に配置した場合、物理パスが異なることがあります。それに応じて、パスを変更する必要があります。 |
「既定のWebサイト」の下の静的フォルダが表示されます。
「既定のWebサイト」の下の静的フォルダをクリックします。
静的ホームページが表示されます。
静的ホームページの右ペインで、「ハンドラーマッピング」、「順序指定された一覧の表示」の順にクリックします。ハンドラ・マッピングの順序指定されたリストが表示されます。
「プロキシ」をクリックして、StaticFileハンドラ・マッピングの下に移動します(これにより、StaticFileハンドラ・マッピングがプロキシ・ハンドラ・マッピングの上になります)。
c:\inetpub\wwwrootの下に静的フォルダを作成し、このフォルダ内にHTMLファイル(index.htmlなど)をいくつか配置します。
サービスの下のWorld Wide Web Publishing Serviceを再起動して、IIS7を再起動します。
http://localhost:80/static/index.htmlを開いて、index.htmへのアクセスを試行します。
プロキシ・プラグインを介して構成したサイトへのアクセスを試行します。
この項では、Oracle Proxy Plug-Inの背後で動作するアプリケーションの開発時に注意が必要な開発および使用方法について重点的に説明します。また、その一部は、Oracle Web Cacheの背後で動作するアプリケーションを使用可能にする場合にも適用されます。
ネットワークへのエントリ・ポイントとなっているOracle HTTP Serverベースの構成の有無を調べます。
通常、これが関係するのは、アプリケーションにOracle HTTP Serverへ直接プラグインするモジュールがある場合のみです。具体的には、Oracle HTTP Serverへの接続に基づいて、認証にSSL証明書を使用しているなど、クライアント情報の取得に伴う依存性を調べます。現在、Secure Sockets Layer (SSL)はサポートされていないため、クライアントがSSLを使用してサード・パーティのリスナーに接続しても、そのリスナーからは暗号化されていないHTTPメッセージがOracle HTTP Serverに送信されます.。これは、プラグインの背後にあるコンポーネントにはクライアント証明書を使用できないことを意味します。Oracle Proxy Plug-InとOracle Web Cacheが使用されている場合、環境変数REMOTE_ADDRは明確に保持されていますが、他のクライアント情報は、実際には、クライアントの実際のホストではなく、プロキシが常駐するシステムを示していることがあります。Oracle HTTP ServerがOracle Fusion Middleware用の外部リスナーでない場合は、このような動作を見つけて排除する必要があります。
Webサイトへの外部リンクでないかぎり、HTMLにはホスト名を埋め込まないでください。
これには、静的HTMLページや、サーブレット、JSP、PL/SQLなどにより生成される動的ページが含まれます。Oracle HTTP Serverのサーバー名を取得するコードをすべて検査し、クライアントに返されるページにサーバー名が埋め込まれていないことを確認します。この動作をテストするには、Webクローラ・アプリケーション(スパイダ)を使用してWebサイトのすべてのリンクを走査します。この機能を持つオープン・ソースのツールを使用できます。
クライアントにダウンロードされるアプリケーション(アプレットやJavaScriptなど)では、ホストおよびポート情報を返さないようにします。
ブラウザベースのコードを使用するアプリケーションがある場合は、そのコードに実際にコンテンツを配信するOracle HTTP Serverのホスト名とポートが含まれていないことを確認します。かわりに、サード・パーティのリスナーが使用する、実際にクライアントがアクセス可能なアドレスを含める必要があります。
アプリケーション内のすべてのURLを、プロキシで使用できるルール・セットに簡単にマップできるかどうかを確認します。
アプリケーションに対するすべてのリクエストを適切にプロキシするには、Oracle Proxy Plug-InにそのアプリケーションのURL領域に関する詳細な記述が必要です。Oracle Fusion Middlewareの各アプリケーションでは、そのアプリケーション用にプラグインを構成するために必要なルール・セットを記述する必要があります。このルール・セットには、アプリケーションで生成できるURLをすべて含めてください。プロキシのurlrule
パラメータで記述されないURLがアプリケーションにより生成されると、リクエストはサード・パーティのHTTPリスナーにより処理され、「document not found」というエラーが発生することがあります(または、異なるドキュメントがクライアントに配信されることがあります)。
共通のトップレベル・ディレクトリ(マッピングやイメージに依存するディレクトリ)を使用するアプリケーションの開発者は、次のように準備する必要があります。
このような共通リンクを、すでにサード・パーティのリスナーにデプロイされているアプリケーションと競合しないように変更します。
ユーザーに対して、必要な内容をサード・パーティのリスナーのディレクトリ構造にコピーするように指示します。パフォーマンス上の理由で、サード・パーティのリスナーで静的な.gif
および.jpg
ファイルを処理することをお薦めしますが、これを行うにはサード・パーティのリスナーにそれらのファイルをコピーする必要があります。
この項では、Oracle Proxy Plug-Inに関連する一般的な問題および解決策について説明します。
プロキシ・サーバー定義ファイルに問題がないことをチェックします。サーバー・リスト行に指定されている各サーバーを、後からファイル内で定義する必要があります。少なくとも1つはサーバーを定義してください。サーバー名がリストに指定されていても、定義されていなければリスナーが起動しません。プロキシ・サーバー定義ファイルに、入力ミスや引用符の不足がないかどうかを確認します。
Sun Java System Webサーバー6.1または6.0の場合: magnus.conf
ファイルにInit行が追加され、obj.conf
ファイルにObjectType
およびService
行が追加されていることを確認します。
プロキシ・サーバー定義ファイルの変更内容が保存され、リスナーが再起動していることを確認します。
プロキシ・サーバー定義ファイルに入力ミスがないことを確認します。
urlrule
パラメータが適切に設定されていることを確認し、stripcontext
オプションをtrue
に設定する必要があるかどうかを判別します。
プロキシ・サーバー定義ファイルのserverlist
行で、アクセス先となるバックエンド・サーバーが指定されていることを確認します。
バックエンド・サーバーが稼働していること、および取得するファイルが存在し、バックエンド・サーバー上でアクセスできることを確認します。
プロキシ・サーバー定義ファイル内のhost、portおよびurlruleパラメータで、バックエンド・サーバー上の適切な領域がターゲットとして指定されていることを確認します。
クライアント・リクエストが、サード・パーティのリスナー・マシンの適切なポートに送信されていることを確認します。
リスナーのログ・ファイル、プロキシ・ログ、バックエンド・サーバーのログをチェックし、リクエストが通過していることを確認します。状況によっては、プロキシ・ログをデバッグ・モードに設定し、リスナーを再起動する必要があります。
プロキシ・サーバー定義ファイルの変更内容が保存され、リスナーが再起動していることを確認します。
Microsoft IISの場合、コントロール パネルでWWW Publishing Serviceを停止してから起動する必要があります。この作業には数分かかる可能性があります。
Microsoft IISリスナーで不完全なページや文字化けが表示される
Sun Java SystemブラウザでMicrosoft IISのページを表示しないでください。
Sun Java System Webサーバー6.1または7.0で解析エラーが発生する
ポートの変更やセキュリティの有効化(SSLの場合)を試行すると、サーバーからエラー・メッセージ「Unable to parse magnus.conf」が返されることがあります。
magnus.confファイル内で、コメントとInit行の前後に追加した行を削除します。
存在することがわかっているファイルをコンテキストベースのurlrule
パラメータを使用して取得するときに、リスナーから「Not Found」というメッセージが返される場合は、stripcontext=true
を設定する必要があります。
Sun Java System Webサーバーから/servletリクエストとともにサーバー・エラーが返される
Sun Java System Webサーバーのデフォルト構成では、/servlet
へのすべてのURLリクエストが独自のサーブレット・ハンドラにマップされます。これを修正するには、プロキシ・サーバー定義ファイルを編集するか、Sun Java System Webサーバー構成を変更する必要があります。
Microsoft IISおよびSun Java SystemのサーバーURLは、他と異なる方法でオートコンプリートされます。http://example
、http://example/
およびhttp://example/index.html
のリクエストでは、どのプラットフォームでも同じ結果が返されるとはかぎりません。oproxy.servername.urlrule
パラメータを使用すると、この問題を回避できます。
サーバーから返されるページ上のイメージ・リンクが壊れている場合
プロキシ・サーバー定義ファイル内で正確なurlrule
パラメータ(urlrule=/*.html
など)を使用している場合、サーバーでは指定のページが取得されます。他のリンクは、ページのインライン・イメージを含めてすべてユーザーに対して禁止されます。stripcontext=true
を指定して正確なurlrule
を使用すると、サーバー・エラーが返されます。
クライアント・ブラウザのメモリー・キャッシュを消去します。旧バージョンのSun Java SystemおよびMicrosoft Internet Explorerでは、ページを毎回取得するように設定した場合でも、キャッシュ用のメモリーが割り当てられていない場合でも、キャッシュされたページが使用されます。この動作を機能させるには、ブラウザを再起動する必要があります。予期しないページが表示される場合は、ブラウザをリフレッシュするか、ページを再ロードしてください。
REMOTE_ADDRに予期しないIPアドレスが含まれている場合
通常、REMOTE_ADDRフィールドには、クライアント・システムのIPアドレスが含まれます。一部のURLリクエストの場合は、環境内にプロキシ・サーバーがあると、このフィールドにプロキシ・サーバーのIPアドレスが含まれることがあります。
バックエンド・サーバーがネットワークのエントリ・ポイントへのリダイレクトを返す場合は、ホストおよびポート情報を更新する必要があります。インストール環境に応じて、次のいずれかのオプションを選択してください。最初の方法をお薦めします。
Fusion Middleware Controlの「サーバーの詳細構成」ページを使用して、httpd.conf
ファイルに次のディレクティブを設定します。
UseCanonicalName On ServerName name of listener host Port port of listener host
Fusion Middleware Controlの「サーバーの詳細構成」ページを使用して、httpd.conf
ファイルに次のディレクティブを設定します。
UseCanonicalName port
Port port of listener host
プロキシ・プラグインのサーバー定義ファイルを次のように編集します。
oproxy.serverName.alias=name of listener host:port of listener host
重要な注意: Oracle HTTP Server 11gおよびIISなどの他のWebサーバー用のOProxyプラグインとして知られている、FMW 10gベースのプロキシ・プラグインは非推奨となっており、今後のリリースは中止されます。この従来のプロキシ・ソリューションは、Oracle Application Server 10gにデプロイされるフロントエンド・アプリケーション向けに設計されています。Oracle Fusion Middleware 11gのアプリケーションは現在では、WebLogicにデプロイされています。Oracle HTTP Server 11gには、このフロントエンド環境に対して最適化されたビルトイン・プロキシ・モジュールが含まれています。FMW 10gベースのプロキシ・プラグインを使用している場合、デプロイメントの統合をスムーズにするためにOracle HTTP Server 11gベースのプロキシ・ソリューションに移行するか、他のWebサーバー内のビルトイン・プロキシ・モジュールを活用する必要があります。 |
Oracle SSO Plug-Inは、サード・パーティのリスナー・アプリケーションを、Oracleシングル・サインオン(SSO)インフラストラクチャを使用して保護するように設計されています。Oracle Proxy Plug-Inは、Microsoft Windowsシステム上のMicrosoft Internet Information Server (IIS) v6.0およびv7.0とともに動作するように提供されたもので、その動作が保証されています。
関連項目: 詳細な動作保証情報は、 |
この章の内容は、次のとおりです。
Oracle SSO Plug-Inは、Microsoft IIS用のOracleシングル・サインオン(SSO)ソリューションです。このプラグインは、サード・パーティのリスナー・アプリケーションを、SSOインフラストラクチャを使用して保護するように設計されています。Oracle SSO Plug-Inにより、ユーザーはSSOパスワード1つで様々なサード・パーティのリスナー・アプリケーションに対する認証を受けることができます。このようにSSOで保護されたサード・パーティ製リスナー・アプリケーションは、同一のSSOサーバー上で保護されているかぎり、SSO対応のOracle HTTP ServerアプリケーションやOracle SSO対応のレガシー・アプリケーションと統合できます。
Oracle SSO Plug-Inはmod_ossoの簡易版で、その基本機能の一部のみを実装しています。動的認証、グローバル・ログアウト、アイドル・タイムアウト、グローバル・タイムアウトおよびレガシー・アプリケーションのBasic認証などの機能は、現行リリースのOracle SSO Plug-Inには実装されていません。
図A-2は、ユーザーによりOracle SSO Plug-Inで保護されたURLがリクエストされたときの処理を示しています。
ユーザーがWebブラウザ経由でURLをリクエストします。
Webサーバーは、そのユーザー用のOracle SSO Plug-In Cookieを検索します。Cookieが存在する場合、Webサーバーはそのユーザーの情報を抽出し、その情報を使用してリクエストされたアプリケーションにユーザーをログインします。
Cookieが存在しない場合、Oracle SSO Plug-Inはそのユーザーをシングル・サインオン・サーバーにリダイレクトします。
シングル・サインオン・サーバーは、ブラウザ内でそれ自身のCookieを検索します。Cookieが存在する場合は、そのCookieを使用して認証します。認証に成功した場合、シングル・サインオン・サーバーはユーザーが認証されたことの印としてブラウザ内にCookieを作成します。Cookieが見つからない場合は、ユーザー名とパスワードでユーザーの認証を試みます。
シングル・サインオン・サーバーは、暗号化されたユーザー情報をOracle SSO Plug-Inに返します。
Oracle SSO Plug-Inはユーザーに対する独自のCookieをブラウザ内に作成し、リクエストされたURLにユーザーをリダイレクトします。
同じセッション内でユーザーが再度同一または異なるアプリケーションへのアクセスを試みた場合、そのユーザーはユーザー名とパスワードの入力を求められません。アプリケーションは、HTTPヘッダーを使用してOracle SSO Plug-InのセッションCookieからこの情報を取得します。
関連項目: 『Oracle Fusion Middlewareセキュリティ・ガイド』 |
Microsoft IIS用のOracle Proxy Plug-Inは、Oracle Fusion Middleware Web Tier and Utilitiesインストーラ(11.1.1.2以降のフル・インストーラ、パッチセットのインストーラではない)で使用できます。
場所: \Disk1\plugins\iis\oracle_osso.dll
リスナー用のプラグインをインストールするには、リスナーがアクセスできるディレクトリにoracle_osso.dll
をコピーします。セキュリティ上の理由から、プラグイン・ライブラリに最小限の権限を与えます。
Oracle Fusion MiddlewareがインストールされているシステムにOracle SSO Plug-Inをインストールします。このインストールは、ネットワークおよびセキュリティに依存するライブラリとシングル・サインオン登録ツールに対してのみ必要です。サーバーは実行中である必要はありません。
シングル・サインオンの登録処理により、シングル・サインオン・サーバーとリスナーは、通信の前に、サーバーの位置、プロトコルのバージョンおよび共通暗号鍵などの情報を共有できるようになります。登録処理後、この情報はシングル・サインオンのパートナ・アプリケーション・エントリとしてシングル・サインオン・サーバー側に格納されます。リスナー側には、osso_conf
というシングル・サインオン・ファイルが作成されます。osso_conf
ファイルは、セキュリティの目的で不明瞭化されています。このファイルをリスナーがアクセスできるように適切な場所にコピーします。
関連項目: Oracleシングル・サインオンへの登録方法の詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。 |
Oracle SSO Plug-Inを構成するには、osso_plugin.conf
ファイルなどの構成ファイルを作成する必要があります。このファイルは、サード・パーティのリスナーが読取り可能なディレクトリに置く必要があります。ファイル内にすべてのプラグイン機能を定義します。このファイルは、osso
プロパティ・ファイルとも呼ばれます。このファイルには次の内容が含まれます。
LoginServerFile
およびIpCheck
などのプラグイン・ディレクティブ
保護の対象となるリソースに一致するルールのセット
表A-2に、Oracle SSO Plug-Inの構成ディレクティブを示します。
表A-2 Oracle SSO Plug-Inの構成ディレクティブ
ディレクティブ | 機能 |
---|---|
SSO登録処理で得られる これはグローバル・パラメータであり、リソース単位では使用しないでください。用意するシングル・サインオン・サーバー構成ファイルは、1つのみです。
|
|
Cookieの検査時に、Oracle SSO Plug-Inで各リクエストのIPアドレスをチェックする必要があるかどうかを指定します。IpCheckを
注意: Sun Java Systemサーバーとクライアントのブラウザ間にプロキシ・サーバーまたはファイアウォールがある場合は、IpCheckを |
Oracle SSO Plug-Inを介してリソース保護を確実に行うには、一連のルールを定義する必要があります。ルールは、次の形式に従って定義します。
<OSSO url-matching-rule> SSO_configuration_directives </OSSO>
url-matching-ruleの定義には次のルールを使用します。
ルール名 | 説明 |
---|---|
完全一致 |
このオプションでは、ファイルを保護対象リソースとして識別します(例: |
コンテキスト一致 |
このオプションでは、ディレクトリを保護対象リソースとして識別します(例: |
拡張子一致 |
このオプションでは、特定のディレクトリ内で特定の拡張子を持つファイルを保護対象リソースとして識別します(例: |
同じURLに複数のルールを適用すると、次の優先順位が適用されます。
完全一致
最長のコンテキスト一致と拡張子一致
最長のコンテキスト一致
優先順位の例を次に示します。
/foo/bar/index.htmlは、/foo/bar/*より優先
/foo/bar/*.jspは、/foo/bar/*より優先
/foo/bar/*は、/foo/*より優先
例A-2は、リソース保護のためのコマンドを含む単純なファイルを示しています。この例では、/private/hello.html
ファイルに対してIpCheck
ディレクティブがfalse
に設定されていますが、/private2/*.jsp
に対してはtrue
に設定されています。この設定により、/private2/*.jsp
ファイルへのリクエストで使用されるCookieに別のユーザーがアクセスできないようにします。
この項では、Oracle SSO Plug-Inを使用するためのMicrosoft IIS 6.0リスナーの構成手順について説明します。このプラグインは、単一の.dll
ファイル(oracle_osso.dll
)で構成されています。プラグインをインストールするには、Microsoft IIS 6.0が常駐するホストに.dll
をコピーして、次の手順を実行します。
Microsoft Windowsレジストリ エディタを使用して、新しいレジストリ・エントリを作成します。
「スタート」メニューから「ファイル名を指定して実行」を選択し、ダイアログ・ボックスにregedit
と入力して「OK」をクリックします。「レジストリ エディタ」ウィンドウが表示されます。
「レジストリ エディタ」ウィンドウで、名前の前のプラス記号(+)をクリックしてHKEY_LOCAL_MACHINEフォルダを開きます。
名前の前のプラス記号(+)をクリックしてSOFTWAREフォルダを開き、「ORACLE」フォルダをクリックします。
「編集」メニューの「新規」→「キー」を選択します。ORACLEフォルダの下に「新しいキー #1」という名前の新規フォルダが追加されます。
キー名としてIIS OSSO Adapter
を入力します。
「編集」メニューの「新規」→「文字列値」を選択します。新しい値が「New Value #1」という名前の右ウィンドウ・ペインに追加されます。値の名前にcfg_file
と入力します。
「編集」メニューの「修正」を選択します。「文字列の編集」ダイアログ・ボックスが表示されます。
「値のデータ」フィールドに、作成したOSSO Plug-In構成ファイルのフルパス(たとえば、c:\osso\osso_plugin.conf
)を入力します。
注意: これはプラグイン構成ファイルであり、SSO登録処理で生成される暗号化された |
オプションで、d.)からh.)に示した手順を使用して、log_fileおよびlog_levelを指定できます。
名前log_file
とログ・ファイルの格納場所(c:\osss\osso_plugin.log
など)を指定する文字列値を追加します。
名前log_level
と必要なログ・レベルを指定する文字列値を追加します。有効な値は、debug
、inform
、error
およびemerg
です。
「ファイル」メニューから「レジストリ エディタの終了」を選択して、「レジストリ エディタ」ウィンドウを閉じます。
Microsoft IIS管理コンソールを使用し、osso.dll
と同じ物理パスを指定して、Microsoft IIS Webサイトに新規の仮想ディレクトリを追加します。
「スタート」→「プログラム」→「管理ツール」→「インターネット インフォメーション サービス(IIS)マネージャ」をクリックして、IISマネージャを開きます。
サーバー名の前のプラス記号(+)をクリックしてserverフォルダを開きます。
「デフォルト・サイト」フォルダを右クリックし、メニューから「新規」→「Virtual Directory」の順にオプションを選択します。
「仮想ディレクトリの作成ウィザード」ウィンドウで、「エイリアス」にossoを入力します。次に、oracle_osso.dll
ファイルが含まれるディレクトリを参照するかそのパス(たとえば、c:\osso
)を入力し、「ISAPIアプリケーションやCGI等を実行する」チェック・ボックスを選択します。
「完了」をクリックして、仮想ディレクトリの作成ウィザードを閉じます。
Microsoft IIS管理コンソールを使用し、Microsoft IIS Webサイトにフィルタとしてoracle_osso.dll
を追加します。フィルタ名はossoとし、その実行可能ファイルはoracle_osso.dll
ファイルを含むディレクトリを指す必要があります。
「デフォルト・サイト」フォルダを右クリックし、メニューから「プロパティ」オプションを選択します。
「既定のWebサイトのプロパティ」ウィンドウで、「ISAPIフィルタ」タブを選択します。
「追加」をクリックして、新しいフィルタを追加します。
「フィルタのプロパティの追加と編集」ウィンドウが表示されます。
「フィルタ名」フィールドに、フィルタ名のossoを入力します。
「実行可能ファイル」フィールドに、oracle_osso.dll
が含まれる場所のパス(たとえば、c:\osso\oracle_osso.dll
)を入力するか、省略記号(「...」)ボタンをクリックして、oracle_osso.dll
ファイルが含まれるフォルダに移動します。
「OK」をクリックして、「フィルタのプロパティの追加と編集」ウィンドウを閉じます。
「OK」をクリックして、「既定のWebサイトのプロパティ」ウィンドウを閉じます。
Oracleホーム・ディレクトリのセキュリティ設定を構成します。必ず管理者ユーザーとしてマシンにログインしてください。
Windowsエクスプローラで「ORACLE_HOME\bin」
フォルダを右クリックし、メニューから「プロパティ」を選択してから「セキュリティ」タブをクリックします。
「読み取りと実行」権限を指定してIIS_WPG、NETWORKおよびNETWORK SERVICEグループを追加します。
「OK」をクリックします。
Microsoft IIS 6.0サーバーを停止してから再起動します。
注意:
|
この項では、Oracle SSO Plug-Inを使用するためのMicrosoft IIS 7.0リスナーの構成手順について説明します。このプラグインは、単一の.dll
ファイル(oracle_osso.dll
)で構成されています。プラグインをインストールするには、Microsoft IIS 7.0が常駐するホストに.dll
をコピーして、次の手順を実行します。
A.2.5項「Oracleシングル・サインオンを使用するためのMicrosoft IIS 6.0リスナーの構成」のステップ1を実行し、Microsoft Windowsレジストリ エディタを使用してプラグインに新しいレジストリ・エントリを作成します。
Microsoft IIS管理コンソールを使用し、Microsoft IIS Webサイトにフィルタとしてoracle_osso.dll
を追加します。
「スタート」→「プログラム」→「管理ツール」→「インターネット インフォメーション サービス(IIS)マネージャ」をクリックして、IISマネージャを開きます。
サーバー名(たとえば、DSCDAA10-VM6)の前のプラス記号(+)をクリックして、serverフォルダを開きます。
名前の前のプラス記号(+)をクリックしてSitesフォルダを開きます。
「既定のWebサイト」アイコンをクリックして、「既定のWebサイトのホーム」ページを開きます。
「ISAPIフィルタ」アイコンをダブルクリックして「ISAPIフィルタ」ページを開き、次のタスクを完了します。
「操作」ペインで「追加」をクリックして、「ISAPIの追加」ダイアログ・ボックスを開きます。
「フィルタ名」フィールドにossoを入力します。
「実行可能ファイル」フィールドに、oracle_osso.dll
が含まれる場所のファイル・システム・パス(たとえば、c:\osso\oracle_osso.dll
)を入力するか、省略記号(「...」)ボタンをクリックして、oracle_osso.dll
ファイルが含まれるフォルダに移動します。
「OK」をクリックします。
Oracleホーム・ディレクトリのセキュリティ設定を構成します。必ず管理者ユーザーとしてマシンにログインしてください。
Windowsエクスプローラで「ORACLE_HOME\bin」
フォルダを右クリックし、メニューから「プロパティ」を選択してから「セキュリティ」タブをクリックします。
「読み取りと実行」権限を指定してIIS_WPG、NETWORKおよびNETWORK SERVICEグループを追加します。
「OK」をクリックします。
「コントロール パネル」の「サービス」を開き、World Wide Web Publishing Serviceをいったん停止して再起動することにより、Microsoft IISサーバーを再起動します。
注意:
|
この項では、一般的な問題および解決策について説明します。
パスにORACLE_HOME
を含めていない可能性があります。
解決策
UNIXの場合、ライブラリ・パス変数にORACLE_HOME
/lib
が含まれていることを確認します。Microsoft Windowsの場合、パスにORACLE_HOME
\bin
が含まれていることを確認します。
osso.log
ファイルで引き続きこのメッセージを受け取る場合は、A.2.4項「Oracle SSO Plug-Inの構成」の説明に従って、すべての構成ファイルが正しく構成されていることを確認します。
Microsoft IIS用Oracle SSO Plug-InがHTML認証で機能しない場合
Oracle SSO Plug-Inは、他の認証モジュールと連動しない設計になっています。認証は、ネイティブなリスナー認証モジュールまたはサード・パーティ・モジュールのいずれかです。