Auth0 の Rules を Github リポジトリから自動デプロイする #auth0jp

2019.06.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

渡辺です。 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のみをデプロイしましたが、他の設定項目も同様にデプロイできます。 設定項目がソースコード管理できるのは最高ですね。