1 Oracle JET Audit Frameworkの開始
Oracle JET Audit Framework (JAF)はコマンドライン・ユーティリティで、組み込まれた豊富な監査診断ルールを使用してJETアプリケーションを監査できるサポートAPIです。このAPIでは、アプリケーションの特定の診断要件を満たすカスタム監査ルールを記述してJAFを拡張できます。
Oracle JETアプリケーションの監査について
Oracle JET Audit Framework (JAF)は動的で、構成ファイルで検出した実行時オプションに基づいて、Oracle JETプロジェクトの監査を実行します。
JAFの使用を開始できるよう、最初の構成ファイルは自動的に作成され、迅速な準備と実行がサポートされます。デフォルトの構成ファイルが作成された後、プロジェクトのニーズに合せて監査を調整するための多くのオプションがあります。
Oracle JAFがインストールされている場合、JETプロジェクトに実行される監査は、Oracle JET CLIと同様にコマンドライン・インタフェースで実行されます。JAFをインストールすると、ojaf
という名前のlintスタイルのコマンドライン・ユーティリティが提供されます。これは、Oracle JETの観点での静的分析を実行するルールを適用して、JETアプリケーション・ファイル(現時点ではHTML、JS、TS、TSX、CSSおよびJSON)を監査します。
ojaf
ユーティリティを起動すると返される監査診断メッセージは、アプリケーションのOracle JETのリリース・バージョンに固有の組込みルール・セットから生成されます。Oracle JETの新しいバージョンがリリースされたら、JAFを更新して、適用可能な最も新しい監査ルールで最新の状態に維持できます。このため、定期的にJAFを更新することをお薦めします。
Oracle JETの各バージョンに固有の監査ルールは、組込みルールと呼ばれます。また、カスタム・ユーザー定義ルールを使用して実行するように監査を構成することもできます。組込みルールとユーザー自身が作成できるルールはいずれも、論理的かつ物理的に1つのルール・パックにまとめてグループ化されます。
Oracle JETのインストールと同様に、Oracle JAFのインストールでは前提条件としてNode.jsのインストールが必要です。ojaf
ユーティリティによって、Node.jsバージョンが最低ノード・バージョン要件を満たしていないかどうかレポートされます。
監査を実行する前に、JETツールを使用してOracle JAFを初期化し、デフォルトのJAF構成ファイルoraclejafconfig.json
をスキャフォールドします。Oracle JAF構成のプロパティをカスタマイズして、特定の監査実行についてルール・セット(アクティブなルールのセット)とファイル・セット(監査対象のファイルのセット)の両方の様々な側面を制御できます:
-
ルールを無効にできます。
-
実行する1つ以上のルールを名前で指定し、その他すべてのルールを除外できます。
-
ルール・グループを指定できます(HTMLに関連する実行ルールのみ、など)。
-
ルールをレポート対象の問題の重大度で選択できます。
-
すべての組込みルールを抑制できます(ユーザー定義ルールのみ実行可能)。
-
定義されたルール・パック内に指定されたルールをすべて無効にできます。
-
包含と除外のオーバーライドの両方にglobサポートを使用するなどして、ターゲット・ファイル・セットを簡単に定義できます。
-
特定のランタイム基準またはプロジェクトに対して、複数の構成ファイルを作成できます。構成ファイルはJSON形式ですが、JavaScript/TypeScriptスタイルのコメントをドキュメント化の目的で使用できます。使用する構成ファイルをコマンドラインで指定できます。
JAFインストールに用意されている組込みの監査ルールが、アプリケーションのどの診断要件にも当てはまらない場合は、カスタム監査ルールを記述してJAFを拡張できます。ユーザー定義の監査ルールは、JavaScriptファイルとして実装します。JAF APIを使用すると、イベント・リスナーを登録し、JAFで作成された監査コンテキストをJETプロジェクトのファイル・セットで処理できます。カスタム監査ルールは、配布可能なルール・パックにまとめて、Oracle JETアプリケーションで開発者が呼び出すことができます。
Oracle JETアプリケーションを監査するための一般的なワークフロー
Oracle JET Webおよびハイブリッド・モバイル・アプリケーションの監査のオプションについて理解します。
Oracle JETアプリケーションのソース・ファイルを監査するには、次の表で説明する一般的なワークフローを参照してください。
タスク | 説明 | 詳細情報 |
---|---|---|
Oracle JET Audit Framework (JAF)の初期化と監査ドライランの実行 |
デフォルトの |
Oracle JAFの初期化と監査の実行 |
JAFの構成 | oraclejafconfig.json ファイルを編集して、監査の範囲を必要なファイル・セットやルールの重大度レベルなどに限定します。
|
JET監査フレームワークの構成 |
監査の実行 | 特定のOracle JETバージョンのルール・セットで検出された診断メッセージをレポートします。 | |
監査結果の微調整 | 指定したルールによって表示された診断メッセージ、またはJAFコメント・コマンドを含むコメント・ソース・コードを非表示にして範囲を制限します。 | 監査の微調整 |
監査レポートのカスタマイズ | カスタム・レポートで監査のオプションJSON出力を書式設定します。 | 監査の出力の使用 |
カスタム監査ルールを記述するための一般的なワークフロー
Oracle JAF APIを操作し、様々なユーティリティ・ライブラリを使用してJAFを拡張するユーザー定義のカスタム監査ルールを作成する方法を説明します。
カスタム監査ルールを記述し、JETアプリケーション開発者と共有できるルール・パックとしてJavaScript実装ファイルをまとめるには、次の表で説明する一般的なワークフローを参照してください:
タスク | 説明 | 詳細情報 |
---|---|---|
カスタム・ルールを記述するためのJAFの概念の理解 |
様々なJAF監査コンテキスト・イベントおよび実行時にJAF監査エンジンによって監査ルールに渡されるコンテキスト・オブジェクトでアクセス可能なプロパティについて学習します。 |
JAF監査エンジンについて |
カスタム監査ルールの実装の理解 | コンテキスト・イベントに応答するリスナーを登録して監査コンテキスト・オブジェクトを処理する方法について学習し、コンテキスト・オブジェクトでアクセスできるJAFユーティリティ・ライブラリによって提供されるその他のヘルパー関数について学習します。 |
および |
カスタム・ルールを作成および配布するための要件の理解 | ルールをルール・パックとして配布する前に、カスタム・ルールを実装するJET開発環境を設定します。 | |
JAFで解析されたファイル・データを監査するカスタム・ルールの記述 | HTML、JSON、JavaScript/TypeScriptおよびCSSファイルなどのアプリケーションのターゲット・ファイル・セットについて返されたデータ・ノードの監査方法を示すサンプル・カスタム(ノード)ルールを確認します。 | カスタム・ノード・ルールの実装 |
JAFライフサイクルのフェーズで動作するカスタム・ルールの記述 | 監査の起動時など、JAF監査ライフサイクルの様々なステージで監査を呼び出す方法を示すサンプル・カスタム(フック)ルールを確認します。 | カスタム・フック・ルールの実装 |
Oracle JAFの初期化と監査の実行
JETコマンドライン・インタフェースを使用して作成したOracle JETアプリケーションがある場合は、アプリケーションの監査を自動構成し、コマンド・プロンプト・ウィンドウで監査を実行できます。
JETアプリケーションでコマンド・プロンプトを開き、ルート・ディレクトリでOracle JET Audit Framework (JAF)コマンドを使用して、アプリケーションのデフォルトのJAF構成を初期化します。
ojaf --init
Oracle JAFを初期化するとき、JETツールがデフォルトのJAF構成ファイルoraclejafconfig.json
を準備します。ツールによって、JAF構成ファイルがルート・ディレクトリに作成され、やはりアプリケーションのルート・ディレクトリにあるJETアプリケーションの構成ファイルoraclejetconfig.json
に基づいてデフォルト構成設定が定義されます。
アプリケーションを初めて監査する前に、JAFによって監査されるアプリケーション・ファイルのデフォルト構成を確認できます。このコマンドはドライランと呼ばれます。アプリケーションを監査せずに、現在のJAF構成設定に基づいて監査対象ファイルを確認するためです。
ojaf --dryrun
アプリケーションの監査を実行するには、次のコマンドを入力してJAF監査ユーティリティを呼び出します。
ojaf
監査を実行すると、監査を開始したディレクトリで、Oracle JAFがJAF構成ファイルoraclejafconfig.json
を探します。そこで構成ファイルが見つからない場合、JAFは、現在のディレクトリで見つかったHTMLファイルのみを処理し、監査には常にデフォルトJAF構成ファイルを使用します。
その後のojaf
を呼出しでは、Oracle JET構成ファイル(oraclejetconfig.json
)がojaf
の最後の呼出しの後で変更されたかどうかが確認されます。変更が検出されると(アプリケーションを新しいJETバージョンに移行したときなど)、JAFによってJAF構成ファイル内の特定の設定が自動的に更新されます。JAFがモニターし、JET構成ファイル変更に基づいて更新する構成プロパティ設定は、次のとおりです:
-
jetVerには、監査対象のJETバージョンを指定します。
-
filesには、監査対象の入力ファイル・セットの判別に使用されるファイル・パスまたはURLを指定します。
-
excludeには、監査から除外するファイル・パスを指定します。
-
componentsには、ユーザー定義のカスタムWebコンポーネント・メタデータ(
component.json
)が見つかるフォルダのパスを指定します。これによって、ルールでコンポーネント・メタデータを検査したり、カスタム要素属性を検証したりできるようになります。 -
themeは、Oracleテーマ(
redwood
、alta
、stable
またはnone
)を指定し、テーマに依存するルールに影響します。特に、属性label-edge
には、使用されていない場合、テーマに依存するデフォルト値があります。テーマ・プロパティが指定されていない場合、Redwoodテーマがデフォルトで、stable
はredwood
と同義とみなされます。
oraclejafconfig.json
ファイルを編集してプロパティupdateを次のように設定すると、JAF構成を固定して、自動更新が行われないようにすることもできます。
"ojet": { "update": false, ... }
他のすべての構成プロパティは変更されないままです。ただし、構成ファイルoraclejafconfig.json
をテキスト・エディタで更新し、JAFプロパティを追加または変更して、アプリケーションの監査をカスタマイズすることはできます。構成オプションの詳細は、Oracle JAF構成ファイルのプロパティに関する項を参照してください。
また、次のコマンドを入力して、ojaf
コマンドライン・フラグの完全なリストを取得できます。
ojaf --help
「JET監査フレームワークの構成」および「Oracle JETアプリケーションに対する監査の実行」も参照してください。