Oracle Access Manager インストレーション・ガイド 10g(10.1.4.2.0) E05811-01 |
|
この章では、Oracle Access ManagerのためにApache v1.3 Webサーバーを構成する方法について説明します。10g(10.1.4.0.1) Webコンポーネント(WebPass、ポリシー・マネージャ、WebGate)は、Oracle HTTP Server(OHS)10g R2(10.1.2)もサポートしています。
次の項目について説明します。
OHSは、Oracle HTTP Server(OHS)Webサーバーと通信するWebコンポーネント(WebPass、ポリシー・マネージャ、WebGate)の識別にOracle Access Managerで使用される、インターネットWebサーバーの拡張機能です。たとえば、OHSに対応するWebGateをインストールするには、次のパッケージが必要です。
Oracle_Access_Manager10_1_4_0_1_Win32_OHS_WebGate
OHS 10g R2(10.1.2)はApache v1.3に基づいています。Oracle Access Manager 10g(10.1.4.0.1)では、LinuxおよびWindowsのプラットフォームのスタンドアロンOracle HTTP Serverにインストールできる、Webコンポーネントが提供されます。ただし、特別な要件に注意する必要があります。
次のようなOHSの詳細は、『Oracle HTTP Server管理者ガイド』を参照してください。
この後で説明するOHS Webコンポーネントの注意事項をよく理解してください。「OHSクライアント証明書の設定」も参照してください。
Oracle Access Manager 10g(10.1.4.0.1) WebコンポーネントをOHSに対して使用する場合、Linuxでは次の点に注意してください。
LD_ASSUME_KERNEL=2.4.19
環境変数を設定する必要があります。Linuxの以前のスレッド・モデルがサポートされているためです(ネイティブのposixスレッド・ライブラリ(NPTL)ではない)。
WindowsおよびLinuxプラットフォームでOHSに対してOracle Access Manager 10g(10.1.4.0.1) Webコンポーネントを使用する場合、httpd.confでWindowsとLinux両方のプラットフォームについてPerlモジュールをコメント化する必要があります。
ここでは、Apacheのプロセスに基づくアーキテクチャが様々なOracle Access Manager Webコンポーネントにどのように影響するかを説明します。
Apache v1でのアイデンティティ・サーバーとWebPassの通信:
Apache v1でのポリシー・マネージャ:
Apache v1でのWebGate:
Apache v1.3はプロセスベースのWebサーバーです。Apache Webサーバーは、各リクエストを処理するように構成されたフィルタを含むクライアント・プロセスを作成します。結果として、各クライアント・プロセスにはWebGateが組み込まれます。
Apache Webサーバーが250のMaxClientsを使用する(ピーク負荷時)ように構成されている場合、これらすべてのプロセスが実行すると250のWebGateが実行時に生成されます。各WebGateは、WebGate定義で指定された接続構成を使用します。たとえば、WebGate構成で1つのアクセス・サーバーに対して4つの接続がある場合、各クライアント・プロセスは構成されているアクセス・サーバーに対して4つの接続を生成します。このため、ピーク負荷時には、アクセス・サーバーに対して1000(250 * 4)の接続が生成されます。
アクセス・サーバーでは、各接続がメッセージ・スレッドに対応し、メッセージ・スレッドがソケットからクライアント・リクエストを読み取ります。ここで説明した構成では、ピーク負荷時には1つのWebGateのリクエストを処理するためだけに1000個のスレッドが生成されます。複数のApache v1.3 Webサーバーが1つのアクセス・サーバーにアクセスするように構成されている場合、この数は各Webサーバーからの接続の合計数になります。このようにアクセス・サーバーのスレッド数は膨大になることがあります。
プロセスのスレッド数が増加すると、CPU使用率やメモリー使用率に関するオーバーヘッドが大きくなります。一部のオペレーティング・システムでは、スレッド数が一定を超えるとスラッシングが開始されるため、アクセス・サーバーのパフォーマンスに悪影響を与えます。
Apache v1.3 Webサーバーは、リクエストの負荷に基づいてクライアント・プロセスを作成および廃棄します。また、子プロセス間のリクエストのロード・バランスを行います。結果として各子プロセスは最大でも1リクエストを処理します。この場合、必要な接続は1つのアクセス・サーバーに対して1つのみになります。
1つのWebGateに2〜3のアクセス・サーバーを構成して、このWebGateからアクセス・サーバーに対する負荷をロード・バランスすることもできます。次に例を示します。
この場合は次の処理が行われます。
ただし、子プロセスの存続期間内に1リクエストがWebサーバーからWebGate1に送信される場合は、AccessServer2とAccessServer3の接続1は使用されないことがあります。
まとめると、Apache v1.3のような複数プロセスWebサーバーでは、1つのアクセス・サーバーに対して1つの接続しか必要ありません。
Apache v2の場合、2つのmpmモード(worker_mpmおよびpre-fork_mpm)で作動するようにWebサーバーを構成できます。worker_mpmでは、リクエストのロード・バランスのためにWebサーバーにスレッドが作成されます。この場合、生成されるプロセス数を決定するためにThreadsPerChildとMaxClientsが使用されます。アクティブな子プロセスの最大数は、MaxClientsディレクティブをThreadsPerChildディレクティブで割った数値です。各プロセスにはWebGateが含まれます。pre-fork mpmの場合、Apache v1.3と同様の動作になり、リクエスト当たりに1つの子プロセスが作成されます。詳細は、第17章「Oracle Access ManagerのためのApache v2、IHSおよびOHS Webサーバーの構成」を参照してください。
Oracle Access Manager Webコンポーネントのインストール時には、Webサーバー構成ファイルを更新する必要があります。Oracle Access Manager Webコンポーネントをインストールする際には、Webサーバー構成ファイルの自動更新を選択することをお薦めします。
Oracle Access Manager 10g(10.1.4.0.1)のHTMLページではUTF-8エンコーディングが使用されます。ApacheベースのWebサーバーでは、管理者がAddDefaultCharsetディレクティブを使用して、送出されるすべてのHTMLページのデフォルト・キャラクタ・セットを指定できます。このディレクティブは、HTMLページを生成するアプリケーションで指定されるすべてのキャラクタ・セットよりも優先されます。AddDefaultCharsetディレクティブでUTF-8以外のキャラクタ・セットを有効にすると、Oracle Access ManagerのHTMLページが文字化けします。
Oracle Access Manager 10g(10.1.4.0.1)のHTMLページを正しく表示するには、AddDefaultCharsetディレクティブをWebサーバー構成ファイル(httpd.conf)に次のように指定することをお薦めします。
AddDefaultCharset Off
このディレクティブの詳細は、Webサーバーのドキュメントを参照してください。
また、Apache v1.3、OHSまたはStronghold Webサーバーを実装するには、システムが次の要件を満たすことも必要です。
Apache v1.3の最新バージョンには重要なセキュリティの修正が含まれています。最新リリースのApache 1.3の使用を強くお薦めします。詳細は、次を参照してください。
http://apache.org
ベースApache 1.3 Webサーバーは、ブラウザ接続でSSL(https://
リクエストへの応答)を使用しません。SSLサポートのためのアドオン・モジュールmod_ssl
は、次のWebサイトで入手できます。
http://www.modssl.org
ベースApacheサーバーに対するOracle Access Managerプラグインは、mod_ssl
を含むApache(EAPI使用とも呼ばれる)のプラグインとは次の点で異なります。
OHSの詳細は、『Oracle HTTP Server管理者ガイド』を参照してください。Oracle Access Manager 10g(10.1.4.0.1)のサポートの詳細は、「互換性とプラットフォームのサポート」を参照してください。
IHS(IBM HTTP Server powered by Apache)はApache 1.3の一種です。IHSでは異なる実装のSSLが使用されます。Oracle Access Managerでは、ベースIHS(非SSL)とIHS SSLプラグイン・インタフェースの両方をサポートしています。
詳細は、第2章「インストールの準備」および「ベースApache Webサーバーのダウンロードとコンパイル」を参照してください。
Apache v1、OHSおよびIHSに対応するOracle Access Manager Webコンポーネントは、インストール内の1つのWebGateとすることも、他のWebGateと混在させることも可能です。詳細は、「アクセス・システムのガイドライン」を参照してください。
最新のサポート情報は、次のサイトの「Certify」タブを参照してください。
この説明はApacheオープン・ソースv1.3のみに適用されます。Apache 1.3の最新バージョンは次のApache Webサイトからダウンロードできます。
http://apache.org
SSLプラグインmod_sslは次のWebサイトで入手できます。
http://www.modssl.org
これらのサイトには、Apacheまたはmod_ssl
で必要なその他のソフトウェア(openssl
など)のサイトが示されています。Apache Webサーバーのコンパイル方法は、ソフトウェア・ディストリビューションに含まれています。
Apache WebサーバーでOracle Access Managerプラグインをサポートするには、モジュールmod-soをサーバー・バイナリにコンパイルする必要があります。
次のURLには、最新バージョンのApacheの情報とApacheサーバーのバイナリ・ファイルを入手できるリンクがあります。
http://www.apache.org/dist/httpd/Announcement.html
次のリンクでは、Apacheリリースの構築やソース・コードに関する情報が提供されます。
https://metalink.oracle.com
問題の解決方法が見つからない場合は、サービス・リクエストを記録します。
http://www.oracle.com/technology/deploy/security/index.html
一部のオペレーティング・システムでは構成時に追加のオプションが必要です。ここに示すオプションの一部は、Apache 1.3の一部のリリースでは重複する可能性がありますが、それ以外のリリースで必要です。
次に、プラットフォームごとのオペレーティング・システム構成コマンドの環境設定を示します。
CFLAGS=-D_REENTRANT
LDFLAGS=-lpthreads
CFLAGS=-D_REENTRANT
LDFLAGS=-lpthreads
CFLAGS=-D_REENTRANT
LDFLAGS="-lcl -lpthreads"
HP-UXでは、PA-RISC1コンパイル・オプション(デフォルト)を使用する必要があります。PA-RISC2(64ビット)オプションは使用しないでください。PA-RISC2を使用すると、「missing symbol」、「bad magic number」、「share object is garbled」のようなロード・エラーを受け取ります。Apache EAPI(mod_ssl)コンパイル済モジュールをプレーンなApacheサーバーにロードすると、どのオペレーティング・システムでも同様のエラーが表示されます。
AIXでは、環境変数AIXTHREAD_SCOPEを値S(大文字)に設定する必要があります。そうしないと、ワーカー・プロセスの終了時にセグメント・エラーが発生することがあります。ただし、WebGateによるコンテンツ配信、認証または認可決定には影響しません。
また、AIXでは、次のディレクティブをhttpd.confファイルに指定することをお薦めします。
AcceptMutex fcntl
このディレクティブがサポートされているのはApache 1.3.24以上のみです。WebGateによるコンテンツ配信、認証または認可決定には影響しません。ただし、(/server-status URLを介して)他のプラットフォームでのApacheの動作がよくわかっている場合は、この設定の使用をお薦めします。
Oracle Access Manager Webコンポーネント(WebPass、ポリシー・マネージャおよびWebGate)は特定の順序でインストールする必要があります。次に例を示します。
詳細は、「インストール・タスクの概要」を参照してください。
Oracle Access Manager Webコンポーネント(WebPass、ポリシー・マネージャおよびWebGate)のインストール時には、Apache Webサーバー構成ファイル(httpd.conf)の手動または自動更新を選択できます。Webサーバー構成ファイルは自動で更新することをお薦めします。httpd.confの手動更新を選択すると手順が指示されます。
Oracle Access Manager Webコンポーネントをインストールするとき、Webサーバー構成ファイルの場所を指定するように求められます。Apacheではhttpd.confのフルパスを入力します。たとえば、httpd.confファイルはApache_install_dir/confディレクトリにあります。
Oracle Access Manager WebコンポーネントをインストールしてWebサーバー構成を最初に更新した後で、httpd.confファイルを再更新する必要がある場合、Component_install_dir/oblix/apps/common/docs/config.htmのconfig.htmファイルを参照してください。または、Component_install_dir/oblix/tools/setup/InstallTools/ManageHttpConfにあるManageHttpConfプログラムを使用してください。オプションを指定せずにManageHttpConfを実行すると、使用方法が表示されます。
Apache 1.3は、複数のhttpリクエストを一度に処理するためのプロセス・モデルを使用します。これは、他のWebサーバーで採用されている、複数のリクエストを同時に1プロセスで管理するシングル・プロセス(スレッド)モデルとは異なります。Apacheの各下位ワーカー・プロセスが、その他の各ワーカー・プロセスの受信httpリクエストに個別に応答します。
Apacheサーバー構成ファイル(httpd.conf)のいくつかのパラメータが、Apacheサーバーによるワーカー・プロセスの作成または廃棄の決定に影響します。次のパラメータはサーバーのパフォーマンスに影響します。
MaxSpareServers
を超えるアイドル・プロセスがある場合、親プロセスが過剰なプロセスを停止します。サーバーの状態をできるだけ安定させるには、MaxSpareServers
に高い値を設定します。この値を最大の255に設定すると、すべてのApacheワーカー・プロセスが無制限に使用可能になります。ただし、低負荷時のワーカー・プロセスのリサイクルは行われません。
MaxClients
の制限を超えて接続しようとすると、通常は、ListenBacklog
ディレクティブに基づく数までがキューに入ります。別のリクエストが終了して子プロセスが解放されると、接続が処理されます。
MaxClientRequests
を0より大きな値に設定することで、ワーカー・プロセスが応答できるリクエスト数を制限できます。そのプロセスが終了すると、必要が生じた時点ですぐに新しいワーカー・プロセスに替わられます。この安全メカニズムに問題はありませんが、Oracle Access Manager Webコンポーネント(プラグイン)の起動の遅延がWebブラウザで認識されます。このパラメータを使用する場合は、エンド・ユーザーが起動の遅延に気付かないように十分に高い値を設定してください。Oracle Access Managerプラグインは、この安全メカニズムがなくてもWebサーバーで実行するように設計されています。
Oracle Access Managerプラグインの初期化が最初のリクエストまで行われないという事実のため、MinSpareServers
パラメータに高い値を設定しても最小限の利点しか得られません。ただし、このパラメータはできるだけ高い値にしておくと役立ちます。専用Webサーバー・システムの場合は、この設定によって非常に高い負荷が発生することはありません。
ここで説明したパラメータの適切な値は、予期される負荷や関連するシステム(アクセス・サーバーやLDAPサーバーなど)のパフォーマンス・クラスによって異なります。
非常に高いパフォーマンスのシステムで高負荷が予想される場合は、ワーカー・プロセス数の制限を高くしてApacheサーバーを再コンパイルできます。このようなシステムでは、瞬間的な負荷の急上昇に対処する際に、StartServersパラメータやMinSpareServersパラメータによるパフォーマンスへの大きな影響を確認できます。
場合によっては、アクセス・サーバーを適切に運用できるようにオペレーティング・システムの制限を調整する必要があります。特に、1つのアクセス・サーバーで使用できるファイル記述子の最大数はデフォルト値よりも増やすことをお薦めします。各ApacheベースWebGateと1つのアクセス・サーバーの間に複数の接続を構成すると、すぐにデフォルト制限を上回ります。
ポリシー・マネージャのパフォーマンスは、Apacheとポリシー・マネージャ両方の構成パラメータの影響を受けることがあります。Apacheに対してポリシー・マネージャをチューニングする際には次のファクタを考慮する必要があります。
各ユーザーが1つのブラウザを使用すると仮定すると、イメージ、js、HTMLに対する4〜5個の同時リクエストがブラウザからWebサーバーに送られます。同時ユーザーが4名と仮定すると、Webサーバーに対する同時リクエストの合計数は20(4 * 5)になります。
このようなファクタがある場合、新しいユーザーを処理する速さとディレクトリ・サーバーの接続数のバランスを取るためには、次の設定をお薦めします。
ポリシー・マネージャが接続を作成するときの遅延を埋め合せるために、すべてのディレクトリ・サーバー・プロファイルですべてのディレクトリ・サーバー接続を1に設定するようにポリシー・マネージャを構成できます。この場合、次のようにApacheを構成できます。
このように設定すると、ポリシー・マネージャは、最初のリクエストでの遅延があったとしても適切な速さで応答します。
cert_decodeおよびcredential_mappingプラグインを使用するときは、+EarlierEnvVars
と+ExportCertData
をOHS Webサーバー構成ファイルの既存のSSLオプションに追加して、アクセス・システム・クライアント証明書の認証スキームが、SSL対応OHSで適切に作動することを確認する必要があります。次に例を示します。
credential_mapping:
obMappingBase="o=company,c=us",obMappingFilter= "(&(objectclass=InetOrgPerson)(mail=%certSubject.E%))"
ssl.confに次のオプションを指定する必要があります。
SSLOptions +StdEnvVars +ExportCertData +EarlierEnvVars
$ORACLE_HOME/Apache/Apache/conf/ssl.conf
SSLOptions +StdEnvVars +ExportCertData +EarlierEnvVars
OHSに対してOracle Access Manager Webコンポーネントをインストールした後で、次の手順を実行する必要があります。
$oracle_home/opmn/bin/opmn.xml
<ias-component id="HTTP_Server"> <process-type id="HTTP_Server" module-id="OHS2"> <environment> <variable id="TMP" value="/tmp"/> <variable id="LD_ASSUME_KERNEL" value="2.4.19"/> </environment> <module-data> <category id="start-parameters"> <data id="start-mode" value="ssl-disabled"/> </category> </module-data> <process-set id="HTTP_Server" numprocs="1"/> </process-type> </ias-component>
#oracle_home/opmn/bin/opmnctl reload
#LoadModule perl_module modules/mod_perl.so #LoadModule php4_module modules/mod_php4.so
次の項では、UNIXおよびWindowsでのApacheサーバーの実行に関する情報を説明します。
OHS Webサーバーの起動と停止は、v1.3とv2の両方ともすべてのプラットフォームで同じ手順です。
$ORACLE_HOME\opmn\bin\
opmnctl/startproc process-type=HTTP_Server
$ORACLE_HOME\opmn\bin\
opmnctl/stopproc process-type=HTTP_Server
次に示すように、通常、Apache Webサーバーの起動または停止には1つの手順を実行します。
UNIXでApache Webサーバーを停止するには、次のようにします。
apachectl stop
コマンドを使用してサーバーを停止します。
./apachectl stop
UNIXでApache Webサーバーを起動および停止するには、次のようにします。
apachectl
コマンドを使用して、サーバーを停止して再起動します。
./apachectl start
SSLモードでサーバーを起動するには、次のようにします。
apachectl startssl
コマンドを使用して、SSLモードでサーバーを起動します。
./apachectl startssl
Apache Webサーバーを起動する方法は、Windowsサービスとして実行するか、アプリケーションとして実行するかによって異なります。次の手順を参照してください。
インストール中に行ったWebサーバー構成の変更は、Oracle Access Managerコンポーネント(WebPass、ポリシー・マネージャ、WebGate)をアンインストールしてから手動で削除する必要があります。このような情報は手動で削除する必要があります。
さらに、Oracle Access Managerコンポーネント(WebPass、ポリシー・マネージャ、WebGate)についてWebサーバー構成ファイルに手動で行ったすべての変更を削除する必要があります。各コンポーネントに追加される内容の詳細は、この章の他の項を参照してください。
詳細は、付録E「インストールの問題のトラブルシューティング」を参照してください。
|
![]() Copyright © 2000, 2007 Oracle Corporation. All Rights Reserved. |
|