はじめに
こんにちは。rendaman0215です。
Auth0では、OpenID Connectの機能を提供するだけでなく、様々な拡張機能を提供しています。
その中でも Actions
Rules
Hooks
の違いがよくわからなかったので、公式のドキュメントと格闘しながら調べてみました。
結論
先に結論から言うと基本的にActions
が他2つの上位互換です。
新規に作成するならActions
を使うとよいでしょう。
HooksやRulesのページを開くと以下のようなメッセージがでることから、公式でもActions
を使うことを推奨しているみたいです。
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