8 Oracle Fusion Middlewareのセキュリティのチューニング
Oracle Fusion Middlewareのセキュリティ・サービスをチューニングし、Oracle Platform Security Services (OPSS)およびOracle Web Servicesを通じてセキュリティ・サービスのパフォーマンスを最適化できます。
- セキュリティ・サービスについて
Oracle Fusion Middlewareは、Oracle Platform Security Services (OPSS)およびOracle Web Servicesを通じてセキュリティ・サービスを提供します。 - チューニングに関する基本的な考慮事項
チューニングを考慮することによって、Oracle Fusion Middlewareセキュリティ・サービスのパフォーマンスを向上させることができます。 - Oracle Platform Security Servicesのチューニング
Oracle Platform Security Services (OPSS)には、次の基本的なチューニング構成が含まれています。 - Oracle Web Services Securityのチューニング
Oracle Web Services Securityでは、XMLベースのメッセージを使用するWebサービスとの相互作用のために、認証と認可のフレームワークが提供されます。Webサービスのパフォーマンスには、影響を与えるいくつかの要因があります。
親トピック: コア・コンポーネント
セキュリティ・サービスについて
Oracle Fusion Middlewareは、Oracle Platform Security Services (OPSS)およびOracle Web Servicesを通じてセキュリティ・サービスを提供します。
-
Oracle Platform Security Services
Oracle Platform Security Servicesは、Oracle Fusion Middlewareの主要コンポーネントです。セキュリティ・サービスの統合スイートであり、Javaセキュリティ・モデルを使用するJava SEアプリケーションやJava EEアプリケーションと簡単に統合できます。セキュリティ・サービスには、開発者がアプリケーション環境に組み込むことのできるユーザー認証、認可および委任のサービスを実装する機能が含まれています。こうしたサービスの開発にリソースをつぎ込むかわりに、アプリケーション開発者はアプリケーションの表現やビジネス・ロジックに集中することができます。
Oracle Platform Security for Javaを使用すると、アプリケーションのリソース・ユーザーに対してきめ細かなアクセス制御を実施できます。そのための主なステップは次の3つです。
-
適宜ログイン・モジュールを構成して呼び出します。付属のログイン・モジュールを使用することも、カスタム・ログイン・モジュールを使用することもできます。
-
ログインしようとするユーザーを認証します。これはアイデンティティ・ストア・サービスの役割です。
-
そのロールの権限をチェックすることで、ユーザーを認可します。
-
-
Oracle Web Services Security
Oracle Web Services Securityは、XMLベースのメッセージを使用してWebサービスとやり取りするための認可および認証のフレームワークを提供します。
ノート:
ここに記載されている内容は、読者がOracle Fusion Middlewareセキュリティ・サービスの概念および管理についての情報に目を通し、理解していることを想定しています。セキュリティ・パラメータをチューニングする前に、『Webサービスの管理』を参照してください。
チューニングに関する基本的な考慮事項
チューニングを考慮することによって、Oracle Fusion Middlewareセキュリティ・サービスのパフォーマンスを向上させることができます。
パフォーマンス・ボトルネックを見つけた場合、Webサービスのデプロイ全体において、予期されるトラフィック負荷に対応しているかどうかを最初に確認する必要があります。システムが、CPU使用率100%のクリティカル・パスの状態にある場合、クラスタに1つ以上のコンピュータを追加します。
デプロイメントにボトルネックが存在する場合、その発生箇所はおそらく次のいずれかです。
-
エージェントとの低速な接続を介したトラフィック
-
JMSのようなサード・パーティのキューイング・システムへの接続待機時間
どちらの問題についても、次の原因を確認します。
-
外部リソース(特に次のタイプ)への接続を含むポリシー・アサーションの問題
-
データベース・リポジトリ
-
LDAPリポジトリ
-
セキュア・リソース
-
独自のセキュリティ・システム
-
-
データベース・パフォーマンスの問題
これらのいずれかがボトルネックの原因であると判明した場合は、データベースまたはLDAP接続の管理方法、あるいはリソースの保護方法を変更する必要があります。
Oracle Platform Security Servicesのチューニング
Oracle Platform Security Services (OPSS)には、次の基本的なチューニング構成が含まれています。
JVMチューニング・パラメータ
JVMパラメータをチューニングすると、パフォーマンスが大幅に向上します。たとえば、JVMヒープ・サイズはストア内のロールおよび権限の数に応じてチューニングする必要があります。実行時には、ロールおよび権限はすべてメモリー内キャッシュに格納されます。JVMチューニングの詳細は、Java仮想マシン(JVM)のチューニングを参照してください。
JDKチューニング・パラメータ
Java Development Kit 7 (JDK 7)から、現在のデフォルトのキーストア・サイズは2048ビットです。JDK 6以前ではデフォルト・サイズが1024ビットでした。
Javaキーツールを使用してキーストアを生成する際には、-keysize
パラメータをキーストア・サイズの制御に使用できます。キーストアが大きいほど、セキュリティのパフォーマンスの低下という犠牲を払うことになりますが、セキュリティはより強固になります。使用環境のユースケース・シナリオを検討して、キーストアの増加がセキュリティまたはパフォーマンスのしきい値に悪影響を与えないか判断してください。
JDK 7のリリース・ノート(http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html
)を参照してください
認証チューニング・パラメータ
OPSS認証チューニングの詳細は、Oracle Technology Networkに掲載されているOracle Fusion Middleware Oracle WebLogic Serverの保護ガイドの、WebLogicおよびLDAP認証プロバイダのパフォーマンスの向上に関する項(http://download.oracle.com/docs/cd/E12840_01/wls/docs103/secmanage/atn.html#wp1199087
)を参照してください。
認可チューニング・プロパティ
次のJavaシステム・プロパティを使用して、認可を最適化できます。
表8-1 認可プロパティ
Javaシステム・プロパティ | デフォルト値 | 有効な値 | ノート |
---|---|---|---|
|
|
|
JPSは、サブジェクト・リゾルバを使用して、プラットフォーム・サブジェクトを 特にサブジェクトのプリンシパル・セットが大規模な場合、この変換はCPUへの負荷が高いです。パフォーマンスを向上するために、JPSコードはプラットフォーム・サブジェクトとJpsSubject 次の設定を使用して、キャッシュ・キーを構成できます。
|
|
|
5の場合(前述)のキャッシュの存続時間(TTL)。このシステム・プロパティは、キャッシュが有効な期間を制御します。有効期限が切れると、キャッシュされた値はダンプされます。設定は、フラグ このTTL設定の期間を、WLS LDAPオーセンティケータでグループおよびユーザー・キャッシュTTLに使用される値と同じ値に設定することを検討してください。 |
|
|
|
|
このシステム・プロパティを使用して、特定のサブジェクトの保護ドメインをキャッシュします。フラグ |
|
|
|
このシステム・プロパティを使用して、checkPermissionが発生する場合のサブジェクトの保護ドメインを評価します。フラグ |
|
|
|
このハイブリッド・モード・プロパティを使用して、SUN java.security.PolicyからOPSS Javaポリシー・プロバイダへの遷移を促進します。 OPSS Java Policy Providerでは、 |
|
|
|
コールをJDK APIの ACC: SM: SecurityManagerが設定されている場合、 |
OPSS PDPサービス・チューニング・パラメータ
表8-2に、ポリシー・ストアのOPSSチューニング・パラメータを示します。
表8-2 OPSS PDPサービス・チューニング・パラメータ
パラメータ | デフォルト値 | 有効な値 | ノート |
---|---|---|---|
|
|
|
このパラメータには、ロール・メンバーのキャッシュ・タイプを指定します。Java EEアプリケーションでのみ有効です。 有効な値:
最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
|
|
ロール・メンバーのキャッシュで使用する戦略のタイプ。Java EEアプリケーションでのみ有効です。 有効な値:
最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
|
ロール・メンバーのキャッシュのサイズ。参照するロールは、エンタープライズ・ロール(グループ)です。最初にIDストアのグループ数を確認できます。次に、パフォーマンス要件に基づいて、この数値をフル・キャッシュ・シナリオのグループ数に設定できます。または、部分グループ・キャッシュ・シナリオの特定の比率のグループ数に変更できます。 |
|
|
|
|
ポリシーの遅延ロードを有効または無効にします。このパラメータをFalseに設定すると、特に大きいポリシー・ストアでサーバーの初回の起動に時間がかかります。起動時間を短縮する場合、推奨値はTrueです。 |
|
|
|
パーミッションのキャッシュで使用する戦略のタイプ。Java EEアプリケーションでのみ有効です。 有効な値:
最適なパフォーマンスを確保するために、デフォルト値を使用することを検討してください。 |
|
|
パーミッションのキャッシュのサイズ。すべてのポリシーをキャッシュする場合、この値を付与の合計数に設定できます。 |
|
|
|
|
このプロパティは、リフレッシュを有効にする目的で使用します。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
|
|
このプロパティは、リフレッシュを有効にする目的で使用します。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
|
ポリシー・ストアがリフレッシュされるまでの時間(ミリ秒)。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
|
|
ポリシー・ストアで変更がポーリングされる間隔(ミリ秒)。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。このプロパティは、Java EEおよびJ2SEアプリケーションで有効です。 |
|
|
|
|
このプロパティによって、 ユーザーおよびグループの数がアプリケーション・ロールの数を上回っている場合はTrueに設定します。それ以外の場合、つまりアプリケーション・ロールの数が多い場合はFalseに設定します。 |
Oracle Web Services Securityのチューニング
Oracle Web Services Securityは、XMLベースのメッセージを使用してWebサービスとやり取りするための認可および認証のフレームワークを提供します。Webサービスのパフォーマンスには、影響を与えるいくつかの要因があります。
適切なポリシーの選択
Oracle Web Services Securityでは多くのポリシーがサポートされていますので、デプロイメントのセキュリティ・ニーズに基づいて適切なポリシーを実装する必要があります。追加するセキュリティ・ポリシーはそれぞれパフォーマンスに影響を与える可能性があるため、パフォーマンスを十分に考慮してください。たとえば、トランスポート・レベルのセキュリティ(SSL)は、アプリケーション・レベルのセキュリティより拘束ですが、トランスポート・レベルのセキュリティは多段階トランザクションで脆弱な場合があります。アプリケーション・レベルのセキュリティの方がパフォーマンスへの影響は大きいものの、エンドツーエンドのセキュリティを実現できます。
デプロイメントに必要なセキュリティ・ポリシーを決定するには、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の使用する事前定義済ポリシーの決定に関する項を参照してください。
ポリシー・マネージャ
データベースベースのポリシー強制を使用する際には、パフォーマンスへの影響がつきものです。データベース・ポリシーの強制を選択した場合、エージェントからデータベースへのポーリングの頻度を慎重に検討する必要があります。
SOAPメッセージを記録するためのログ・アサーションの構成
デフォルト・ポリシーのリクエスト・パイプラインおよびレスポンス・パイプラインには、ポリシー強制ポイント(PEP)でSOAPメッセージをデータベースまたはコンポーネント別ローカル・ファイルに記録するログ・アサーションが含まれています。ロギング・レベルはパフォーマンスに影響を与えることがあります。パフォーマンスの問題を回避するには、デプロイメントに適した最低のロギング・レベルを使用することを検討してください。
ログ・ステップ内に構成できるロギング・レベルには次のものがあります。
-
ヘッダー: SOAPヘッダーのみを記録します。
-
本文: メッセージの内容(本文)のみが記録されます。
-
エンベロープ: SOAPエンベロープ全体(ヘッダーと本文の両方を含む)が記録されます。添付は記録されません。
-
すべて: メッセージ全体が記録されます。これには、SOAPヘッダー、本文、およびすべての添付(SOAPメッセージそのものの外部に存在するURLなど)が含まれます。
ノート:
通常、ログ・ファイルがトポロジ的に強制コンポーネントに近い場所に配置される場合、システム・パフォーマンスが向上します。可能であれば、著しい分散環境では複数の分散ログを使用してください。
接続プーリングの構成
com.sun.jndi.ldap.connect.pool
環境プロパティを使用して、コンテキスト・インスタンスが接続プーリングを使用するように要求した場合、使用される接続はプールされることもありますが、プールされないこともあります。デフォルト・ルールでは、単純な認証を使用する、または認証を使用しないプレーン(非SSL)接続のプールを許可します。このデフォルトは、システム・プロパティを使用して、SSL接続およびDIGEST-MD5認証タイプを含むように変更できます。プレーン接続とSSL接続の両方のプールを許可するには、次に示すように、com.sun.jndi.ldap.connect.pool.protocol
システム・プロパティに文字列plain ssl
を設定します。
"-Dcom.sun.jndi.ldap.connect.pool.protocol="plain ssl"
Webサービスのパフォーマンスの監視
Oracle Fusion Middleware Controlの「Webサービス」ホームページで、次のOracle Web Servicesのパフォーマンスをモニターできます。
-
次のエンドポイント有効メトリック
-
ポリシー参照ステータス
-
違反の合計
-
セキュリティ違反
-
-
完了した呼出し
-
レスポンス時間(秒)
-
次のポリシー違反
-
違反の合計
-
認証違反
-
認可違反
-
機密保持違反
-
整合性違反
-
-
フォルトの合計
Oracle Fusion Middlewareコンポーネントのモニタリングの概要は、を参照してください。
Oracle Fusion Middleware Controlを使用したOracle Webサービスのモニタリングの詳細は、Webサービスの管理のパフォーマンスのモニタリング、監査およびチューニングの概要に関する項を参照してください。