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サービスのためのセキュリティおよび管理者ガイド』を参照し、詳細を確認してください。 |
この項では、パフォーマンス・ボトルネックの特定方法、およびパフォーマンス・ボトルネックなどの問題の解決方法に関して、一般的なガイドラインを示します。
パフォーマンス・ボトルネックを発見するには、まずWebサービスのデプロイメント全体で予想されるトラフィック負荷に対応できていることを確認します。CPU使用率が100%に達しているシステムがクリティカル・パスにある場合は、1台以上のコンピュータをクラスタに追加する必要があります。
デプロイメントにボトルネックが存在する場合、その発生箇所はおそらく次のいずれかです。
エージェントとの低速な接続を介したトラフィック
JMSのようなサード・パーティのキューイング・システムへの接続待機時間
どちらの問題についても、次の原因を確認します。
外部リソース(特に次のタイプ)への接続を含むポリシー・アサーションの問題
データベース・リポジトリ
LDAPリポジトリ
セキュア・リソース
独自のセキュリティ・システム
データベース・パフォーマンスの問題
これらのいずれかがボトルネックの原因であると判明した場合は、データベースまたはLDAP接続の管理方法、あるいはリソースの保護方法を変更する必要があります。
この項では、Oracle Platform Security Services (OPSS)における次の基本的なチューニング構成について説明します。
注意: Oracle Platform Security Services用のOracleデータベースのチューニングの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。 |
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チューニング・パラメータを示します。次のプロパティは、制御されない配布モードで実行されているOPSS PDPサービスでのみ使用してください。これらのプロパティは、OPSS PDPサービス(PDPサービスがない場合は、ポリシー・ストア・サービス)に対して定義する必要があります。
表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サービスのためのセキュリティおよび管理者ガイド』のポリシーの構成に関する項を参照し、デプロイメントに必要なセキュリティ・ポリシーを見きわめてください。
データベースベースのポリシー強制を使用する際には、パフォーマンスへの影響がつきものです。データベース・ポリシーの強制を選択した場合、エージェントからデータベースへのポーリングの頻度を慎重に検討する必要があります。
デフォルト・ポリシーのリクエスト・パイプラインおよびレスポンス・パイプラインには、ポリシー強制ポイント(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サービスのためのセキュリティおよび管理者ガイド』のWebサービスのパフォーマンスの監視に関する項を参照してください。
Oracle Mobile Security Suiteを使用すると、従業員がイントラネット(Webサイト、Webサービスおよびドキュメント)に対するセキュア・アクセスが可能になります。また、従業員が所持するモバイル・デバイス上の企業情報が一元的に制御されます。
Oracle Mobile Security Suiteを管理する方法の詳細は、『Oracle Fusion Middleware Oracle Mobile Security Suiteの管理』および『Oracle Fusion Middleware Oracle Mobile Security Access Serverの管理』を参照してください。
この項では、次のチューニング情報について説明します。
この項では、次の内容をチューニングする際の指示について説明します。
Mobile Security Access Serverで使用するJVMのデフォルト・ヒープ設定は次のとおりです。
-Xms3072m -Xmx3072m -XX:MaxPermSize=512m -XX:+UseParallelGC -XX:+AggressiveHeap -XX:+DisableExplicitGC -XX:ReservedCodeCacheSize=1024m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:${_GW_INSTANCE_HOME}/log/GC.log -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Djava.security.egd=file:/dev/./urandom
使用する環境に応じて、これらのパラメータをチューニングします。JVMにヒープ設定を適用する方法の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverパフォーマンスおよびチューニング』のヒープ・サイズのチューニングのヒントに関する項を参照してください。
アウトバウンド・メッセージを次の値に設定します。
Total Connections in Pool
: 800
Maximum Connections per Host
: 50
これらのパラメータを検索する方法は、『Oracle Fusion Middleware Oracle Mobile Security Access Serverの管理 』のアウトバウンド設定の構成に関する項を参照してください。
キャッシュ・リフレッシュ時間を大きくして、環境に変更がない場合に同期が頻繁に実行されないようにします。詳細は、『Oracle Fusion Middleware Oracle Mobile Security Access Serverの管理』のキャッシュ・リフレッシュ時間の構成に関する項を参照してください。
Mobile Security ManagerにはMobile Security Access Serverの管理コンポーネントが含まれ、Mobile Security Access Serverを管理するサービスを使用できます。Mobile Security Managerは、WebLogic Serverにデプロイされています。
この項の内容は次のとおりです。
設定可能なヒープ・サイズは、最低1GBです。この値をサーバー上のアクティブなロードに応じて大きくします。
管理サーバーの起動時に、次のパラメータを使用してヒープ引数を指定します。
Managed Serverをコマンド・ラインから起動する場合:
startManagedWebLogic.sh omsm_server1 t3://admin:port -DUSER_MEM_ARGS="-Xms512m -Xmx2g -XX:PermSize=512m -XX:MaxPermSize=2g"
Managed ServerをWeblogic Consoleから起動する場合:
「サーバー」→「omsm_server1」→「構成」タブ→「サーバーの起動」サブタブの順に進みます。
「引数」セクションに次のメモリー・パラメータを指定します。-DUSER_MEM_ARGS="-Xms512m -Xmx2g -XX:PermSize=512m -XX:MaxPermSize=2g
"
ロードが増加した場合、最大接続サイズを100に増やします。データ・ソース構成内の「モニタリング」タブで現在のトラフィックを監視して、ロードが増加しているかどうか確認する必要があります。
次の手順に従い、チューニングします。
WebLogicコンソールから「サービス」→「データ・ソース」→「omsm-ds」→「構成」タブ→「接続プール」サブタブの順に進みます。
「最大容量」の値を増加します。