0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Auth0】Actions vs Rules vs Hooks

Last updated at Posted at 2022-12-02

はじめに

こんにちは。rendaman0215です。

Auth0では、OpenID Connectの機能を提供するだけでなく、様々な拡張機能を提供しています。
その中でも Actions Rules Hooks の違いがよくわからなかったので、公式のドキュメントと格闘しながら調べてみました。

結論

先に結論から言うと基本的にActionsが他2つの上位互換です。
新規に作成するならActionsを使うとよいでしょう。
HooksやRulesのページを開くと以下のようなメッセージがでることから、公式でもActionsを使うことを推奨しているみたいです。
スクリーンショット 2022-11-03 19.36.19.png

Rules

Rulesは、認証時に動作するAuth0の処理を任意のJavaScriptコードで拡張する機能です。
なお追加したRulesは、認証処理の最後に処理されます。

テンプレート

Ruleを新規作成すると、はじめに豊富なテンプレート一覧から選ぶことができます。
選んだテンプレートに応じてJavaScriptが最初から書かれています。
Actionsにはテンプレートがないため、これはRulesの明確なメリットですね。

設定

  • どの認証でどのルールをオンにするか
  • どうの順序で処理するか
  • 環境変数の定義

まとめ

  • テンプレートが豊富なため初めて拡張機能を使うときは使いやすい
  • トリガーが認証時のみのため取り回しがきかない
  • 認証毎にどのルールをオンにするか選べるのが良い
  • 1つのトリガーに、複数のイベントを付与可能

Hooks

Hooksは、クライアント認証情報交換時 パスワード変更時 ユーザ登録前 ユーザ登録後 SMS送信時 に任意のJavaScriptコードで拡張する機能です。
各タイミングごとに複数のHookを登録できますが、有効化できるのは同時にひとつまでです。

設定

  • 各タイミング毎にどのHookを有効化するか

まとめ

  • テンプレートがないため始めづらい
  • 全認証で共通なので細かい設定が難しい
  • トリガーが6つあるため、使いやすい
  • 複数のトリガーには、1つのイベントのみ付与可能

Actions

Actionsは、ログイン後 クライアント認証情報交換時 パスワード変更時 ユーザ登録前 ユーザ登録後 SMS送信時 に任意のTypeScriptコードで拡張する機能です。

設定

どのトリガーに対して、どういった順序でなにを実行するか

まとめ

  • トリガーが7つあるため使いやすい
  • ライブラリから各社が提供するインテグレーションをinstallできる
  • テンプレートがないので、Rulesのテンプレートからコピってくるとやりやすい
  • 全認証で共通なので細かい設定が難しい
  • 複数のトリガーに、複数のイベントを付与可能

結論

3つの機能を比較した結果、トリガーの種類が最も多く、順序なども細かく設定でき、ライブラリも豊富なActionsが一番便利そうだなと感じました。
公式でもActionsの利用を推奨しているため、基本的にはActionsに寄せるのがよさそうですね。
ただし、認証毎にオンオフを選べる点でRulesが優っていたりするので、他の機能もいいユースケースはあるかもしれないです。

参考記事

https://auth0.com/jp/extensibility
https://auth0.com/docs/customize/actions
https://auth0.com/docs/customize/rules

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?