Oracle® Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド 11g リリース2(11.1.2.1.0) B71702-02 |
|
前 |
次 |
Oracle Fusion Middlewareセキュリティ・サービスを使用すると、重要なアプリケーションや機密データを保護できます。この章では、セキュリティ・サービスを構成して最適なパフォーマンスを得る方法について説明します。
この章の内容は次のとおりです。
Oracle Fusion Middlewareは、Oracle Platform Security Services (OPSS)およびOracle Web Servicesを通じてセキュリティ・サービスを提供します。
Oracle Platform Security Services
Oracle Platform 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セキュリティ・サービスの概念および管理についての情報に目を通し、理解しているものと想定して書かれています。セキュリティ・パラメータをチューニングする前に、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』を参照し、詳細を確認してください。 |
この項では、パフォーマンス・ボトルネックの特定方法、およびパフォーマンス・ボトルネックなどの問題の解決方法に関して、一般的なガイドラインを示します。
パフォーマンス・ボトルネックを発見するには、まずWebサービスのデプロイメント全体で予想されるトラフィック負荷に対応できていることを確認します。CPU使用率が100%に達しているシステムがクリティカル・パスにある場合は、1台以上のコンピュータをクラスタに追加する必要があります。
デプロイメントにボトルネックが存在する場合、その発生箇所はおそらく次のいずれかです。
エージェントとの低速な接続を介したトラフィック
JMSのようなサード・パーティのキューイング・システムへの接続待機時間
どちらの問題についても、次の原因を確認します。
外部リソース(特に次のタイプ)への接続を含むポリシー・アサーションの問題
データベース・リポジトリ
LDAPリポジトリ
セキュア・リソース
独自のセキュリティ・システム
データベース・パフォーマンスの問題
これらのいずれかがボトルネックの原因であると判明した場合は、データベースまたはLDAP接続の管理方法、あるいはリソースの保護方法を変更する必要があります。
この項では、Oracle Platform Security Services (OPSS)における次の基本的なチューニング構成について説明します。
JVMパラメータをチューニングすると、パフォーマンスが大幅に向上します。たとえば、JVMヒープ・サイズはストア内のロールおよび権限の数に応じてチューニングする必要があります。実行時には、ロールおよび権限はすべてメモリー内キャッシュに格納されます。JVMチューニングの詳細は、第2.4項「Java仮想マシン(JVM)のチューニング」を参照してください。
この項では、Lightweight Directory Access Protocol (LDAP)のチューニングについて説明します。Oracleは、ファイルベースのリポジトリであるOracle Internet DirectoryおよびOracle Virtual Directoryでのポリシーの管理をサポートしています。
SQLの実行に時間がかかるためにCPU使用率が上昇している場合は、次の章を参照し、大規模デプロイメント向けの基本的なチューニング構成を確認してください。
Oracle Internet Directoryの構成設定はパフォーマンスに影響を与えることがあります。詳細は、第23章「Oracle Internet Directoryのパフォーマンス・チューニング」を参照してください。
Oracle Virtual Directoryは、LDAPサーバーとしてだけでなく、ローカル・ストレージ・アダプタ(LSA)として構成することもできます。第24章「Oracle Virtual Directoryのパフォーマンス・チューニング」を参照してください。
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システム・プロパティを使用して、認可を最適化できます。
表29-1 認可プロパティ
Javaシステム・プロパティ | デフォルト値 | 有効な値 | 注意 |
---|---|---|---|
|
4 |
3 4 5 |
JPSは、サブジェクト・リゾルバを使用して、プラットフォーム・サブジェクトをユーザー/エンタープライズ・ロール情報およびApplicationRole情報を含むJpsSubjectに変換します。この情報は、サブジェクトではプリンシパルとして表されます。 特にサブジェクトのプリンシパル・セットが大規模な場合、この変換はCPUへの負荷が高いです。パフォーマンスを向上するために、JPSコードはプラットフォーム・サブジェクトとJpsSubject間の変換をキャッシュします。2つのサブジェクトは、コンテンツが同じなのにプリンシパルの名前の大/小文字が異なる場合に、混同される可能性があることに注意してください。 次の設定を使用して、キャッシュ・キーを構成できます。
|
|
60000ms |
「5」の場合(前述)のキャッシュの存続時間(TTL)。このシステム・プロパティは、キャッシュが有効な期間を制御します。有効期限が切れると、キャッシュされた値はダンプされます。設定は、フラグ このTTL設定の期間を、WLS LDAPオーセンティケータでグループおよびユーザー・キャッシュTTLに使用される値と同じ値に設定することを検討してください。 |
|
|
True |
True False |
このシステム・プロパティを使用して、特定のサブジェクトの保護ドメインをキャッシュします。 |
|
True |
True False |
このシステム・プロパティを使用して、checkPermissionが発生する場合のサブジェクトの保護ドメインを評価します。 |
|
True |
True False |
このハイブリッド・モード・プロパティを使用して、SUN java.security.PolicyからOPSS Javaポリシー・プロバイダへの遷移を促進します。 OPSS Javaポリシー・プロバイダは、java.policyとsystem-jazn-data.xmlの両方を読み取ります。ハイブリッド・モードを無効にするには、WebLogic Serverの起動時にシステム・プロパティ |
|
ACC |
ACC SM |
コールをJDK APIの ACC: SM: SecurityManagerが設定されている場合、 |
表29-2に、ポリシー・ストアのOPSSチューニング・パラメータを示します。
表29-2 OPSS PDPサービス・チューニング・パラメータ
パラメータ | デフォルト値 | 有効な値 | 注意 |
---|---|---|---|
|
STATIC |
STATIC、SOFT、WEAK |
このパラメータには、ロール・メンバーのキャッシュ・タイプを指定します。Java EEアプリケーションでのみ有効です。 有効な値
最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
FIFO |
FIFO NONE |
ロール・メンバーのキャッシュで使用する方針のタイプ。Java EEアプリケーションでのみ有効です。 有効な値
最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
1000 |
ロール・メンバーのキャッシュのサイズ。参照するロールは、エンタープライズ・ロール(グループ)です。最初にIDストアのグループ数を確認できます。次に、パフォーマンス要件に基づいて、この数値をフル・キャッシュ・シナリオのグループ数に設定できます。または、部分グループ・キャッシュ・シナリオの特定の比率のグループ数に変更できます。 |
|
|
True |
True False |
ポリシーの遅延ロードを有効または無効にします。このパラメータをfalseに設定すると、特に大きいポリシー・ストアでサーバーの初回の起動に時間がかかります。推奨値はtrueです。 |
|
PERMISSION_FIFO |
PERMISSION_FIFO NONE |
パーミッションのキャッシュで使用する方針のタイプ。Java EEアプリケーションでのみ有効です。 有効な値:
最適なパフォーマンスを確保するために、デフォルト値を使用することを検討してください。 |
|
1000 |
パーミッションのキャッシュのサイズ。すべてのポリシーをキャッシュする場合、この値を付与の合計数に設定できます。 |
|
|
True |
True False |
このプロパティは、リフレッシュを有効にする目的で使用します。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
True |
True False |
このプロパティは、リフレッシュを有効にする目的で使用します。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
43200000 |
ポリシー・ストアがリフレッシュされるまでの時間(ミリ秒)。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
|
600000(10分) |
ポリシー・ストアで変更がポーリングされる間隔(ミリ秒)。最適なパフォーマンスを確保するために、デフォルト値のままにすることを検討してください。このプロパティは、Java EEおよびJ2SEアプリケーションで有効です。 |
|
|
False |
True False |
このプロパティによって、ApplicationRoleメンバーシップ・キャッシュの作成方法が制御されます。Trueに設定すると、キャッシュはサーバーの起動時に作成されます。それ以外の場合は、必要に応じて作成されます(遅延ロード)。 ユーザーおよびグループの数がアプリケーション・ロールの数を大きく上回っている場合はTrueに設定します。それ以外の場合、つまりアプリケーション・ロールの数が非常に多い場合はFalseに設定します。 |
Oracle Web Services Securityは、XMLベースのメッセージを使用してWebサービスとやり取りするための認可および認証のフレームワークを提供します。この項では、Webサービスのパフォーマンスに影響を与える要因について説明します。
Oracle Web Services Securityでは多くのポリシーがサポートされていますので、デプロイメントのセキュリティ・ニーズに基づいて適切なポリシーを実装する必要があります。追加するセキュリティ・ポリシーはそれぞれパフォーマンスに影響を与える可能性があるため、パフォーマンスを十分に考慮してください。たとえば、トランスポート・レベルのセキュリティ(SSL)は、アプリケーション・レベルのセキュリティより高速ですが、マルチステップのトランザクションでは脆弱性を生む可能性があります。アプリケーション・レベルのセキュリティのほうがパフォーマンスへの影響は大きいものの、エンドツーエンドのセキュリティを実現できます。
『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』のポリシーの構成に関する項を参照し、デプロイメントに必要なセキュリティ・ポリシーを見きわめてください。
データベースベースのポリシー強制を使用する際には、パフォーマンスへの影響がつきものです。データベース・ポリシーの強制を選択した場合、エージェントからデータベースへのポーリングの頻度を慎重に検討する必要があります。
デフォルト・ポリシーのリクエスト・パイプラインおよびレスポンス・パイプラインには、ポリシー強制ポイント(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”
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サービスのパフォーマンスの監視に関する項を参照してください。