Oracle Fusion Middlewareのセキュリティ・サービスをチューニングし、Oracle Platform Security Services (OPSS)およびOracle Web Servicesを通じてセキュリティ・サービスのパフォーマンスを最適化できます。
親トピック: コア・コンポーネント
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セキュリティ・サービスの概念および管理についての情報に目を通し、理解していることを想定しています。セキュリティ・パラメータをチューニングする前に、Oracle Fusion Middleware Webサービスの管理を参照してください。
チューニングを考慮することによって、Oracle Fusion Middlewareセキュリティ・サービスのパフォーマンスを向上させることができます。
パフォーマンス・ボトルネックを発見するには、まずWebサービスのデプロイメント全体で予想されるトラフィック負荷に対応できていることを確認します。CPU使用率が100%に達しているシステムがクリティカル・パスにある場合は、1台以上のコンピュータをクラスタに追加する必要があります。
デプロイメントにボトルネックが存在する場合、その発生箇所はおそらく次のいずれかです。
エージェントとの低速な接続を介したトラフィック
JMSのようなサード・パーティのキューイング・システムへの接続待機時間
どちらの問題についても、次の原因を確認します。
外部リソース(特に次のタイプ)への接続を含むポリシー・アサーションの問題
データベース・リポジトリ
LDAPリポジトリ
セキュア・リソース
独自のセキュリティ・システム
データベース・パフォーマンスの問題
これらのいずれかがボトルネックの原因であると判明した場合は、データベースまたはLDAP接続の管理方法、あるいはリソースの保護方法を変更する必要があります。
Oracle Platform Security Services (OPSS)には、基本的なチューニング構成が含まれています。
JVMパラメータをチューニングすると、パフォーマンスが大幅に向上します。たとえば、JVMヒープ・サイズはストア内のロールおよび権限の数に応じてチューニングする必要があります。実行時には、ロールおよび権限はすべてインメモリー・キャッシュに格納されます。JVMチューニングの詳細は、Java仮想マシン(JVM)のチューニングを参照してください。
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が設定されている場合、 |
表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は、XMLベースのメッセージを使用してWebサービスとやり取りするための認可および認証のフレームワークを提供します。Webサービスのパフォーマンスには、影響を与えるいくつかの要因があります。
Oracle Web Services Securityでは多くのポリシーがサポートされていますので、デプロイメントのセキュリティ・ニーズに基づいて適切なポリシーを実装する必要があります。追加するセキュリティ・ポリシーはそれぞれパフォーマンスに影響を与える可能性があるため、パフォーマンスを十分に考慮してください。たとえば、トランスポート・レベルのセキュリティ(SSL)は、アプリケーション・レベルのセキュリティより拘束ですが、トランスポート・レベルのセキュリティは多段階トランザクションで脆弱な場合があります。アプリケーション・レベルのセキュリティの方がパフォーマンスへの影響は大きいものの、エンドツーエンドのセキュリティを実現できます。
デプロイメントに必要なセキュリティ・ポリシーを決定するには、Oracle Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理で、使用する事前定義済ポリシーの決定に関する項を参照してください。
データベースベースのポリシー強制を使用する際には、パフォーマンスへの影響がつきものです。データベース・ポリシーの強制を選択した場合、エージェントからデータベースへのポーリングの頻度を慎重に検討する必要があります。
デフォルト・ポリシーのリクエスト・パイプラインおよびレスポンス・パイプラインには、ポリシー強制ポイント(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コンポーネントのモニタリングの概要は、モニタリングを参照してください。
Oracle Fusion Middleware Controlを使用したOracle Webサービスのモニタリングの詳細は、Oracle Fusion Middleware Webサービスの管理で、パフォーマンスのモニタリング、監査およびチューニングの概要に関する項を参照してください。