| Oracle® Fusion Middleware Oracle Access Management管理者ガイド 11gリリース2 (11.1.2.2) for All Platforms B69533-09 | 
 | 
|  前 |  次 | 
ロギングは、コンポーネントの重要なイベント、プロセスおよび状態情報を捕捉するために、コンポーネントとサービスがログ・ファイルにメッセージを書き込むメカニズムです。
管理者は、各種の粒度で情報を提供するようにロギングを構成できます。この構成には、その他のOracle Fusion Middleware 11gコンポーネントと同じロギング・インフラストラクチャjava.util.logging (Java環境で使用できる標準)とガイドラインを使用します。ロギング・システムはフラット・ファイルにのみ出力を書き出します。Oracle Databaseインスタンスへのロギングはサポートされていません。
ロギングの構成とログ・ファイルの検索がこの章の焦点です。ログ・ファイルの情報を使用した問題診断については、このマニュアルでは取り上げません。
| 注意:特に明記しないかぎり、この章の情報は、Access Manager、Identity Federation、セキュリティ・トークン・サービスのどれを使用している場合でも同じです。また、カスタムのOracle WebLogic Scripting Tool (WLST)コマンドを使用して、ロギング・レベルを変更することもできます。 | 
この章には次のトピックが含まれます:
この章のタスクを実行する前に、Oracle Access Managementコンソールと管理対象OAMサーバーが実行中であることを確認してください。
第6章「サーバー登録の管理」を確認することをお薦めします。
ロギング・インフラストラクチャは、問題診断に使用できるメッセージを記録します。セキュリティ・トークン・サービスはJ2EE Webアプリケーションで、Access Manager J2EEアプリケーションの一部です。どちらもOJDLをロギング目的に使用します。セキュリティ・トークン・サービスは、パートナとの対話操作をタイムスタンプとともに取得します。管理者はメッセージに記録される情報の量を、ロガーが定義される各コンポーネントのログ・レベルを指定することにより制御します。
| 注意:一般に、ユーザーは、問題診断のためにOracleテクニカル・サポートへ送るファイルを作成するためにロギングを有効にします。ログ・メッセージに関するドキュメントはありません。場合によっては、ログ・ファイルを参照することによってユーザー自身で問題を診断できることもあります。 | 
Oracle Access Managementでは、表8-1に示したファイルを使用します。
表8-1 ロギング・ファイル
| ファイル・タイプ | 説明 | 
|---|---|
| ロギング構成ファイル | ロギング・レベルとロギングに関するその他の構成情報を提供します。このファイルは次のパスに格納されています。 $DOMAIN_HOME/config/fmwconfig/servers/SERVER-NAME/logging.xml 注: デフォルトでは、セキュリティ・トークン・サービスとIdentity Federationのメッセージは、OAMサーバーのログ・ファイルに記録されます。ただし、便宜上、「セキュリティ・トークン・サービスおよびIdentity Federationのロギング構成」で説明しているとおり、logging.xmlを編集してセキュリティ・トークン・サービスまたはIdentity Federationの情報を別のログ・ファイルに記録するようにできます。 | 
| ログ・ファイル | 記録された情報は次の場所に格納されます。 $DOMAIN_HOME/servers/SERVER-NAME/logs/ SERVER-NAME-diagnostics.log | 
Oracle Access Managementは、表8-2に示すWebLogicコンテナのロギング・デフォルトを使用します。
表8-2 ロギングのデフォルト
| 説明 | |
|---|---|
| イベント | 次のイベントは自動的に記録されます。 
 | 
| レベル | デフォルトでは、すべてのOracle Access Managementコンポーネントのログ・レベルが「通知」レベルになっています。「エラー」レベルでのロギングで生成される出力は少量ですが、他のログ・レベルではロギング出力が大量になることがあり、その場合はパフォーマンスに影響します。本番環境では、通常はロギングを無効にするか、ロギング出力量が少くなるようなレベル(たとえばエラー・レベル)に設定します。 | 
詳細な情報は、次を参照してください:
| 関連項目: 
 | 
この項では、セキュリティ・トークン・サービスとAccess Managerのコンポーネント・ロガーについて説明します。これらには違いがあります。
セキュリティ・トークン・サービスにあるロガーは、oracle.security.fedの1つのみです。詳細は、「セキュリティ・トークン・サービスおよびIdentity Federationのロギングの構成」を参照してください。
次の表に示すように、それぞれのAccess Managerコンポーネントには対応するロガー名が関連付けられています。
表8-3 Oracle Access Managementのサーバー側コンポーネントのロガー
| コンポーネント名 | OAMロガー名 | 説明 | 
|---|---|---|
| プロトコル・バインディング | oracle.oam.binding | ワイヤ・プロトコルのリクエストとレスポンスのJavaオブジェクト表現へのマーシャリング/アンマーシャリングを処理します。 | 
| SSOコントローラ | oracle.oam.controller.sso | ユーザー・セッションのライフサイクル管理と、SSOおよびログアウト・フローの編成を処理します。 | 
| OAMプロキシ | oracle.oam.proxy.oam | OAPプロトコルのリクエストとレスポンスのマーシャリング/アンマーシャリングによるOAM Webゲートとの相互作用と、OAPリクエスト/レスポンスを処理するOAMサーバーを支援するために必要なデータ/メッセージ変換の実行を処理します。 | 
| OSSOプロキシ | oracle.oam.proxy.osso | リクエストとレスポンスのマーシャリング/アンマーシャリングによるOSSOエージェントとの相互作用と、mod_ossoリクエスト/レスポンスを処理するOAMサーバーを支援するために必要なデータ/メッセージ変換の実行を処理します。 | 
| OpenSSOプロキシ | oracle.oam.proxy.opensso | リクエストとレスポンスのマーシャリング/アンマーシャリングによるOpenSSO WebおよびJavaエージェントとの相互作用と、OpenSSOリクエスト/レスポンスを処理するOAMサーバーを支援するために必要なデータ/メッセージ変換の実行を処理します。 | 
| 資格証明コレクタ | oracle.oam.credcollector | 認証スキームが要求する必須情報を取得するためのユーザーとの相互作用を処理します。 | 
| パートナのリモート登録 | oracle.oam.engine.remotereg | OAMサーバーへのパートナの登録と、それに関連付けられた保護済ポリシーの管理を処理します。 | 
| Oracle Access Managementコンソール | oracle.oam.admin.console | Access Managementデプロイメントの管理とモニタリングをサポートするコンソールです。 | 
| 管理サービス構成 | oracle.oam.admin.service.config | 構成を管理するUIコンソールが使用するモジュールです。 | 
| 診断とモニタリング | oracle.oam.diag | 診断とモニタリングを可能にするためにOAMサーバー・コンポーネントが使用するインストゥルメンテーションを提供します。 | 
表8-4 Oracle Access Management共有サービス・エンジン・コンポーネントのロガー
| コンポーネント名 | OAMロガー名 | 説明 | 
|---|---|---|
| 認証エンジン | oracle.oam.engine.authn | 指定した認証スキームが要求する資格証明とその他のデータを検証することで、ユーザー・アイデンティティの確立をサポートします。 | 
| ポリシー・サービス・エンジン | oracle.oam.engine.policy | 認証、認可およびトークン発行のポリシー管理をサポートします。さらに、ランタイム処理をサポートするポリシー決定サービスも提供します。 | 
| セッション管理エンジン | oracle.oam.engine.session | ユーザー/管理者が開始したイベントとタイムアウト・ベースのイベントのサポートがある、ユーザー・セッションとトークン・コンテキスト情報の管理をサポートします。 | 
| トークン・エンジン | oracle.oam.engine.token | 生成から取消しまでのトークンの全ライフ・サイクルの管理をサポートします。 | 
| SSOエンジン | oracle.oam.engine.sso | ユーザー・ログイン・セッションのライフサイクルを管理することで、シングル・サインオンの操作性をサポートします。 | 
| PartnerTrustMetadataエンジン | oracle.oam.engine.ptmetadata | パートナ・メタデータと信頼情報の管理をサポートします。 | 
| 認可エンジン | oracle.oam.engine.authz | OAPランタイム・リクエスト操作に直接マップするメソッドを提供するラッパーです。 | 
このトピックでは、Access Managerの例のみを示します。
| 注意:セキュリティ・トークン・サービスにあるのは、「セキュリティ・トークン・サービスおよびIdentity Federationのロギング構成」で説明しているように、ロガーとログ・ハンドラそれぞれ1つずつのみです。 | 
例8-1は、logging.xmlファイルでのAccess Managerのロガーとログ・ハンドラの構成を示します。
例8-1 Access Managerのロガーとログ・ハンドラの構成
<logging_configuration>
  <log_handlers>
    <log_handler name='oam-handler' class='oracle.core.ojdl.logging.
    ODLHandlerFactory'>
      <property name='path' value='oam/diagnostic'/>
      <property name='maxFileSize' value='10485760'/>
      <property name='maxLogSize' value='104857600'/>
    </log_handler>
  </log_handlers>
  <loggers>
    <logger name='oracle.security.am' level='NOTIFICATION:1'>
      <handler name='oam-handler'/> 
      ...
    </logger>
  </loggers>
</logging_configuration>
| 関連項目:Java EEアプリケーション・ロギングの詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』の付録I、I.1.1項を参照してください。 | 
このトピックは、Oracle Access Managementに適用されます。
ロガーにより出力されるデータの量はロガーのレベルによって制御され、レベルが高くなるほどより多くの情報が記録されます。ロガーのレベルは、logging.xmlファイルの中で<logger>要素により、次の書式で指定されます。
<logger name="loggerName" level="notifLevel"/>
ここで、loggerNameはロガー名であり(「コンポーネント・ロガーについて」を参照)、notifLevelはODLメッセージ・レベルとJavaメッセージ・レベルのどちらかです。
表8-6に、ODLメッセージ・レベルとJavaメッセージ・レベルの対応を昇順に示します。
表8-6 ODLレベルとJavaレベルの対応
| ODLメッセージ・レベル | Javaメッセージ・レベル | 
|---|---|
| INCIDENT_ERROR:1 | SEVERE.intValue()+100 | 
| ERROR:1 | SEVERE(例外を記録) | 
| WARNING:1 | WARNING(例外を記録) | 
| NOTIFICATION:1 | INFO(デフォルト) | 
| NOTIFICATION:16 | CONFIG | 
| NOTIFICATION:32 | INFOとCONFIG | 
| TRACE:1 | FINE(状況によっては本番環境に推奨) | 
| TRACE:16 | FINER(本番環境にはお薦めしない) | 
| TRACE:32 | FINEST(本番環境にはお薦めしない) | 
上記に挙げられていない他のJavaレベル値は(つまり、SEVERE.intValue()+100からFINESTまでの範囲にないもの)、ODLレベルのUNKNOWNに相当します。
| 注意:メッセージを最も詳細レベルで記録するフィルタをoracle.security.fedパッケージおよびサブパッケージ(セキュリティ・トークン・サービスのクラス)に定義すると、サーバーを再起動した後でOAMサーバーのログが表示されます。詳細は、「セキュリティ・トークン・サービスおよびIdentity Federationのロギングの構成」を参照してください。 | 
この項では、Access Managerのみのタスクを説明します。
ロガー・レベルの変更に使用できるグラフィカル・ユーザー・インタフェースはありません。使用できるのはWLSTコマンドのみです。この項では次のトピックを記載しています:
管理者は、次に示す手順に従い、Access Manager用のカスタムWLSTコマンドを使用してロガーの設定を変更できます。実際のデプロイメントと選択肢は、説明と異なることがあります。
| 注意:WLSTコマンド help("fmw diagnostics")を使用してください。 | 
| 関連項目:Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス | 
OAMロガー・レベルの変更方法
OAMサーバーが稼働中であることを確認します。
Access Manager用のカスタムWLSTスクリプトを取得します。例:
$ORACLE_HOME/common/bin/wlst.sh
WebLogic Serverに接続してWebLogic管理者としてログインします。例:
connect([username, password])
OAMサーバーで使用可能なロガーをリストします。例:
wls:/base_domain/serverConfig> listLoggers(pattern="oracle.oam.*",target="oam_ server1")
ここで、pattern=はoam.controllerコンポーネントを表し、target=は希望のOAMサーバー(登録時に指定されたもの)を表します。
このOAMサーバーに関連付けられているAccess Managerロガーのリストを表示します。例:
Logger | Level --------------------------------------------+----------------- oracle.oam | <Inherited> oracle.oam.admin.foundation.configuration | <Inherited> oracle.oam.agent-default | <Inherited> oracle.oam.audit | <Inherited> oracle.oam.binding | <Inherited> oracle.oam.commonutil | <Inherited> oracle.oam.config | <Inherited> oracle.oam.controller | <Inherited> oracle.oam.default | <Inherited> oracle.oam.diagnostic | <Inherited> oracle.oam.engine.authn | <Inherited> oracle.oam.engine.authz | <Inherited> oracle.oam.engine.policy | <Inherited> oracle.oam.foundation.access | <Inherited> oracle.oam.idm | <Inherited> oracle.oam.idm | <Inherited> oracle.oam.idm | <Inherited> oracle.oam.user.identity.provider | <Inherited>
自身の要求に基づいてログ・レベルを変更します。たとえば、このシーケンスは、oam.controllerのログ・レベルを永続性のないTRACE:32に変更します。
wls:/base_domain/serverConfig> domainRuntime() wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.oam.controller", level="TRACE:32", persist="0", target="oam_server1")
ステップ4を繰り返して再びロガーをリストし、ログ・レベルの変更を確認します。例:
wls:/base_domain/serverConfig> listLoggers(pattern="oracle.oam.*",target="oam_ server1")
Logger | Level --------------------------------------------+----------------- oracle.oam | <Inherited> oracle.oam.admin.foundation.configuration | <Inherited> oracle.oam.agent-default | <Inherited> oracle.oam.audit | <Inherited> oracle.oam.binding | <Inherited> oracle.oam.commonutil | <Inherited> oracle.oam.config | <Inherited> oracle.oam.controller | TRACE:32 oracle.oam.default | <Inherited> oracle.oam.diagnostic | <Inherited> oracle.oam.engine.authn | <Inherited> oracle.oam.engine.authz | <Inherited> oracle.oam.engine.policy | <Inherited> oracle.oam.foundation.access | <Inherited> oracle.oam.idm | <Inherited> oracle.oam.idm | <Inherited> oracle.oam.idm | <Inherited> oracle.oam.user.identity.provider | <Inherited>
生成されたログ・ファイルを検証して、コントローラがTRACE:32レベルでロギングされていることを確認します。
$DOMAIN_HOME/server/SERVER_INSTNCE_NAME/logs/
「ランタイム・イベント・ロギング構成の検証」へ進みます。
管理者は、次の手順を使用してログ・ファイルのパスと必要な属性を指定することができます。
次の手順では、ターゲットのOAMサーバー、ローテーション期間と保持期間、ログ・ファイルのパス、ハンドラ、およびロガーを確認します。実際のデプロイメントと選択肢は、説明と異なることがあります。
| 注意:より詳しい内容を知るには、WLSTコマンド help("fmw diagnostics")を使用してください。 | 
次の条件に合致する場合はステップ1から3をスキップしてください。
OAMサーバーが稼働している
WLSTスクリプトがある
すでにサーバーに接続してログインしている
| 関連項目:Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス | 
OAMロガー、レベル、およびログ・ハンドラの指定方法
OAMサーバーが稼働中であることを確認します。
WLSTスクリプトを取得します。例:
$ORACLE_HOME/common/bin/wlst.sh
WebLogic Serverに接続してWebLogic管理者としてログインします。例:
sh wlst.sh wls:/offline> connect
Access ManagerロガーとOAMサーバーのレベルを追加します。例:
wls:/base_domain/serverConfig> domainRuntime() wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.oam", level="WARNING", persist="0", target="oam_server1")
カスタム・ログ・ハンドラを追加して、それにAccess Managerロガーを関連付けます。例:
wls:/base_domain/domainRuntime> configureLogHandler(name="oam-log-handler", 
target="oam_server1", rotationFrequency="daily", retentionPeriod="week", path="${domain.home}/oamlogs" , maxFileSize ="10485760", maxLogSize = "104857600", addHandler="true", handlerType="oracle.core.ojdl.logging
.ODLHandlerFactory", addToLogger="oracle.oam")
wls:/base_domain/domainRuntime>configureLogHandler(name="oam-log-handler", 
addProperty="true", propertyName="supplementalAttributes", propertyValue=
"OAM.USER, OAM.COMPONENT", target="oam_server1")
DOMAIN_HOME/oamlogsディレクトリの中のすべてのログを確認します。
$DOMAIN_HOME/oamlogs/
デフォルトでは、セキュリティ・トークン・サービスとIdentity Federationのメッセージは、OAMサーバーのログ・ファイルに記録されます。Fusion Middleware Controlでログを表示および構成できます。ただし、ここで説明するように、logging.xmlを編集してセキュリティ・トークン・サービスとIdentity Federationの情報を別のログ・ファイルに記録することもできます。
関係するファイルには次のものがあります。
ロギング構成ファイル: ロガー名と、ロギング用のその他の構成情報を提供します。このファイルは、$DOMAIN_HOME/config/fmwconfig/servers/SERVER-NAME/logging.xmlに保存されます。
ログ・ファイル: たとえば、$DOMAIN_HOME/ostslogs/SERVER-NAME-diagnostics.log。
セキュリティ・トークン・サービスとIdentity Federationでは、ログ・ハンドラがAccess Managerのように分類されません。そのかわり、セキュリティ・トークン・サービスとIdentity Federationのログ・レベルに影響するロガーが1つだけあります。表8-7では、WLSTコマンドで必要となるこのロガーの詳細を示します。
表8-7 セキュリティ・トークン・サービスとIdentity Federationのロガー
| コンポーネント名 | ロガー名 | ログ・ハンドラ名 | ログ・クラス | 
|---|---|---|---|
| セキュリティ・トークン・サービスまたはIdentity Federation | oracle.security.fed | stsfed-handler | class=oracle.core.ojdl.logging.ODLHandlerFactory | 
詳細は、次のドキュメントを参照してください。
| 関連項目: 
 | 
管理者は、次の手順を使用してセキュリティ・トークン・サービスまたはIdentity Federationのログ・メッセージをOAMサーバーのメッセージ・ログから切り離すことができます。
セキュリティ・トークン・サービスまたはIdentity Federationのロギングの構成方法
次のlogging.xmlを見つけて開きます。$DOMAIN_HOME/config/fmwconfig/servers/SERVER-NAME/logging.xml
次のように追加して、セキュリティ・トークン・サービスの独立したメッセージ・ログを作成します。
<log_handler name='stsfed-handler' class='oracle.core.ojdl.logging.ODLHand
lerFactory'>
      <property name='path' value='sts/log'/>
      <property name='maxFileSize' value='10485760'/>
      <property name='maxLogSize' value='104857600'/>
    </log_handler>
<logger name='oracle.security.fed' level='TRACE:32'>
      <handler name='stsfed-handler'/>
    </logger>
ファイルを保存します。
「セキュリティ・トークン・サービスまたはIdentity Federationのログ・レベルおよびログ詳細の定義」に進みます。
管理者は、ここでの説明に従い、Oracle Access Management用のカスタムWLSTコマンドを使用してセキュリティ・トークン・サービスのロガー設定を変更できます。この場合は、セキュリティ・トークン・サービスのログ・メッセージ専用の独立した出力ファイルを指定します。
このセキュリティ・トークン・サービスのロギングの手順例は、Access Managerの場合の手順とほとんど同じです。ただしいくつかの違いがあります。実際のデプロイメントの選択肢は、説明と異なることがあります。
| 注意:WLSTコマンド help("fmw diagnostics")を使用してください。 | 
次の条件に合致する場合はステップ1から3をスキップしてください。
OAMサーバーが稼働している
WLSTスクリプトがある
すでにサーバーに接続してログインしている
| 関連項目:Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス | 
セキュリティ・トークン・サービスのロガー・レベルとログ・ファイルを変更する方法
OAMサーバーが稼働中であることを確認します。
Oracle Access Management用のカスタムWLSTスクリプトを取得します。
$ORACLE_HOME/common/bin/wlst.sh
WebLogic Serverに接続してWebLogic管理者としてログインします。例:
sh wlst.sh wls:/offline> connect adminID password
oracle.security.fedのログ・レベルを、自身の要求に基づいて変更します。たとえば、このシーケンスは、ログ・レベルを永続性のないWARNINGに変更します。
wls:/base_domain/serverConfig> domainRuntime() wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.security.fed", level="WARNING", persist="0", target="oam_server1")
ターゲットのOAMサーバーの他に、ローテーション期間と保持期間、ログ・ファイルのパス、ハンドラ、およびロガーを指定します。例:
 wls:/base_domain/domainRuntime> configureLogHandler(name="osts-log-handler",  
target="oam_server1", rotationFrequency="daily", retentionPeriod="week", 
path="${domain.home}/ostslogs", maxFileSize ="10485760", maxLogSize  
="104857600", addHandler="true",handlerType="oracle.core.ojdl.logging.ODL 
HandlerFactory", addToLogger="oracle.security.fed")
生成されたログ・ファイルを検証して、コントローラがWARNINGレベルでロギングされていることを確認します。
$DOMAIN_HOME/ostslogs/SERVER-NAME-diagnostics.log $DOMAIN_HOME/oiflogs/SERVER-NAME-diagnostics.log
「ランタイム・イベント・ロギング構成の検証」へ進みます。
次の手順を使用して、ランタイム・イベントのロギング構成をテストすることができます。
前提条件
この章に示すWLSTコマンドを使用してロギングを構成します。
エージェントとサーバーが稼働していることを確認します。
第20章「リソースを保護してSSOを有効化するポリシーの管理」に従い、リソースを保護するためにアプリケーション・ドメインを構成します。
ランタイム・イベント・ロギングの検証方法
保護されたリソースのURLをブラウザに入力し、無効な資格証明を使ってサインインします。
正しい資格証明を使って再度サインインします。
物理サーバー上で、次のパスに生成されるすべてのログを検証します。
$DOMAIN_HOME/oamlogs/ $DOMAIN_HOME/ostslogs/SERVER-NAME-diagnostics.log $DOMAIN_HOME/oiflogs/SERVER-NAME-diagnostics.log
ログ・ファイルを開いて最後のエントリを探し、認証の失敗と成功を確認します。