Auth0 の Rules を Github リポジトリから自動デプロイする #auth0jp
渡辺です。 RulesはAuth0での認証処理でフックできるJavaScript関数で、サインアップ時のウェブフックや、ユーザのRole設定などで活用できます。
Rulesのスクリプトは、ダッシュボードから編集することができます。 しかし、リポジトリでソースコード管理しないと不安なので、Extentionsを使ったデプロイ設定について紹介します。
リポジトリの作成とRulesスクリプトの準備
Githubにリポジトリを作成したならば、Rulesスクリプトを作成します。
この時、複数のAuth0テナントを管理するならば、テナント名などでベースディレクトリを切りましょう。
ベースディレクトリの配下に rules
ディレクトリを作成してください。
スクリプトファイル名は、そのままRulesの名称になります。
例えば、 hello-world.js
とした場合、 hello-world
Ruleがデプロイされます。
rules/hello-world.js
function (user, context, callback) { callback(null, user, context); }
次にRulesの適用順番などを定義するコンフィグファイルを作成します。
スクリプトファイル名の拡張子を json
に変えてください。
rules/hello-world.json
{ "enabled": true, "order": 1, "stage": "login_success" }
Github Deployments Extentions
Auth0には様々な拡張機能があり、Extentionsとして追加することができます。 Extentionsメニューから、Github連携を行う Github Deployments を追加しましょう。
必要な設定項目は、リポジトリ名(REPOSITORY)、ブランチ名(BRANCH)、アクセストークン(TOKEN)、ベースディレクトリ(BASE_DIR)の4個所です。 アクセストークンはGithubからrepoを許可して作成してください。
続けて、Github Deploymentsを起動します。
GithubリポジトリWebhookの作成
先述のWebhook Settingsの情報をコピーし、GithubでWebhookを作成します。
それぞれの項目をコピペすればOKです。
デプロイの確認
Github Deployments のDeploymentsタブでデプロイ状況を確認出来ます。
Auth0のRulesでもデプロイを確認出来ました!
まとめ
今回はGithubを使いましたが、Bitbucket と GitlabもExtentionsが用意されているので、同様にデプロイできるようです。 また、今回はRulesのみをデプロイしましたが、他の設定項目も同様にデプロイできます。 設定項目がソースコード管理できるのは最高ですね。