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)の初期化と監査ドライランの実行

デフォルトのoraclejafconfig.jsonファイルを作成し、監査対象ファイルを確認するためにドライラン・レポートを実行します。

Oracle JAFの初期化と監査の実行
JAFの構成 oraclejafconfig.jsonファイルを編集して、監査の範囲を必要なファイル・セットやルールの重大度レベルなどに限定します。 JET監査フレームワークの構成
監査の実行 特定のOracle 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 JET Audit Frameworkのインストール

npmを使用して、Oracle JET Audit Framework (JAF)をインストールします。

  • Oracle JETのインストールと同様に、Oracle JAFのインストールでは前提条件としてNode.jsのインストールが必要です。詳細は、「Node.jsのインストール」を参照してください。
  • コマンド・プロンプトで、Windowsでは管理者として、またはMacintoshおよびLinuxシステムではsudoを使用して次のコマンドを入力します。
    [sudo] npm install -g @oracle/oraclejet-audit

    インストールが成功したことがはっきりわからない場合があります。インストールが成功したことを確認するには、ojaf -vを入力します。Oracle JAFバージョンが表示されない場合は、インストール・コマンドの出力をスクロールして、失敗の原因を探します。

    • Node.jsのバージョンが古いというエラーが表示された場合は、推奨バージョンをダウンロードしてインストールします。

    • ネットワーク障害に関連するエラーを受信した場合は、必要に応じてプロキシを正しく設定したことを確認してください。

    • npmのバージョンが古いというエラーを受信した場合は、次を入力してバージョンを更新してください: [sudo] npm install -g npm

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テーマ(redwoodaltastableまたはnone)を指定し、テーマに依存するルールに影響します。特に、属性label-edgeには、使用されていない場合、テーマに依存するデフォルト値があります。テーマ・プロパティが指定されていない場合、Redwoodテーマがデフォルトで、stableredwoodと同義とみなされます。

oraclejafconfig.jsonファイルを編集してプロパティupdateを次のように設定すると、JAF構成を固定して、自動更新が行われないようにすることもできます。

"ojet": {
           "update": false,
           ...
        }

他のすべての構成プロパティは変更されないままです。ただし、構成ファイルoraclejafconfig.jsonをテキスト・エディタで更新し、JAFプロパティを追加または変更して、アプリケーションの監査をカスタマイズすることはできます。構成オプションの詳細は、Oracle JAF構成ファイルのプロパティに関する項を参照してください。

また、次のコマンドを入力して、ojafコマンドライン・フラグの完全なリストを取得できます。

ojaf --help

「JET監査フレームワークの構成」および「Oracle JETアプリケーションに対する監査の実行」も参照してください。