ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Adaptive Access Manager管理者ガイド
11gリリース1 (11.1.1)
E67347-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

B パターン処理

自動学習は、いくつかのOracle Adaptive Access Manager機能を応用し、ユーザー、デバイス、ロケーションおよびトランザクション・エンティティの動作を動的にプロファイリングできるようにしたものです。パターンは、自動的に動作が記録されるように管理者が定義します。これらのパターンは、Oracle Adaptive Access Managerでパターン・パラメータに基づいてバケットを動的に作成および移入する目的で使用されます。Oracle Adaptive Access Managerでは、プロファイル全体を使用してリスクを評価できるよう、ユーザー/デバイス/ロケーション/エンティティのバケット・メンバーシップが時間に沿って自動的に記録および保持されます。さらに、動的アクションにより、ルール結果に基づいてグループが移入され、動作が詳細にプロファイリングされます。このような自動管理グループのメンバーシップもリスクの評価に使用されます。

この付録では、自動学習パターン・データ処理に関する情報を提供します。

B.1 パターン・データ処理

システム負荷が軽く、パターンが構成されている場合は、データ処理をトリガーするためのAPIがクライアントで呼び出されるとすぐに、データが処理されます。システム負荷とは、Oracle Adaptive Access Managerサーバーで処理される認証、トランザクション、ルール処理などのレポート、およびリクエストの数です。

データを処理するためのロジックは次のとおりです。

(成功した)トランザクション・レコードごとに、次のプロセスが実行されます。

  1. データベースからトランザクションのすべての属性を収集します。

  2. トランザクション・タイプを確認し、それと同じトランザクション・タイプのパターンが存在するかどうかを調べます。

  3. 同じトランザクション・タイプのパターンが存在しない場合は、この時点でプロセスが停止され、コール元には何も返されません。

  4. 同じトランザクション・タイプのパターンが存在する場合は、パターンごとに次のプロセスが実行されます。

    1. 該当パターンのパラメータを取得し、対象のトランザクションのパラメータ値が要件(範囲など)を満たしているかどうかを確認します。満たしていない場合は、次のパターンに進みます。

    2. パラメータが要件を満たしている場合は、フィンガープリント表に移動します。

    3. このような組合せのフィンガープリントが存在する場合は、パターンに追加されたエンティティについて、ワークフロー表のカウンタ(時間、日、月、年)を更新します。

    4. フィンガープリントが存在しない場合は、フィンガープリントを作成し、ワークフロー表にそのフィンガープリントのエントリを作成し、そこにカウンタを配置します。

    5. その後、パラメータの値を記録するように設定されている場合は、ワンタイム値とライフタイム値のどちらが対象になっているかパターンの構成を確認します。次に、正しいプロファイル表を更新します。その際、プロファイル表にこのエンティティのエントリが存在しない場合は、エントリを作成してください。エンティティ・プロファイル表のData1フィールドからData10フィールドは、パターン・メンバーシップと値を記録するために使用されます。

    6. 残りのパターンについて、手順aからeを繰り返します。

  5. トランザクションごとに手順1から4を繰り返します。

B.2 パターン・データ処理をトリガーするためのAPI

パターン・データ処理をトリガーするためのAPIは次のとおりです。

updateAuthStatusおよびupdateTransaction APIは、他の認証ステータスおよびトランザクション・ステータス更新APIと類似しています。唯一の違いは、updateTransactionupdateAuthStatusおよびprocessPatternAnalysisでは、認証やトランザクションのステータスの更新以外に、パターン・データ処理が実行される点です。

B.2.1 updateTransaction

このAPIでは、以前に作成されたトランザクションを更新します。

該当する場合は、パターン・データ処理もトリガーします。analyzePatternsの値がゼロ以外の場合、このトランザクションに対してパターン処理がまだ実行されていなければ、その処理がトリガーされます。

public VCryptResponse updateTransaction(
                    Transaction UpdateRequestData transactionUpdateRequest Data);

表B-1 updateTransactionのパラメータと戻り値

パラメータ 説明

TransactionUpdateRequestData

トランザクションを更新するためのオブジェクトであり、更新対象のトランザクションに対するハンドルは、createTransactionメソッドから返されるトランザクションIDまたはcreateTransactionメソッドに渡される外部トランザクションIDのいずれかです。検証が失敗すると、例外BharosaExceptionがスローされます。

このオブジェクトの構造は次のとおりです。

  • requestId: ユーザー・セッションを識別します。必須です。

  • requestTime: リクエストの時間です。nullにできます。nullにした場合、サーバーでは現在時間が使用されます。

  • transactionId ID: 前のコールによってcreateTransactionに返されるIDです。

  • status: トランザクション・ステータスです。

  • analyzePatterns: パターン処理を実行するかどうかを示すブール値です。値としてtrueを渡すと、resultStatus値がsuccessの場合に、トランザクションに対してパターン処理が実行されます。

  • externalTransactionId: トランザクションが作成されたときにcreateTransactionに渡された外部トランザクションIDです。

VCryptResponse

レスポンス・オブジェクトです。getTransactionResponse()メソッドを使用してトランザクションIDを取得する前に、isSuccess()をチェックしてください。


B.2.2 updateAuthStatus

このAPIでは、ユーザー・ノード・ログの認証ステータスを更新し、該当する場合はパターン・データ処理をトリガーします。analyzePatternsの値がtrueで、トランザクションのresultStatusの値がsuccessである場合、このトランザクションに対してパターン処理がまだ実行されていなければ、その処理がトリガーされます。

  • public VCryptResponse updateAuthStatus(java.lang.String requestId, int resultStatus, int clientType, java.lang.String clientVersion, boolean analyzePatterns)

  • public VCryptResponse updateAuthStatus(java.lang.String requestId, java.util.Date requestTime, int resultStatus, int clientType, java.lang.String clientVersion, boolean analyzePatterns)

表B-2 updateAuthStatusのパラメータ

パラメータ 説明

requestId

リクエストIDです。

requestTime

更新時間です。

resultStatus

認証結果です。これは、認証結果の列挙値です。

clientType

これは、認証に使用されるクライアント・タイプを識別するために定義された列挙値です。

clientVersion

使用されるクライアントのバージョンを指定するためのオプション・パラメータです。

analyzePatterns

パターン処理を実行するかどうかを示すブール値です。値としてtrueを渡すと、resultStatus値がsuccessの場合に、トランザクションに対してパターン処理が実行されます。


B.2.3 processPatternAnalysis

このAPIでは、パターン一致用のデータ処理をトリガーします。このコールによってトリガーされるのは、パターン一致用のデータ処理のみです。認証(またはログイン)はファースト・クラスのトランザクションではないため、最後のパラメータtransactionTypeはユーザー対話の認証タイプで使用できます。

public VCryptResponse processPatternAnalysis(java.lang.String requestId, long transactionId, int status, java.lang.String transactionType)

表B-3 processPatternAnalysis

パラメータ 説明

requestId

リクエストIDです。

transactionId

更新対象のトランザクションIDです。

status

新規ステータスです。

transactionType

トランザクションのタイプを示す文字列です。認証タイプの場合authにする必要があります。その他のタイプの場合、bill_payなど(基本的にトランザクションのタイプ名)にすることができます。