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の構成設定はパフォーマンスに影響を与えることがあります。詳細は、第18章「Oracle Internet Directoryのパフォーマンス・チューニング」を参照してください。
Oracle Virtual Directoryは、LDAPサーバーとしてだけでなく、ローカル・ストレージ・アダプタ(LSA)として構成することもできます。第19章「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
)を参照してください。
次のパラメータを使用することで、認可を最適化できます。
表21-1 認可パラメータ
パラメータ | 値 | 注意 |
---|---|---|
|
デフォルト: True |
このシステム・プロパティは、特定のサブジェクトの保護ドメインをキャッシュする目的で使用します。 |
|
デフォルト: True |
このシステム・プロパティは、checkpermissionの発生時にサブジェクトの保護ドメインを評価する目的で使用します。 |
|
デフォルト: False |
このハイブリッド・モード・プロパティは、java.security.PolicyのSUN RIからOPSS Javaポリシー・プロバイダへの遷移を促進する目的で使用します。OPSS Javaポリシー・プロバイダは、java.policyとsystem-jazn-data.xmlの両方を読み取ります。ハイブリッド・モードを無効にするには、WebLogic Serverの起動時にシステム・プロパティjps.policystore.hybrid.modeをfalseに設定します。 |
|
デフォルト: ACC |
コールをJDK APIのAccessController.checkPermissionに委任します。こうすると、実行時またはデバッグ中のパフォーマンスへの影響を軽減できます。 |
表21-2に、LDAPポリシー・ストアのOPSSチューニング・パラメータを示します。
表21-2 LDAPポリシー・ストアのOPSSチューニング・パラメータ
パラメータ | 値 | 注意 |
---|---|---|
|
デフォルト: STATIC |
ロール・メンバーのキャッシュ・タイプ。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
デフォルト: FIFO |
ロール・メンバーのキャッシュ方式。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
デフォルト: 1000 |
ロール・メンバーのキャッシュ・サイズ。パフォーマンスが問題になっている場合は、このサイズを5000に増やすことを検討してください(デプロイメントに適している場合)。 |
|
デフォルト: TRUE |
ポリシーの遅延ロードを有効にします。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
デフォルト: PERMISSION_FIFO |
権限のキャッシュ方式。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
デフォルト: 1000 |
権限のキャッシュ・サイズ。パフォーマンスが問題になっている場合は、このサイズを4000に増やすことを検討してください(デプロイメントに適している場合)。 |
|
デフォルト: TRUE |
TRUEの場合、ポリシー・キャッシュは管理操作用に増分更新されます。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
デフォルト: TRUE |
このプロパティは、リフレッシュを有効にする目的で使用します。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
デフォルト: 43200000 |
ポリシー・ストアの強制リフレッシュ時間(ミリ秒)。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
|
デフォルト: 600000 |
ポリシー・ストアをリフレッシュして変更を反映させるためのポーリング時間(ミリ秒)。パフォーマンスを確保するために、デフォルト値のままにすることを検討してください。 |
Oracle Web Services Securityは、XMLベースのメッセージを使用してWebサービスとやり取りするための認可および認証のフレームワークを提供します。この項では、Webサービスのパフォーマンスに影響を与える要因について説明します。
Oracle Web Services Securityでは多くのポリシーがサポートされていますので、デプロイメントのセキュリティ・ニーズに基づいて適切なポリシーを実装する必要があります。追加するセキュリティ・ポリシーはそれぞれパフォーマンスに影響を与える可能性があるため、パフォーマンスを十分に考慮してください。たとえば、トランスポート・レベルのセキュリティ(SSL)は、アプリケーション・レベルのセキュリティより高速ですが、マルチステップのトランザクションでは脆弱性を生む可能性があります。アプリケーション・レベルのセキュリティのほうがパフォーマンスへの影響は大きいものの、エンドツーエンドのセキュリティを実現できます。
『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』のポリシーの構成に関する項を参照し、デプロイメントに必要なセキュリティ・ポリシーを見極めてください。
デフォルトでは、Oracle Web ServiceのポリシーはタイムスタンプがON
になっています。タイムスタンプを設定する際には、タイムスタンプをOFF
にするとセキュリティに影響が出る可能性があり、タイムスタンプをON
にするとパフォーマンスに影響が出る可能性があることを考慮してください。これらの設定の影響を検討してから、変更を行います。
詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』を参照してください。
データベースベースのポリシー強制を使用する際には、パフォーマンスへの影響がつきものです。データベース・ポリシーの強制を選択した場合、エージェントからデータベースへのポーリングの頻度を慎重に検討する必要があります。
デフォルト・ポリシーのリクエスト・パイプラインおよびレスポンス・パイプラインには、ポリシー強制ポイント(PEP)でSOAPメッセージをデータベースまたはコンポーネント別ローカル・ファイルに記録するログ・アサーションが含まれています。ロギング・レベルはパフォーマンスに影響を与えることがあります。パフォーマンスの問題を回避するには、デプロイメントに適した最低のロギング・レベルを使用することを検討してください。
ログ・ステップ内に構成できるロギング・レベルには次のものがあります。
ヘッダー: SOAPヘッダーのみが記録されます。
本文: メッセージの内容(本文)のみが記録されます。
エンベロープ: SOAPエンベロープ全体(ヘッダーと本文の両方を含む)が記録されます。添付ファイルは記録されません。
すべて: メッセージ全体が記録されます。これには、SOAPヘッダー、本文、およびすべての添付ファイル(SOAPメッセージそのものの外部に存在するURLなど)が含まれます。
注意: 一般に、ログ・ファイルをトポロジ的に強制コンポーネントに近い場所に配置すると、システムのパフォーマンスが向上します。可能であれば、著しい分散環境では複数の分散ログを使用してください。
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サービスのパフォーマンスの監視に関する項を参照してください。