RulesとHooksのサポート終了(EOL)日は2026年11月18日 であり、2023年10月16 日の時点で作成された新しいテナントは使用できなくなります。Hooksが有効な既存のテナントは、サポート終了までHooksを利用できます。今後はActionsに移行して、Auth0の機能を拡張することを強くお勧めします。Actionsを使用すると、豊富な情報やインラインドキュメント、パブリック
npm
パッケージにアクセスして、外部統合を使って全体的な拡張エクスペリエンスを強化することができます。Actionsの詳細については、「Auth0 Actionsの仕組みを理解する」をお読みください。当社では、移行の参考資料として、RulesからActionsへの移行とHooksからActionsへの移行に関するガイドを提供しています。また、専用の「Actionsへの移行」ページでは、機能の比較やActionsのデモ、その他のリソースを掲載して、円滑な移行をサポートしています。RulesとHooksの廃止の詳細については、当社のブログ記事「RulesとHooksの提供終了について」をお読みください。RulesとHooksの機能は2026年にサポートの終了を予定しているため、新しいルールやフックは、アクションへの移行をテストするためだけに、開発環境内で作成してください。RulesからActionsへの移行方法については、「RulesからActionsに移行する」をお読みください。HooksからActionsへの移行方法については、「HooksからActionsに移行する」をお読みください。
ルールの仕組み
ルールは、ユーザーがアプリケーションに対して認証するときに実行されるJavaScript関数です。認証プロセスが完了すると実行され、Auth0の機能をカスタマイズしたり拡張したりするために活用できます。セキュリティ上の理由により、ルールのコードは、サンドボックス内の他のAuth0テナントのコードとは分離して実行されます。ルールは、トークンのリフレッシュフロー時にも実行されます。詳細については、「リフレッシュトークン」をお読みください。 ルールを使用する場合、Auth0の認証トランザクションフローは以下の流れで行われます。
- アプリがAuth0への認証要求を開始します。
- Auth0が、構成されている接続を介して、要求をIDプロバイダーにルーティングします。
- ユーザーが正常に認証されます。
- IDトークンおよび/またはアクセストークンがルールパイプラインを介して渡され、アプリケーションに送られます。
前提条件
ルールにグローバル変数を使用する予定がある場合は、必ず先にルール変数を構成してください。詳細については、「ルールのグローバル変数を構成する」をお読みください。Dashboardの使用
-
[Dashboard]>[Auth Pipeline(Authパイプライン)]>[Rules(ルール)]に移動して、[Create(作成)] をクリックします。
-
ルールテンプレートを選択します。
-
ルールに名前を付けて、必要に応じてスクリプトを編集し、[Save changes(変更の保存)] をクリックします。
Management APIの使用
ルール作成エンドポイントにPOST
呼び出しを行います。MGMT_API_ACCESS_TOKEN
、RULE_NAME
、RULE_SCRIPT
、RULE_ORDER
、およびRULE_ENABLED
のプレースホルダーの値をそれぞれ、実際ののアクセストークン、ルール名、ルールスクリプト、ルールの順序、ルールの有効化の値に置き換えてください。
値 | 説明 |
---|---|
MGMT_API_ACCESS_TOKEN | create:rules スコープを持つManagement APIのアクセストークン。 |
RULE_NAME | 作成するルールの名前。ルール名は、英数字、スペース、ハイフンのみを含むことができます。スペースまたはハイフンで始めるまたは終わることはできません。 |
RULE_SCRIPT | ルールのコードを含むスクリプト。Dashboardを使用して新しいルールを作成する場合は、その入力内容と一致する必要があります。 |
RULE_ORDER (任意) | 他のルールとの関係でルールが実行される順番を示す整数。より小さい番号のルールは、大きな番号のルールより先に実行されます。順番の番号が提供されなかった場合、ルールは最後に実行されます。 |
RULE_ENABLED (任意) | ルールが有効(true )か無効(false )かを示すブール値。 |
IPv6アドレスはパブリックエンドポイントで公開しています(例:
travel0.us.auth0.com
)。IPv6をサポートするマシンから要求が届いた場合、context.request.ip
プロパティにIPv6アドレスが含まれます。手動でIPアドレスを操作する場合は、ipaddr.js@1.9.0 libraryの使用をお勧めします。レート制限を管理する
Auth0 APIを呼び出すルールの場合は、X-RateLimit-Remaining
ヘッダーを確認し、返された数値が0に近づいたときに適切に対応することで、常にレート制限に対処する必要があります。また、指定されたレート制限を超えてHTTPステータスコード429(Too Many Requests)を受信した場合に対処するためのロジックも追加する必要があります。この際、再試行が必要な場合は、再試行の無限ループに陥らないためにバックオフを許可するのが最善策です。レート制限の詳細については、「Auth0 APIのレート制限ポリシー」をお読みください。