ルールの構造に関するベストプラクティス

ルールは基本的に、userオブジェクト、contextオブジェクト、callback関数の3つのパラメーターが渡されるJavaScriptの無名関数です。

function (user, context, callback) {
     // TODO: implement your rule
     return callback(null, user, context);
    }

Was this helpful?

/

関数宣言の末尾にセミコロンを追加しないでください。ルールの実行が中断されます。無名関数は、例外的なエラー条件の結果として生成されたコールスタックの解釈を困難にします。診断分析を容易にするため、簡潔で一意の命名規則を使用してください(例:function MyRule1 (user, context, callback) {...})。詳細については、「エラー処理のベストプラクティス」をお読みください。

ルールは、Auth0エンジン全体の一部を形成する、真正性のアーティファクト生成に関連するパイプラインで実行されます。パイプラインが実行されると、有効なすべてのルールがリストされている順序でパッケージ化され、1つのコードBlobとして送信され、Auth0のサーバーレスWebtaskとして実行されます。Auth0エンジン全体を確認するには、「Auth0エンジンの内側。」をダウンロードしてください。

ルール分析のベストプラクティスルールのパイプライン図

サイズ

有効なすべてのルールの実装では、総サイズが100 KBを上回らないようにすることを推奨します。Auth0のサーバーレスWebtaskプラットフォームでパッケージングと転送が処理されるため、サイズが大きいほど遅延が長くなります。そして、これはシステムの性能にも影響を与えます。100 KBの制限には、requireステートメントの一部として参照された可能性のあるnpmモジュールは含まれません。

Order(順序)

Auth0 Dashboardに表示されるルールの順序によって、ルールが実行される順序が決まります。あるルールが複数の定義を作成し、実行に関連付けられた環境内で別のルールがその定義に依存していることがあるため、この順序は重要です。この場合、定義を作成するルールを、その定義を使用するルールの前に実行する必要があります。詳細については、「ルール環境のベストプラクティス」をお読みください。

API(Auth0 Management APIを含む)を呼び出す、負荷の大きいルールは、できるだけ後で実行します。他に負荷が小さく、unauthorizedアクセスの判断につながる可能性のあるルールがある場合は、そのようなルールを先に実行する必要があります。

もっと詳しく