ヘッダーをスキップ
Oracle® Fusion Middlewareパフォーマンスおよびチューニング・ガイド
11gリリース2 (11.1.2)
B71702-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

29 Oracle Fusion Middlewareセキュリティのパフォーマンス・チューニング

Oracle Fusion Middlewareセキュリティ・サービスを使用すると、重要なアプリケーションや機密データを保護できます。この章では、セキュリティ・サービスを構成して最適なパフォーマンスを得る方法について説明します。

この章の内容は次のとおりです。

29.1 セキュリティ・サービスについて

Oracle Fusion Middlewareは、Oracle Platform Security Services (OPSS)およびOracle Web Servicesを通じてセキュリティ・サービスを提供します。


注意:

この章の内容は、読者がOracle Fusion Middlewareセキュリティ・サービスの概念および管理についての情報に目を通し、理解しているものと想定して書かれています。セキュリティ・パラメータをチューニングする前に、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』を参照し、詳細を確認してください。


29.2 一般的なパフォーマンスの問題の検出

この項では、パフォーマンス・ボトルネックの特定方法、およびパフォーマンス・ボトルネックなどの問題の解決方法に関して、一般的なガイドラインを示します。

パフォーマンス・ボトルネックを発見するには、まずWebサービスのデプロイメント全体で予想されるトラフィック負荷に対応できていることを確認します。CPU使用率が100%に達しているシステムがクリティカル・パスにある場合は、1台以上のコンピュータをクラスタに追加する必要があります。

デプロイメントにボトルネックが存在する場合、その発生箇所はおそらく次のいずれかです。

どちらの問題についても、次の原因を確認します。

これらのいずれかがボトルネックの原因であると判明した場合は、データベースまたはLDAP接続の管理方法、あるいはリソースの保護方法を変更する必要があります。

29.3 Oracle Platform Security Servicesのチューニング

この項では、Oracle Platform Security Services (OPSS)における次の基本的なチューニング構成について説明します。

29.3.1 JVMチューニング・パラメータ

JVMパラメータをチューニングすると、パフォーマンスが大幅に向上します。たとえば、JVMヒープ・サイズはストア内のロールおよび権限の数に応じてチューニングする必要があります。実行時には、ロールおよび権限はすべてメモリー内キャッシュに格納されます。JVMチューニングの詳細は、第2.4項「Java仮想マシン(JVM)のチューニング」を参照してください。

29.3.2 LDAPチューニング・パラメータ

この項では、Lightweight Directory Access Protocol (LDAP)のチューニングについて説明します。Oracleは、ファイルベースのリポジトリであるOracle Internet DirectoryおよびOracle Virtual Directoryでのポリシーの管理をサポートしています。

SQLの実行に時間がかかるためにCPU使用率が上昇している場合は、次の章を参照し、大規模デプロイメント向けの基本的なチューニング構成を確認してください。

29.3.3 認証チューニング・パラメータ

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)を参照してください。

29.3.4 認可チューニング・プロパティ

次のJavaシステム・プロパティを使用して、認可を最適化できます。

表29-1 認可プロパティ

Javaシステム・プロパティ デフォルト値 有効な値 注意

-Djps.subject.cache.key

4

3

4

5

JPSは、サブジェクト・リゾルバを使用して、プラットフォーム・サブジェクトをユーザー/エンタープライズ・ロール情報およびApplicationRole情報を含むJpsSubjectに変換します。この情報は、サブジェクトではプリンシパルとして表されます。

特にサブジェクトのプリンシパル・セットが大規模な場合、この変換はCPUへの負荷が高いです。パフォーマンスを向上するために、JPSコードはプラットフォーム・サブジェクトとJpsSubject間の変換をキャッシュします。2つのサブジェクトは、コンテンツが同じなのにプリンシパルの名前の大/小文字が異なる場合に、混同される可能性があることに注意してください。

次の設定を使用して、キャッシュ・キーを構成できます。

  • 3: プラットフォーム・サブジェクトをキーとして直接使用します。注意: WLSでprincipalEqualCaseinsensitiveフラグが有効になっている場合、2つのサブジェクトは、コンテンツが同じなのにプリンシパルの大/小文字が異なる場合に、混同される可能性があります。

  • 4: この設定は「3」に似ていますが、大/小文字の区別の問題を解決しています。これはデフォルト設定です。

  • 5: サブジェクト全体をキーとして使用するかわりに、この設定は、サブジェクト内のプリンシパル・セットの一部をキーとして使用します(実際にはWLSUSerImplタイプのプリンシパルを使用します)。

    この設定により、サブジェクトに多数のプリンシパル・セットがある場合、キャッシュ取得操作が高速になります。WLS以外のプラットフォーム(WASやJBOSSなど)では、これは「4」の場合に戻るため、この設定はWLS専用です。この場合、後述のキャッシュが有効な期間を制御する存続時間(TTL)設定フラグもあります。

-Djps.subject.cache.ttl

60000ms


「5」の場合(前述)のキャッシュの存続時間(TTL)。このシステム・プロパティは、キャッシュが有効な期間を制御します。有効期限が切れると、キャッシュされた値はダンプされます。設定は、フラグ-Djps.subject.cache.ttl=xxxxによって制御できます。xxxは、ミリ秒単位の期間です。

このTTL設定の期間を、WLS LDAPオーセンティケータでグループおよびユーザー・キャッシュTTLに使用される値と同じ値に設定することを検討してください。

-Djps.combiner.optimize=true

True

True

False

このシステム・プロパティを使用して、特定のサブジェクトの保護ドメインをキャッシュします。-Djps.combiner.optimize=trueを設定すると、Java認可パフォーマンスを改善できます。

-Djps.combiner.optimize.lazyeval=true

True

True

False

このシステム・プロパティを使用して、checkPermissionが発生する場合のサブジェクトの保護ドメインを評価します。-Djps.combiner.optimize.lazyeval=trueを設定すると、Java認可パフォーマンスを改善できます。

-Djps.policystore.hybrid.mode=true

True

True

False

このハイブリッド・モード・プロパティを使用して、SUN java.security.PolicyからOPSS Javaポリシー・プロバイダへの遷移を促進します。

OPSS Javaポリシー・プロバイダは、java.policyとsystem-jazn-data.xmlの両方を読み取ります。ハイブリッド・モードを無効にするには、WebLogic Serverの起動時にシステム・プロパティjps.policystore.hybrid.modefalseに設定します。-Djps.policystore.hybrid.mode=falseを設定すると、実行時のオーバーヘッドを削減できます。

-Djps.authz=ACC

ACC

ACC

SM

コールをJDK APIのAccessController.checkPermissionに委任します。こうすると、実行時またはデバッグ中のパフォーマンスへの影響を軽減できます。

ACC: AccessController.checkPermissionに委任します。

SM: SecurityManagerが設定されている場合、SecurityManagerに委任します。


29.3.5 OPSS PDPサービス・チューニング・パラメータ

表29-2に、ポリシー・ストアのOPSSチューニング・パラメータを示します。

表29-2 OPSS PDPサービス・チューニング・パラメータ

パラメータ デフォルト値 有効な値 注意

oracle.security.jps.policystore.rolemember.cache.type

STATIC

STATIC、SOFT、WEAK

このパラメータには、ロール・メンバーのキャッシュ・タイプを指定します。Java EEアプリケーションでのみ有効です。

有効な値

  • STATIC: キャッシュ・オブジェクトは静的にキャッシュされ、FIFOなど、適用されたキャッシュ戦略に応じてのみ明示的にクリーンアップされます。ガベージ・コレクタでは、このタイプのキャッシュはクリーンアップされません。

  • SOFT: メモリーが不足している場合、このタイプのキャッシュのクリーンアップはガベージ・コレクタに依存します。

  • WEAK: このタイプのキャッシュの動作は、タイプSOFTのキャッシュとよく似ていますが、ガベージ・コレクタによってより頻繁にクリーンアップされます。

最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。

oracle.security.jps.policystore.rolemember.cache.strategy

FIFO

FIFO

NONE

ロール・メンバーのキャッシュで使用する方針のタイプ。Java EEアプリケーションでのみ有効です。

有効な値

  • FIFO: キャッシュでは、先入れ先出し方針が実装されます。

  • NONE: リフレッシュまたは再起動が実行されるまで、キャッシュにあるすべてのエントリは増大し続けます。キャッシュのサイズを制御することはできません。使用はお薦めできませんが、ポリシーのフットプリントがきわめて小さい場合には効率的です。

最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。

oracle.security.jps.policystore.rolemember.cache.size

1000


ロール・メンバーのキャッシュのサイズ。参照するロールは、エンタープライズ・ロール(グループ)です。最初にIDストアのグループ数を確認できます。次に、パフォーマンス要件に基づいて、この数値をフル・キャッシュ・シナリオのグループ数に設定できます。または、部分グループ・キャッシュ・シナリオの特定の比率のグループ数に変更できます。

oracle.security.jps.policystore.policy.lazy.load.enable

True

True

False

ポリシーの遅延ロードを有効または無効にします。このパラメータをfalseに設定すると、特に大きいポリシー・ストアでサーバーの初回の起動に時間がかかります。推奨値はtrueです。

oracle.security.jps.policystore.policy.cache.strategy

PERMISSION_FIFO

PERMISSION_FIFO

NONE

パーミッションのキャッシュで使用する方針のタイプ。Java EEアプリケーションでのみ有効です。

有効な値:

  • PERMISSION_FIFO: キャッシュでは、先入れ先出し方針が実装されます。

  • NONE: リフレッシュまたは再起動が実行されるまで、キャッシュにあるすべてのエントリは増大し続けます。キャッシュのサイズを制御することはできません。使用はお薦めできませんが、ポリシーのフットプリントがきわめて小さい場合には効率的です。

最適なパフォーマンスを確保するために、デフォルト値を使用することを検討してください。

oracle.security.jps.policystore.policy.cache.size

1000


パーミッションのキャッシュのサイズ。すべてのポリシーをキャッシュする場合、この値を付与の合計数に設定できます。

oracle.security.jps.policystore.cache.updatable

True

True

False

このプロパティは、リフレッシュを有効にする目的で使用します。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。

oracle.security.jps.policystore.refresh.enable

True

True

False

このプロパティは、リフレッシュを有効にする目的で使用します。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。

oracle.security.jps.policystore.refresh.purge.timeout

43200000


ポリシー・ストアがリフレッシュされるまでの時間(ミリ秒)。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。

oracle.security.jps.ldap.policystore.refresh.interval

600000(10分)


ポリシー・ストアで変更がポーリングされる間隔(ミリ秒)。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。このプロパティは、Java EEおよびJ2SEアプリケーションで有効です。

oracle.security.jps.policystore.rolemember.cache.warmup.enable

False

True

False

このプロパティによって、ApplicationRoleメンバーシップ・キャッシュの作成方法が制御されます。Trueに設定すると、キャッシュはサーバーの起動時に作成されます。それ以外の場合は、必要に応じて作成されます(遅延ロード)。

ユーザーおよびグループの数がアプリケーション・ロールの数を大きく上回っている場合はTrueに設定します。それ以外の場合、つまりアプリケーション・ロールの数が非常に多い場合はFalseに設定します。


29.4 Oracle Web Services Securityのチューニング

Oracle Web Services Securityは、XMLベースのメッセージを使用してWebサービスとやり取りするための認可および認証のフレームワークを提供します。この項では、Webサービスのパフォーマンスに影響を与える要因について説明します。

29.4.1 適切なポリシーの選択

Oracle Web Services Securityでは多くのポリシーがサポートされていますので、デプロイメントのセキュリティ・ニーズに基づいて適切なポリシーを実装する必要があります。追加するセキュリティ・ポリシーはそれぞれパフォーマンスに影響を与える可能性があるため、パフォーマンスを十分に考慮してください。たとえば、トランスポート・レベルのセキュリティ(SSL)は、アプリケーション・レベルのセキュリティより高速ですが、マルチステップのトランザクションでは脆弱性を生む可能性があります。アプリケーション・レベルのセキュリティのほうがパフォーマンスへの影響は大きいものの、エンドツーエンドのセキュリティを実現できます。

『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』のポリシーの構成に関する項を参照し、デプロイメントに必要なセキュリティ・ポリシーを見極めてください。

29.4.2 ポリシー・マネージャ

データベースベースのポリシー強制を使用する際には、パフォーマンスへの影響がつきものです。データベース・ポリシーの強制を選択した場合、エージェントからデータベースへのポーリングの頻度を慎重に検討する必要があります。

29.4.3 SOAPメッセージを記録するためのログ・アサーションの構成

デフォルト・ポリシーのリクエスト・パイプラインおよびレスポンス・パイプラインには、ポリシー強制ポイント(PEP)でSOAPメッセージをデータベースまたはコンポーネント別ローカル・ファイルに記録するログ・アサーションが含まれています。ロギング・レベルはパフォーマンスに影響を与えることがあります。パフォーマンスの問題を回避するには、デプロイメントに適した最低のロギング・レベルを使用することを検討してください。

ログ・ステップ内に構成できるロギング・レベルには次のものがあります。

  • ヘッダー: SOAPヘッダーのみが記録されます。

  • 本文: メッセージの内容(本文)のみが記録されます。

  • エンベロープ: SOAPエンベロープ全体(ヘッダーと本文の両方を含む)が記録されます。添付ファイルは記録されません。

  • すべて: メッセージ全体が記録されます。これには、SOAPヘッダー、本文、およびすべての添付ファイル(SOAPメッセージそのものの外部に存在するURLなど)が含まれます。

注意: 一般に、ログ・ファイルをトポロジ的に強制コンポーネントに近い場所に配置すると、システムのパフォーマンスが向上します。可能であれば、著しい分散環境では複数の分散ログを使用してください。

29.4.4 接続プーリングの構成

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”

29.4.5 Webサービスのパフォーマンスの監視

Oracle Fusion Middleware Controlの「Webサービス」ホームページで、次のOracle Web Servicesのパフォーマンスを監視できます。

  • 次のエンドポイント有効メトリック

    • ポリシー参照ステータス

    • 合計違反

    • セキュリティ違反

  • 完了した呼出し

  • レスポンス時間(秒)

  • 次のポリシー違反

    • 合計違反

    • 認証違反

    • 認可違反

    • 機密保持違反

    • 整合性違反

  • 障害の合計

Oracle Fusion Middlewareコンポーネントの監視の概要は、第4章「Oracle Fusion Middlewareの監視」を参照してください。

Oracle Fusion Middleware Controlを使用したOracle Web Servicesの監視の詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』のWebサービスのパフォーマンスの監視に関する項を参照してください。