Oracle® Fusion Middleware Oracle Adaptive Access Manager管理者ガイド 11gリリース2 (11.1.2.2) B70199-06 |
|
前 |
次 |
OAAMは、OAAMオンラインとOAAMオフラインをサポートしています。OAAMオフラインを使用して、リアルタイムのリスク評価および履歴データやリアルタイムでないログインまたはトランザクション・データに対してリスク評価を実行します。
この章では、ルール評価と不正検出に関するOAAMオフラインの設定に関する情報を提供します。
この章には次の項が含まれます:
この項では、OAAMオフラインの概要について簡単に説明します。この項の内容は、次のとおりです。
OAAMオフラインは、次の目的で使用できます。
スタンドアロンのセキュリティ・ツール
OAAMオフラインを使用して、トランザクションおよびログインを分析します。OAAM本番システムを所有していないユーザーは、オフライン・システムをプライマリ・リスク分析システムとして使用できる場合があります。
調査および開発ツール
OAAMオフラインを使用して、リアルタイム環境のカスタマに影響を与えることなく、リアルタイムでないカスタマ・データを使用して、新しいポリシーとルールを作成および検証します。ユーザーは、本番システムでは実行に時間がかかる可能性がある複雑なルールをセカンダリ・システムで実行できます。OAAMではより単純なルールを実行し、OAAMオフラインをセカンダリ・システムとして使用します。
補足的なオフライン分析ツール
OAAMオフラインを使用すると、リアルタイム環境のカスタマに影響を与えることなく、カスタマおよびトランザクション・データに対して、ルールのチューニングとルール動作の検証を行うことができます。
OAAMオフラインはスタンドアロン・アプリケーションです。OAAMオンラインとは異なり、OAAMオフラインにはクライアント・アプリケーションが含まれません。図22-1「OAAMオフラインのアーキテクチャ」は、ソース・データ、ローダー、OAAMオフラインをホストするWebサーバーおよびカスタマ・ログインとトランザクションのデータを格納するデータベースの関係を示しています。
OAAMオフラインには、独自のデータベースがあります。このデータベースには、OAAMオンライン・バージョンのものと同じスキーマがあります。これは、カスタマ・データをロードしてリスク分析やルールのチューニングを行うために使用されます。OAAMオフラインでは、ログイン・データとトランザクション・データの両方をサポートできます。データのロードに使用されるローダーのタイプについては、22.1.7項「データ・ローダー」を参照してください。
カスタマ・データ(ソース・データ)をオフライン・データベースにロードするには、ロード・ジョブを作成する必要があり、データをデータベースにロードするためのデータ・ローダーも必要になります。
ジョブは、OAAMで実行できるタスクの集合です。データのロード、リスク評価の実行、モニター・データのロールアップなど、様々なジョブを実行できます。OAAMでは次のジョブがサポートされています。
表22-1 ジョブ
ジョブ | 説明 |
---|---|
ロード |
ロード・ジョブは、リモート・データソースからレコードを読み取り、データをOAAMログイン・セッションに変換して、ログイン・セッションをOAAMオフライン・データストアに格納します。 |
実行 |
実行ジョブは、一連のOAAMセッションに対してリスク分析を実行します。実行が実行を開始すると、ジョブのデータ・フィルタ内にあるレコードのクリーンアップが実行されます。このクリーン・アップでは、ルール・ログ、アラートおよびアクションの削除、リスク・スコアおよび認証ステータスのリセットが行われます。 |
ロードおよび実行 |
ロードおよび実行ジョブは、ロード・ジョブと実行ジョブの組合せです。ロード・ジョブによって各レコードが処理された後、その結果は実行ジョブに直接入力されます。 |
モニター・データのロールアップ |
モニター・データのロールアップ・ジョブは、ダッシュボードおよび一部のリスク評価で使用されるモニター・データを定期的に統合します。このジョブは、処理時にデータベースを最適化するためにデータを統合します。 |
ユーザーはジョブをスケジュールし、それらをオフラインで実行できます。ジョブについては、第23章「OAAMでのジョブのスケジュールと処理」を参照してください。
ロード・ジョブでは、リモート・データソースからレコードを読み取り、データをOAAMログイン・セッションに変換して、そのログイン・セッションをOAAMオフライン・データストアに格納します。
ロード・ジョブを作成するプロセスは、次のとおりです。
オフライン・データベースへのデータのロードに使用するローダーのタイプとデータベース接続の詳細を指定します。OAAMローダーを使用する場合、OAAMスキーマへのリモート・データベースのマッピングの詳細はすでに提供されていますが、必要に応じてこれらをデータベース側で編集できます。
ロードされるデータベースのレコード・セットを定義するデータ・フィルタを指定します。
ロード・ジョブを実行するタイミングに関するスケジュールを設定します。
ロード・ジョブでは、まずジョブの接続プロパティで定義されたデータベースに接続した後、ジョブのデータ・マッピング・プロパティから構成され、ジョブのデータ・フィルタの値によってフィルタされたSQL問合せを実行します。その後問合せの結果を取得し、ログイン・レコードをOAAMオフライン・データベース内に生成します。ログインの生成時には、Cookieを割り当てるためのデバイス識別チェックポイントも実行します。ロード・ジョブの作成については23.4.1項「ロード・ジョブの作成」を、データ・ローダーについては22.1.7項「データ・ローダー」を参照してください。
実行ジョブは、一連のOAAMセッションに対してリスク分析を実行します。
実行ジョブを作成するプロセスは、次のとおりです。
OAAMポリシーがセッションに適用される方法および条件を定義します。
ロードまたは実行されるデータベースのレコード・セットを定義するデータ・フィルタを設定します。
実行ジョブを実行するタイミングに関するスケジュールを設定します。
実行が実行を開始すると、ジョブのデータ・フィルタ内にあるレコードのクリーンアップが実行されます。このクリーン・アップでは、ルール・ログ、アラートおよびアクションの削除、リスク・スコアおよび認証ステータスのリセットが行われます。実行ジョブは、その実行タイプに基づいて実行されます。実行ジョブの作成については、23.4.2項「実行ジョブの作成」を参照してください。
ローダーは、ジョブ用に処理されるカスタマ・ログインまたはトランザクション・データをロードします。
OAAMに付属する標準的なOAAMローダーを使用すると、OAAMスキーマに簡単にマップできるログイン・データをロードできます。このデータは、OAAMスキーマ・データベースからでもリモート・データベースからでも取得できます。
複雑なマッピングやトランザクション・ユース・ケースの場合には、カスタム・データ・ローダーが必要です。ログインおよびトランザクション・データは、ファイルを含むほぼすべてのソースからロードできます。カスタム・ローダーの開発の詳細は、『Oracle Fusion Middleware Oracle Adaptive Access Manager開発者ガイド』の「OAAMオフライン用のカスタム・ローダーの開発」の章を参照してください。
表22-2に、デフォルト・ローダーとカスタム・ローダーの違いを要約します。
表22-2 OAAMローダーとカスタム・ローダー
ローダー | OAAMへの付属 | 任意のデータのロード | 任意のソースからのロード | 複雑なデータ・マッピング | ユース・ケース |
---|---|---|---|---|---|
OAAMローダー |
はい。 デフォルト・ローダー |
いいえ ログイン・データのロード |
いいえ OAAMスキーマ・データベースまたはOAAMスキーマにマップされたリモート・データベースからロードします。 |
いいえ データ・マッピングは単純でわかりやすいものにする必要があります。 |
ユース・ケース: リスク評価をオフラインで実行するソリューションの構成 |
カスタム・ローダー |
いいえ。 カスタム開発 詳細は、『Oracle Fusion Middleware Oracle Adaptive Access Manager開発者ガイド』のカスタム・ローダーの開発に関する説明を参照してください。 |
はい ログインおよびトランザクション・データをロードします。 |
はい ファイルを含むリモート・カスタム・ソースからロードします。 |
はい データを簡単にマップできず、複雑なSQL問合せやなんらかの操作を必要とする場合に使用されます。 |
実行タイプでは、OAAMポリシーがセッションに適用される方法および条件が定義されます。「OAAM」実行タイプを使用する実行ジョブでは、セッション・レコード・セットをデータベースから読み取ります。認証前チェックポイントは、セットに含まれるすべてのセッションに対して実行されます。認証後チェックポイントは、ユーザーが正常に認証されたセッションに対してのみ実行されます。
実行するチェックポイントを変更する必要がある場合は、22.9「実行するチェックポイントの変更」を参照してください。カスタム実行ジョブでは、他のタスクを実行したり、標準的なチェックポイントとは異なるチェックポイントを実行できます。
OAAMオンラインおよびオフラインでは、ダッシュボード、ジョブ作成ページおよびジョブ・モニタリング・ページを除き、同じユーザー・インタフェースが提供されます。
OAAMオフラインのダッシュボードは、次の詳細部分を除き、OAAMオンラインのダッシュボードと類似しています。
リアルタイムでないカスタマ・データの使用
OAAMオフラインのダッシュボードでは、リアルタイムのデータではなく、OAAMオンラインまたはリモート・カスタム・ソースのリアルタイムでないカスタマ・データを使用します。
リスク分析ダッシュボード
OAAMオフラインのダッシュボードでは、現在のロードまたは実行タスクの進行状況を示す「リスク分析」ダッシュボードへのアクセスが提供されます。
次の表に、オフライン環境のアクセス権の詳細を示します。
この項では、OAAMオフラインを構成するための手順について説明します。
表22-4に、OAAMオフラインを構成するためのタスクを要約します。また、各タスクの詳細情報の入手先も示します。
表22-4 OAAMオフラインの設定タスク
タスク | 説明 | ドキュメント |
---|---|---|
タスク1 - OAAMオフラインのインストール |
OAAMオフラインのインストールは、OAAMオンラインのインストールと類似しています。 |
22.3.2項「OAAMオフラインのインストール」を参照してください。 |
タスク2 - オフライン・データベース・スキーマの作成 |
OAAMオフラインには、独自のデータベースがあります。このオフライン・データベースには、OAAMオンライン・バージョンのものと同じスキーマがあります。 |
22.3.3項「オフライン・データベース・スキーマの作成」を参照してください。 |
タスク3 - データベース接続の構成 |
Oracle Fusion Middleware構成ウィザードを使用してOAAMオフラインを構成すると、スキーマ所有者、スキーマ・パスワード、データベースとサービス、ホスト名およびポートの値を設定できます。 |
22.3.4項「データベース接続の構成」を参照してください。 |
タスク4 - OAAMオフラインへのログイン |
OAAMオフラインにログインします。 |
22.3.5項「OAAMオフラインへのログイン」を参照してください。 |
タスク5 - 環境の設定 |
OAAMオフラインをインストールおよび構成したら、ベース環境を設定する必要があります。 |
22.3.6項「環境の設定」を参照してください。 |
Oracle Adaptive Access Manager(オフライン)は、Oracle Identity and Access Management Suiteに含まれています。OAAMオフラインをインストールするには、Oracle Identity and Access Management 11gインストーラを使用します。
OAAMオフラインをインストールする前に、OAAMオフライン・スキーマを作成およびロードする必要があります。OAAMの場合、Oracle Database Standard Editionを使用することもできますが、本番デプロイメントにはEnterprise Editionをお薦めします。Oracle Technology Network (OTN) Webサイト上から入手できるOracle Fusion Middlewareリポジトリ作成ユーティリティ(RCU)を使用して、スキーマを作成およびロードします。OTNのWebサイトには次でアクセスできます:
http://www.oracle.com/technetwork/index.html
後から、カスタマ・ログイン・データとトランザクション・データのいずれかまたは両方をOAAMオフライン・データベースにロードすると、OAAMオフラインがこのデータベースを使用してリスク分析を実行します。次の項では、OAAMオフライン・データベースのベスト・プラクティスについて説明します。
Oracle Fusion Middleware構成ウィザードを使用してOAAMオフラインを構成すると、スキーマ所有者、スキーマ・パスワード、データベースとサービス、ホスト名およびポートの値を設定できます。また、接続をテストすることもできます。
OAAMオフラインにサインインするには、次の手順を実行します。
OAAMオフラインをインストールおよび構成したら、次のタスクを完了してベース環境を設定する必要があります。
OAAMオンラインとOAAMオフラインの両方によって使用されるスナップショットをインポートします。オンラインとオフラインでのスナップショットの使用方法は同じです。スナップショットは、デフォルト・ポリシー、ルール、グループおよびOAAMオフラインの構成に必要なその他の情報を含むzipファイルです。OAAMスナップショット・ファイルはMW_HOME/IDM_ORACLE_HOME
/oaam/init
ディレクトリにあります。スナップショットのロードについては、第2章「OAAMベース環境の設定」を参照してください。
暗号化は、Oracle Adaptive Access Manager内のデータを未認可アクセスから保護するために使用されます。この処理では、メソッドとキーを使用して、プレーン・テキストを判読不可能な形式にエンコードします。キーは、暗号化された情報を復号化し、判読可能な状態に戻すために必要です。キーを所有し、認可されているユーザーは、同じキーを使用して暗号化された情報を復号化できます。OAAMオフライン用に暗号化とデータベース資格証明を設定する方法については、2.4項「暗号化およびデータベース資格証明の設定」を参照してください。
自動学習を使用するには(パターン分析):
デフォルト・エンティティをインポートします。
デフォルト・スナップショットを使用しない場合は、自動学習ポリシーおよびルールをインポートします。これらは、データに対して自動学習実行を実行するために必要です。
自動学習プロパティを有効化します。
vcrypt.tracker.autolearning.enabled=true vcrypt.tracker.autolearning.use.auth.status.for.analysis=true vcrypt.tracker.autolearning.use.tran.status.for.analysis=true
詳細は、16.3項「自動学習の使用を開始する前の作業」を参照してください。
パターンを定義および有効化します。
ロードと実行を同時に実行します。
パターンは自動学習でサポートされますが、同じデータをリロードした場合、評価が実行されないため、その評価は役立ちません。
ご使用のシステムで構成可能なアクションを有効にするには、次の手順を実行します。
構成可能なアクション・プロパティを有効にします。
dynamicactions.enabled
をtrue
に設定します。
構成可能なアクションの定義がOracle Adaptive Access Managerデータベースで構成されていることを確認します。
構成可能なアクションを新たに追加する前に、構成可能なアクションのリストを確認できます。
どのチェックポイントにどの構成可能なアクションを追加する必要があるのか、およびそれらの構成可能なアクションを実行するための事前条件を明らかにします。
既存の構成可能なアクションで不十分な場合は、カスタムの構成可能なアクションを開発およびデプロイします。構成可能なアクションの開発の詳細は、『Oracle Fusion Middleware Oracle Adaptive Access Manager開発者ガイド』を参照してください。
製品にはいくつかの構成可能なアクションが用意されていますが、特定の要件にあわせてカスタム・テンプレートを開発する必要がある場合があります。
カスタム・アクション・テンプレートを定義します。
カスタム・アクション・テンプレートをロードします。
構成可能なアクションをチェックポイントに関連付けます。
構成可能なアクションの有効化については、第17章「構成可能なアクションの管理」を参照してください。
IPロケーション・データは、特定のIPアドレス(ロケーション)に関連する不正のリスクを判断するために、リスク・ポリシー・フレームワークによって使用されます。ログインまたはトランザクションのロケーションを判断できるようにするには、このデータをアップロードする必要があります。詳細は、27.3項「IPロケーション・データのインポート」を参照してください。
ジョブのスケジュールについては、第23章「OAAMでのジョブのスケジュールと処理」を参照してください。この章には、Oracle Adaptive Access Managerのバッチ・ジョブを定義、スケジュールおよび実行する方法が記載されています。
OAAMオフラインを使用して、新しいデプロイメントまたは既存のデプロイメントのOAAMポリシーおよびルールをテストできます。
OAAMオフラインおよびBIPレポートの組合せを使用して、ポリシーとルールのユーザーに対する影響をテストできます。これを行うには:
OAAMのオフライン・インスタンスをデプロイしてバッチ分析を実行します。
OAAMローダーを構成するか、または独自のものを開発して、本番データのセットをオフライン環境にロードし、テスト・セットとして使用します。
データのテスト・セットに対してポリシーとルールを複数回実行し、ポリシー変更の影響を表示します。
たとえば、新規デプロイでは、1か月分の本番データをOAAMにロードし、基本ポリシーを実行して、OAAMが1か月間に本番環境で使用された場合に生成されるアラートおよびアクションの数を確認できます。ルールおよび結果の集計値を収集するには、BIPレポートが役立ちます。結果において、OAAMが動作を学習するとユーザーが生成するアラートおよびアクションが少なくなることがわかります。新規ルールを追加したり、ルールのしきい値を編集した場合、再度実行して、BIPレポートの結果と元の実行の結果を比較できます。
OAAMがすでに本番環境にある場合、ポリシー/ルール変更の影響をテストする本番データのセットをエクスポートできます。
スケジュール・データ・ロードを設定し、24時間ごとにオフライン環境データを更新します。
セキュリティ・チームが新規ルールを追加したりルールのしきい値を編集する必要がある場合は、まず本番環境の現在のポリシーに対して24時間分のデータを実行し、XLSにエクスポートされたBIPレポートを実行します。
次に、チームは編集を行い、同じデータ・セットに対して2回目を実行し、さらに同じBIPレポートを実行できます。
実行1および実行2のレポートを比較すると、ポリシーの変更によってユーザーの移入がどのように影響されたかがわかります。つまり、最初の実行で100のアラートが生成され、2回目の実行で125のアラートが生成された場合、25の追加アラートが生成されたことが編集の結果ということになります。
また、追加のテスト・オプションについてサード・パーティ・ツールのライセンスを取得できます。
たとえば、ユーザーが10:24 am PST(太平洋標準時)にロサンゼルスからログインした後、10:45 am PSTにニューヨーク市から同じデバイスを使用してログインした場合に速度ルールがトリガーされるかどうかをテストする場合があげられます。
自動学習におけるパターンの設定
オンライン・システムでは、管理者が任意のタイミングでパターンを設定でき、その時点からログインに対してパターンの処理が開始されます。オフライン・システムでは、管理者がロード・ジョブを開始する前にプロパティとパターンを設定し、ロード・ジョブの実行時にパターンの処理が同時に行われるようにする必要があります。これはオンライン・システムとオフライン・システムの重要な違いの1つです。
自動学習でのジョブの実行
自動学習が必要な場合、ロードを実行した後に実行を実行することはできません。パターンの処理では、ロードおよび実行のみがサポートされます。ジョブの作成時に、ロードおよび実行をジョブ・タイプとして選択します。ロードおよび実行ジョブは、ロード・ジョブと実行ジョブの組合せです。ロード・ジョブによって各レコードが処理された後、その結果は実行ジョブに直接入力されます。ロードおよび実行ジョブを送信した後、「ジョブ・キュー」に移動してジョブを検索し、そのステータスとその他の詳細を表示する必要があります。
タイムスタンプと自動学習
オフライン・データにはタイムスタンプが含まれます。自動学習では、バケットを作成すると、作成されたバケットにログインのタイムスタンプが含まれます。その後バケット数が更新されるたびに、OAAMではその更新が発生したログイン(リクエスト)のタイムスタンプを使用して、タイムスタンプを更新します。自動学習ベースのルールでは、バケットのタイムスタンプを合計と率の計算に使用します。たとえば、ユーザーが今月の12日(月曜日)と22日(日曜日)にシステムにログインしたとします。バケットは適切に移入されますが、ルール評価は更新タイムスタンプを識別できないため、機能しません。
この項では、ダッシュボードとサーバー・ログを使用してOAAMオフラインをモニターする方法について説明します。
OAAMオフラインのダッシュボードでは、次の内容を提供するために、リアルタイムのデータではなく、OAAMオンラインまたはリモート・カスタム・ソースのリアルタイムでないカスタマ・データを使用します。
ログイン率に基づく統計のビュー
アクティビティの概要
ユーザーの動作とキー・トランザクションのステータスに関する高度にパーソナライズされたビュー
「リスク分析」ダッシュボードには、現在のロードまたは実行タスクの進行状況が表示されます。次の項目について、「リスク分析」統計が提供されます。
ロード・データ: OAAMオンラインまたはリモート・カスタム・ソースからロードされたデータです。
実行データ: ポリシーの実行対象となるデータです。ルールはデータベース全体に対して実行することも、データベースのサブセットに対して実行することもできます。
表示される情報には、完了率、処理されたレコードの数、残っているレコードの数、予測完了時間などがあります。
ダッシュボードの次の部分を使用して、ローダー処理をモニターします。
最上部のパフォーマンス・パネルには、1分当たりのログイン、1分当たりにロードされたトランザクションなどのスループットが表示されます。パフォーマンスに基づく様々なタイプのデータのトレンド・グラフが表示されるため、ローダーのトレンドをモニターできます。
最下部のダッシュボードには、履歴データが表示されます。「ダッシュボード」リストの「パフォーマンス」を選択します。APIやルールなどの平均レスポンス時間の観点で、パフォーマンスをモニターできます。選択した項目に関するトレンド・グラフが提供されます。
オフライン・ジョブ・データは、タイムスタンプではなく、いつレコードが処理されたかに基づきます。
ルールのログを処理するには、vcrypt.tracker.rules.trace.policySet.min.ms
の値を-1
に設定する必要があります。
詳細情報のルール・ロギングをオンにするには、次を設定します。
vcrypt.tracker.rules.trace.policySet=true vcrypt.tracker.rules.trace.policySet.min.ms=-1
次のプロパティが設定されていることを確認します。
bharosa.db.query.performance.warning.print.stack=false bharosa.db.query.performance.warning.threshold.ms=200
サーバーでは、実行に200ミリ秒を超える時間がかかったSQLをログ・ファイルに書き込みます。SQLがランダムにログに記録されている場合、処理される負荷の面では問題ありません。ただし、SQLの数が多い場合は、データベースまたはネットワーク領域における改善が可能です。
リクエストが1000個処理されるたびに、ローダー処理ではそれらの1000個のリクエストの処理にかかった時間を出力します。これらのログは、スループットの確認に役立ちます。
Oracle Enterprise Manager Fusion Middleware Controlなどのツールを使用して、データベースのパフォーマンスをモニターおよびチューニングできます。
オフラインでは、Oracle Dynamic Monitoring Service (DMS)がパフォーマンス監視に使用されます。パフォーマンスの監視については、第24章「OAAMの管理機能とパフォーマンス」を参照してください。
「OAAM」ローダー・タイプは、OracleまたはMicrosoft SQL Serverデータベースからロードできるように構成されています。OracleまたはMicrosoft Server SQL Serverデータベースを使用していない場合は、22.8.1項「OracleまたはMicrosoft Server SQL Server以外のデータベース用のオフライン・ローダー・データベース・プラットフォームの指定」と22.8.2項「OAAM以外のデータベースのビューの作成」に記載されている手順を実行します。Microsoft Server SQL Serverデータベースを使用している場合は、22.8.2項「OAAM以外のデータベースのビューの作成」に記載されている手順を実行します。
様々なタイプのデータベースからロードする必要がある場合、2つの手順に従う必要があります。データベースのJDBCドライバを含むJARファイルをデプロイし、プロパティ・エディタを使用して、大カッコで囲まれた太字の値を変更して、次の形式のプロパティを作成する必要があります。
oaam.offline.loader.databaseplatform.enum.[identifier]=[number > 10] oaam.offline.loader.databaseplatform.enum.[identifier].name=[Human Readable Name] oaam.offline.loader.databaseplatform.enum.[identifier].driver=[Driver Class Name]
注意: 複数のデータベース・タイプを追加する場合、[number > 10]はそれぞれについて一意である必要があります。 |
たとえば、IBM DB2用に設定するには、次のプロパティを設定します。
oaam.offline.loader.databaseplatform.enum.db2=11 oaam.offline.loader.databaseplatform.enum.db2.name=IBM DB2 oaam.offline.loader.databaseplatform.enum.db2.driver=COM.app.db2.jdbc.app.DB2Driver
OAAM以外のデータベースからロードする必要があるユーザーは、リモート・データソース内にビューを作成する必要があります。この項では、必要なデータベース・ビューをリモート・データベース内に設定する方法について説明します。
OAAMオフライン用の標準OAAMローダーでは、リモート・データソース内に存在するための特定の名前と構造を持つ表またはビューが必要になります。デフォルトではこのビューがすでにOAAMスキーマ内に存在しますが、OAAM以外のスキーマからロードする必要がある場合、OAAMロード・データ・ビューの仕様に準拠したビューをリモート・データソース内に作成する必要があります。次の表に、その構造を示します。
表22-5 OAAM_LOAD_DATA_VIEW
フィールド名 | データ型 | 説明 |
---|---|---|
LOGIN_TIMESTAMP |
日付/時間 |
ログイン時間。 |
SESSION_ID |
文字 |
ログイン・レコードを一意に識別します。 |
USER_ID |
文字 |
ユーザーのユーザーID。 |
LOGIN_ID |
文字 |
ユーザーのログインID。ロード・データソースによってユーザーIDとログインIDが区別されない場合、これはUSER_IDと同じになる可能性があります。 |
DEVICE_ID |
文字 |
ユーザーのデバイスを識別します。 |
GROUP_ID |
文字 |
アプリケーションID。 |
IP_ADDRESS |
整数 |
長整数形式のIPアドレス。 |
AUTH_STATUS |
整数 |
認証ステータス。OAAM以外のスキーマからロードする場合、このフィールドは、リモート・データソースの認証ステータスを、ユーザーが定義した列挙auth.status.enumによって定義されたOAAM認証ステータスに変換するデコード関数にする必要があります。リモート・スキーマに認証ステータスの概念がない場合、この値は-1にする必要があります。 |
CLIENT_TYPE |
整数 |
クライアント・タイプ。OAAM以外のスキーマからロードする場合、これは-1にする必要があります。 |
USER_AGENT |
文字 |
ブラウザからのユーザー・エージェント文字列。 |
FLASH_FINGERPRINT |
文字 |
このフィールドは、デジタル・フィンガープリントを表します。ロード・データソースによってサポートされていない場合、nullになる可能性があります。 |
DIGITAL_COOKIE |
文字 |
このフィールドは、OAAMによって設定されたデジタルCookieを表します。OAAM以外のスキーマからロードする場合、これはnullにする必要があります。 |
EXP_DIGITAL_COOKIE |
文字 |
このフィールドは、OAAMによって設定された予期するデジタルCookieを表します。OAAM以外のスキーマからロードする場合、これはnullにする必要があります。 |
SECURE_COOKIE |
文字 |
このフィールドは、OAAMによって設定されたセキュアCookieを表します。OAAM以外のスキーマからロードする場合、これはnullにする必要があります。 |
EXP_SECURE_COOKIE |
文字 |
このフィールドは、OAAMによって設定された予期するセキュアCookieを表します。OAAM以外のスキーマからロードする場合、これはnullにする必要があります。 |
OAAMスキーマとカスタム・スキーマを次に示します。
次の例は、OAAMに付属するOAAM_LOAD_DATA_VIEW
用のSQLを示しています。
CREATE OR REPLACE FORCE VIEW OAAM_LOAD_DATA_VIEW ( LOGIN_TIMESTAMP, SESSION_ID, USER_ID, LOGIN_ID, DEVICE_ID, GROUP_ID, IP_ADDRESS, AUTH_STATUS, CLIENT_TYPE, USER_AGENT, FLASH_FINGERPRINT, DIGITAL_COOKIE, EXP_DIGITAL_COOKIE, SECURE_COOKIE, EXP_SECURE_COOKIE) AS SELECT l.create_time LOGIN_TIMESTAMP, l.request_id SESSION_ID, l.user_id USER_ID, l.user_login_id LOGIN_ID, l.node_id DEVICE_ID, l.user_group_id GROUP_ID, l.remote_ip_addr IP_ADDRESS, l.auth_status AUTH_STATUS, l.auth_client_type_code CLIENT_TYPE, (SELECT t1.data_value FROM v_fprints t1 WHERE t1.fprint_id=l.fprint_id) USER_AGENT, (SELECT t2.data_value FROM v_fprints t2 WHERE t2.fprint_id=l.digital_fp_id) FLASH_FINGERPRINT, l.sent_dig_sig_cookie DIGITAL_COOKIE, l.expected_dig_sig_cookie EXP_DIGITAL_COOKIE, l.sent_secure_cookie SECURE_COOKIE, l.expected_secure_cookie EXP_SECURE_COOKIE FROM vcrypt_tracker_usernode_logs l;
説明を目的として、この文を2つの部分に分けて考えます。
1つ目の部分は、先頭からSelectの前までです。この部分は必須であるため、変更できません。
2つ目の部分は、Selectから文の末尾までです。OAAM以外のスキーマからロードする場合、そのスキーマからデータを選択するようこの部分をカスタマイズすることが考えられます。
この例では、次のような表からロードするとします。アプリケーションIDとしてBankingを使用し、テスト・データをロードしないようにすることができます。
LOGINS
表22-6 LOGINS
フィールド名 | データ型 | 説明 |
---|---|---|
LOGIN_TIME |
日付/時間 |
ログイン時間。 |
LOGIN_ID |
整数 |
主キー。 |
USER_NAME |
文字 |
ユーザーのログインID。 |
DEVICE_ID |
文字 |
ユーザーのデバイスを識別します。 |
IP_ADDRESS |
文字 |
ドット表記法のIPアドレス。 |
AUTH_STATUS |
文字 |
Sは成功、Iは無効なユーザー、Fは正しくないパスワードを示します。 |
USER_AGENT |
文字 |
ブラウザからのユーザー・エージェント文字列。 |
IS_TEST |
整数 |
0は実際のデータ、1はテスト・データを示します。 |
この場合、カスタム認証ステータスをOAAM認証ステータスに変換するためのdecode文が必要であり、さらにIPアドレスを解析して長整数に変換する必要があります。次のようなビューを作成する必要があります。
CREATE OR REPLACE FORCE VIEW OAAM_LOAD_DATA_VIEW ( LOGIN_TIMESTAMP, SESSION_ID, USER_ID, LOGIN_ID, DEVICE_ID, GROUP_ID, IP_ADDRESS, AUTH_STATUS, CLIENT_TYPE, USER_AGENT, FLASH_FINGERPRINT, DIGITAL_COOKIE, EXP_DIGITAL_COOKIE, SECURE_COOKIE, EXP_SECURE_COOKIE) AS SELECT l.login_time LOGIN_TIMESTAMP, cast(l.login_id AS varchar2(256)) SESSION_ID, l.user_name USER_ID, l.user_name, LOGIN_ID, l.device_id DEVICE_ID, 'Banking' GROUP_ID, to_number(substr(l.ip_address, 1, instr(l.ip_address, '.')-1))*16777216 to_number(substr(l.ip_address, instr(l.ip_address, '.', 1, 1)+1, instr(l.ip_address, '.', 1, 2)-instr(l.ip_address, '.', 1, 1)-1))*65536 to_number(substr(l.ip_address, instr(l.ip_address, '.', 1, 2)+1, instr(l.ip_address, '.', 1, 3)-instr(l.ip_address, '.', 1, 2)-1))*256 to_number(substr(l.ip_address, instr(l.ip_address, '.', 1, 3)+1)) IP_ADDRESS, decode(l.auth_status, 'S', 0, 'I', 1, 'F', 2, -1) AUTH_STATUS, -1 CLIENT_TYPE, l.user_agent USER_AGENT, null FLASH_FINGERPRINT, null DIGITAL_COOKIE, null EXP_DIGITAL_COOKIE, null SECURE_COOKIE, null EXP_SECURE_COOKIE FROM logins l WHERE l.is_test = 0
ここでは、user_name
をUSER_ID
とLOGIN_ID
にマップし、リテラル文字列BankingをGROUP_ID
にマップし、ip_address
文字列を解析して長整数に変換し、decode文を使用してauth_status
を変換し、-1
をCLIENT_TYPE
にマップし、リテラルnull
をFLASH_FINGERPRINT
、DIGITAL_COOKIE
、EXP_DIGITAL_COOKIE
、SECURE_COOKIE
およびEXP_SECURE_COOKIE
にマップします。
「OAAM」ロード・タイプを使用する実行ジョブでは、セッション・レコードをデータベースから読み取り、認証前および認証後チェックポイント用のポリシーを適用します。PreAuth
プロパティがtrueに設定されている場合、すべてのセッションに対して、認証前チェックポイントが実行されます。デフォルトでは、trueに設定されています。認証後チェックポイントは、ユーザーが正常に認証され、PostAuth
プロパティがtrueに設定されたセッションに対してのみ実行されます。
標準的なチェックポイントとポリシーに加えて、またはそれらのかわりにチェックポイントとポリシーをカスタマイズした後、さらにチェックポイントを実行するかどうかを変更する場合、プロパティ・エディタを使用して次のプロパティを作成または編集することが必要になります。
profile.type.enum.[checkpoint-key].isPreAuth or profile.type.enum.[checkpoint-key].isPostAuth
特定のチェックポイントのisPreAuth
またはisPostAuth
プロパティをtrue
またはfalse
に設定すると、実行するチェックポイントが変更されます。まず認証前チェックポイントが実行され、次に認証後チェックポイントが実行されます。チェックポイントは数値順になっており、その順序に従って実行されるため、チェックポイントの順序は変更できません。
10gからのカスタム・ローダーの移行はサポートされていません。
この項では、OAAMオフラインとジョブの実行に関する一般的なユース・ケースを紹介します。
管理者のChuckは、複数のスケジュール済ジョブを含む10gデプロイメントを、スケジュールを中断することなくオフラインで11.1.2にアップグレードする必要があります。
必要なもの: アップグレード・アシスタント
ソリューション: Chuckはアップグレード・アシスタントを実行して10gをオフラインで11.1.2にアップグレードすることによって、スケジュール済ジョブを新しい環境に移行します。
Georgeはセキュリティとコンプライアンスを担当しています。彼は、リアルタイムで実行するにはコストが高すぎると考えられたリスク評価をオフラインで実行できるソリューションの構成を依頼されました。このプロセスの目的の一部は、構成可能なアクションを使用して、ユーザー、デバイス、IPおよびロケールなどのその他のデータをグループに、またはグループからプロビジョニングし、それらの動作をプロファイリングすることです。
必要なもの: ログイン・ローダー、ロード/実行、構成可能なアクションおよびBIP
ソリューション: Georgeは構成したグループをエクスポートし、それらをリアルタイム・リスク分析に使用する本番データベースにインポートします。使用するOAAMローダーは、データをオフライン・データベースにプルし、それを正しくマップするよう構成されています。また、標準の実行タスクを使用し、選択項目に含まれるすべてのセッションに対してチェックポイントのログイン・チェーン全体を実行します。
手順: OAAM管理コンソールで、GeorgeはデータソースとしてOAAM本番データベースを定義し、日付範囲を指定することによって、どれぐらいのデータをロード(1か月)および実行するかを定義します。必要に応じて、選択項目をロードし、そのデータの下位の項目に対してのみチェックポイントを実行できます。最後に、ロードおよび実行する単一の日付/時間または再発生するロードおよび実行を構成するか、単に「開始」をクリックしてすぐにロードおよび実行を開始します。(ブロックされたユーザーをブラックリスト・グループに追加するために、構成可能なアクションを構成できます)
ロードおよび実行が完了したら、Georgeは各チェックポイントの各アクション、アラートおよびリスク・スコアの合計数と、各プロファイリング・グループに対して追加または削除されたメンバーの合計数に関するメトリックを示す、いくつかのBI Publisher集計レポートを生成します。
このフローにおける一般的なタスクとユーザーが直面する疑問/問題の概要
データソースの構成
役立つ構造へのデータのマップ - ログイン(OOTB)
ロードするデータの選択 - すべてまたは特定の項目
チェックポイントも実行するか
今すぐロードするか、または設定時間に開始するか
ロードが発生するまたは繰り返されるタイミングのスケジュール
結果を見やすい形式で表示して、実行したリスク評価とプロファイリングからわかった実態を把握する
Georgeはセキュリティとコンプライアンスを担当しています。彼は、新しいまたは編集済のリスク評価を、本番環境にデプロイして実行する前にオフラインでテストできるソリューションの構成を依頼されました。
必要なもの: OAAMローダー、Universal Risk Snapshotおよびセキュリティ・ポリシー
ソリューション: データをオフライン・データベースにプルし、それを正しくマップするよう構成されたOAAMローダーを使用します。また、標準の実行タスクを使用し、選択項目に含まれるすべてのセッションに対してチェックポイントのログイン・チェーン全体を実行します。
手順: OAAM管理コンソールで、GeorgeはデータソースとしてOAAM本番データベースを定義し、日付範囲を指定することによって、どれぐらいのデータをロードおよび実行するかを定義します。必要に応じて、選択項目をロードし、そのデータの下位の項目に対してのみチェックポイントを実行できます。彼は先月のデータを選択します。次にGeorgeは、本番環境のOAAM管理からスナップショットをエクスポートし、それをOAAMオフライン・テスト環境にリストアします。すべてのデータについて、ロードおよび実行を構成します。実行には「Production state 08/11/2010」というベース名を付けます。実行の最初のインスタンスが発生すると、そのインスタンスには、ベース名に開始日時が付加された名前「Production state 08/11/2010_18:01.80112010」が自動的に付けられます。実行が完了すると、チームでは、設計したセキュリティ・ポリシーに対する編集と追加を行います。Georgeは自動的に「Production state 08/11/2010_23:12.80112010」という名前が付けられた別の実行を、すべてのデータに対して開始します。この2回目の実行では、結果のずれを防ぐために、1回目の実行で作成されたデータをすべて無視します。1回目の実行で生成されたアクション・アラートおよびスコアは、2回目以降の実行の結果に影響を与えません。2回目の実行が完了したら、2回の実行の集計結果値を示すレポートを生成し、それらを並べて比較できるようにします。Georgeは結果に満足したため、スナップショットをバックアップし、それを本番環境にリストアします。
このフローにおける一般的なタスクとユーザーが直面する疑問/問題
データソースの構成
役立つ構造へのデータのマップ - ログイン(OOTB)
ロードするデータの選択 - すべてまたは特定の項目
チェックポイントも実行するか
今すぐロードするか、または設定時間に開始するか
ロードが発生するまたは繰り返されるタイミングのスケジュール
結果を見やすい形式で表示して、実行したリスク評価とプロファイリングからわかった実態を把握する
IT管理者のGramは、ダッシュボードで使用するモニター・データを最適な状態で維持する必要があります。彼はデータの統合を構成して、今後それを週3回自動的に実行する必要があります。
ソリューション: Gramはすでに使用可能な「データ・ロールアップのモニター」タスクを使用して、週3回モニター・データを統合します。OAAM本番データベースにマップするデータベース接続プロパティを正しく構成します。
手順: OAAM管理コンソール(オンライン)で、GramはデータソースとしてOAAM本番データベースを定義し、日付範囲を指定することによって、どれぐらいのデータを統合するかを定義します。適切なロールアップ単位とカットオフ日付を使用して、モニター・データのロールアップを構成します。その後、そのジョブを週3回実行するようスケジュールします。
IT管理者のGramは、ダッシュボードで使用するモニター・データを毎日最適な状態で維持する必要があります。彼はデータの統合を構成して、今後それを毎日自動的に実行する必要があります。
ソリューション: Gramはすでに使用可能な「データ・ロールアップのモニター」タスクを使用して、毎日モニター・データを統合します。OAAM本番データベースにマップするデータベース接続プロパティを正しく構成します。
手順: OAAM管理コンソール(オンライン)で、GramはデータソースとしてOAAM本番データベースを定義し、日付範囲を指定することによって、どれぐらいのデータを統合するかを定義します。ロールアップ単位を毎日、カットオフ時間を1として、モニター・データのロールアップを構成します。その後、そのジョブを週3回実行するようスケジュールします。履歴ダッシュボードを確認したとき、彼は予想どおり、ダッシュボードの最下部に表示された時間ごとのトレンド・ビューで、いくつかの時間の粒度が失われていることに気付きます。
Georgeはセキュリティとコンプライアンスを担当しています。彼は、従業員のガス・カードの使用状況をモニターして、リソースを濫用している可能性があるすべての従業員を識別できるソリューションの構成を依頼されました。
ソリューション: Georgeは、相乗り自動車タイプのデータ、使用された自動車のタイプに関する従業員の詳細およびガス・カードのトランザクション・レコードに対してリスク評価を実行しようと考えています。このデータは3つの異なるソースから、CSV形式で提供されます。Georgeは所属チームおよび契約者と協力し、要件に合ったカスタム・データ・ローダーを開発しました。
このローダーでは、以前にOAAM管理コンソールで定義したエンティティとトランザクションを使用して、受信データをOAAMスキーマにマップします。また、チームでは2つのトランザクション・チェックポイントを使用して評価するカスタム実行タスクも開発しました。開発した実行タスクでは、管理者が2つのチェックポイントのどちらを実行するかを選択できます。
手順: OAAM管理コンソールで、Georgeは日付範囲を指定することによって、どれぐらいのデータをロードおよび実行するかを定義します。必要に応じて、選択項目をロードし、そのデータの下位の項目に対してのみルールを実行できます。Georgeはリスク評価の実行対象となるデータを決定した後、実行するチェックポイントを選択します。一度に1つまたは複数を実行できます。最後に、ロードおよび実行する単一の日付/時間または再発生するロードおよび実行を構成するか、単に「開始」をクリックしてすぐにロードおよび実行を開始します。
実行とロードおよび実行が完了したら、Georgeのチームは開発した集計とリスト・レポートを両方実行します。一方には月ごとの各アラートの合計数と、その月の日ごとの各アラートのトレンドが表示されるため、変化を確認できます。もう一方には、アラートをトリガーした従業員が、トリガーしたアラートのリストおよび時間とともに表示されます。
一般的なタスクの概要: このフローにおける一般的なタスクとユーザーが直面する疑問/問題の概要を次に示します。
データソースの構成
OAAMスキーマへのデータのマップ - トランザクション(カスタム)
ロードするデータの選択 - すべてまたは特定の項目
ルールも実行するか
どのチェックポイントを実行する必要があるか
今すぐロードするか、または設定時間に開始するか
ロードが発生するまたは繰り返されるタイミングのスケジュール
ビジネス・ユーザーに役立つ形式で結果を表示できるレポートの作成
OAAMオフラインの使用に関するユーザー・フローを次に示します。
オフライン・システムをインストールします。
データをロードします。
データに対してルールを実行します。
チェックポイントの評価順序は、オンラインの場合と同じです。
認証後、チャレンジ・アクションを含むルールに対しては、認証ステータスが保留中に設定されます。
疑わしいアクティビティに対しては、アラートが生成されます。
ダッシュボードとレポートを調べます。
試みられたハッキングを探します。
攻撃を捕捉するための新しいルールとポリシーを作成します。
新しいルールとポリシーを通じて古いデータを実行します。
新しいルールが役立ったかどうか、再度レポートを調べます。
本番前環境でルールをテストします。
Oracle Adaptive Access Manager本番システムに新しいルールとポリシーを実装します。
この項では、OAAMオフラインを使用する管理者のためのいくつかのベスト・プラクティスについて説明します。
ローダー構成の作成時は、10個のワーカー・スレッドから始めて、ダッシュボードを使用してスループット(1分当たりに処理されるリクエストの数)を監視します。
スループットが必要に満たない場合は、ライター・スレッドを5個単位で増やします。ライター・スレッドの数を増やしても、必ずしもスループットが向上するわけではありません。特定のハードウェアで最大のスループットを得るには、ワーカー・スレッドの数を調整します。
ロードおよび実行は、バッファがフラッシュされた後にのみ一時停止します。一時停止および再開の必要がある場合は、スロットルのサイズを小さく保ちます。デフォルトは100です。
データをデータベースにロードする場合、そのデータがマッピングのとおりに有効であることを確認します。ソース・データの検証(基本的な健全性の確認)は、ロード前の方が簡単に行うことができます。これにより、サイクルのロードや情報の正しくない処理が行われずに済みます。
検証内容を次に示します。
nullまたは空の必須フィールド(ユーザー名など)があるかどうかを確認します。
同じユーザーからのログインやトランザクションが何回も発生していないこと、および正しくないデリミタやエスケープ文字が原因でユーザーID「0」が30%を超える割合でログインしていないことを確認します。このようなエラーは必ずしもエラーとして記録されませんが、ロード処理が遅くなったり、データが誤って処理される原因となります。
フィールドの組合せが一意であることが予期されていること、およびデータが一意であることを確認します。
重複したレコードやコンテンツがソース・データに含まれていないことを確認します。レコードが重複した場合、結果にずれが生じ、誤ったアラートが発生する可能性があります。
リクエストを識別するフィールド(リクエスト識別子)が一意であることを確認します。
データの切捨てを回避するには、ソース・データをデータベースにロードしてからOracle Adaptive Access Managerにフィードする場合に、そのソース・データがデータベースへのロード中に切り捨てられないようにします。
ソース・データにセキュアなCookieやデジタルCookieが含まれない場合、常にセキュアなCookieとデジタルCookieのいずれかまたは両方を送信し、Oracle Adaptive Access Manager内でのCookieの循環を無効にします。
フェイルオーバーは即座に発生しません。システムでは、リース・メカニズムを使用して、ジョブがまだ有効であるかどうかを確認し、リースの有効期限が切れたときにフェイルオーバーしますが、そのフェイルオーバーには10分もかかる場合があります。