メインコンテンツへスキップ
Rules と Hooks のサポート終了日 (EOL) は 2026 年 11 月 18 日 で、2023 年 10 月 16 日 以降に作成された新規テナントでは、すでに利用できません。アクティブな Hooks を持つ既存のテナントでは、サポート終了日まで Hooks へのアクセスが維持されます。Auth0 を拡張するには、Actions の使用を強く推奨します。Actions では、豊富な型情報、インラインドキュメント、公開 npm パッケージを利用できるほか、外部統合に接続して拡張機能の利用体験全体を向上させることもできます。Actions で提供される機能の詳細については、Understand How Auth0 Actions Work をご覧ください。移行を支援するために、Rules から Actions への移行 および Hooks から Actions への移行 のガイドを用意しています。さらに、機能比較、Actions のデモ、および移行を進めるうえで役立つその他のリソースを紹介した専用の Move to Actions ページもあります。Rules と Hooks の非推奨化について詳しくは、ブログ記事 Preparing for Rules and Hooks End of Life をご覧ください。
Rules と Hooks は 2026 年に削除予定のため、新しい Rules または Hooks を作成するのは Development 環境でのみとし、Actions への移行をテストする目的に限ってください。Rules を Actions に移行する方法については、Migrate from Rules to Actions をご覧ください。Hooks を Actions に移行する方法については、Migrate from Hooks to Actions をご覧ください。
特定の機能要件に対応するために、独自の Rule を作成できます。既存の Rule テンプレートを編集することも、サンプルのいずれかを使って一から作成することもできます。Auth0 には、目的の達成に役立つ既存の Rules と Rule テンプレートが多数用意されています。一覧については、GitHub 上の rules リポジトリ をご覧ください。

Rules の仕組み

Rules は、ユーザーがアプリケーションに対して認証を行う際に実行される JavaScript 関数です。認証プロセスが完了すると実行され、Auth0 の機能をカスタマイズおよび拡張するために使用できます。セキュリティ上の理由から、Rules のコードはサンドボックス内で、他の Auth0 テナントのコードから分離して実行されます。Rules は、トークン更新フロー中にも実行されます。詳細については、リフレッシュトークン を参照してください。 Auth0 で Rules を使用する場合、認証トランザクションのフローは次のようになります。
認証フローにおける Rules の図
  1. アプリが Auth0 に認証リクエストを送信します。
  2. Auth0 は、設定された接続を通じてリクエストをIDプロバイダーにルーティングします。
  3. ユーザーの認証が正常に完了します。
  4. IDトークンおよび/またはアクセストークンは Rules パイプラインを通過した後、アプリケーションに送信されます。

前提条件

Rule でグローバル変数を使用する場合は、先に Rules の変数を設定してください。詳細については、Rules のグローバル変数を設定するを参照してください。

Dashboard を使用する

  1. Dashboard > Auth Pipeline > Rules に移動し、Create をクリックします。
    Dashboard - Auth Pipeline - Rules
  2. Rule テンプレートを選択します。
    Dashboard - Auth Pipeline - Rules - Template
  3. Rule に名前を付け、必要に応じてスクリプトを編集し、Save changes をクリックします。
    Dashboard - Auth Pipeline - Rules - Edit Rule

Management API を使用する

Create Rule endpointPOST リクエストを送信します。MGMT_API_ACCESS_TOKENRULE_NAMERULE_SCRIPTRULE_ORDERRULE_ENABLED のプレースホルダー値は、それぞれ実際の 、Rule 名、Rule スクリプト、Rule の順序番号、および Rule の有効化設定に置き換えてください。
説明
MGMT_API_ACCESS_TOKENスコープ create:rules を持つ Management API のアクセストークン。
RULE_NAME作成する Rule の名前。Rule の名前に使用できるのは英数字、スペース、ハイフンのみで、先頭または末尾にスペースやハイフンを付けることはできません。
RULE_SCRIPTRule の code を含むスクリプト。Dashboard で新しい Rule を作成する場合に入力する内容と一致している必要があります。
RULE_ORDER (optional)他の Rules との関係における、その Rule の実行順序を表す整数。数値が小さい Rules ほど先に実行されます。順序番号が指定されていない場合、その Rule は最後に実行されます。
RULE_ENABLED (optional)その Rule が有効 (true) か無効 (false) かを表すブール値。
公開エンドポイント (例: travel0.us.auth0.com) では IPv6 アドレスを使用しています。IPv6 をサポートするマシンからリクエストが送信されると、context.request.ip プロパティには IPv6 アドレスが含まれます。IP アドレスを手動で処理する場合は、ipaddr.js@1.9.0 ライブラリ を使用することをお勧めします。

レート制限を管理する

Auth0 API を呼び出す Rule では、X-RateLimit-Remaining ヘッダーを確認し、返された値が 0 に近づいた場合に適切に対応して、常にレート制限を処理する必要があります。また、設定されたレート制限を超過して HTTP ステータスコード 429 (Too Many Requests) を受け取った場合に備えたロジックも追加する必要があります。この場合、再試行が必要であれば、無限再試行ループを避けるためにバックオフを設けることをおすすめします。レート制限の詳細については、Auth0 API のレート制限ポリシー を参照してください。

利用可能なモジュール

Rules は、特定の Node.js バージョン向けに構成された JavaScript サンドボックス内で実行されます。 このサンドボックスは、構成された Node.js バージョンでサポートされる JavaScript のすべてのバージョン (および関連する構文) と、多数の Node.js モジュールをサポートしています。サポートされているサンドボックスモジュールの一覧については、Can I require: Auth0 Extensibility を参照してください。

詳しく見る