LoginSignup
6
4

More than 3 years have passed since last update.

Auth0 Deploy CLIを使ってテナント情報をディプロイしてみた

Posted at

はじめに

この記事はAuth0 Deploy CLIを使ってローカルのPCで作成したAuth0のテナント情報をリモートの本番テナントにディプロイする手順をまとめています。

検証環境

  • OS : macOS Mojave 10.14.6
  • node : 10.15.3
  • npm : 6.12.0

検証内容

Auth0のダッシュボードにログイン、左ペインの"Applications"をクリックして右上の"CREATE APPLICATION"を押します。

"Name"に任意の名前を入力して"Choose an application type"で"Machine to Machine Applications"を選択、"CREATE"を推します。

"Select an API..."で"Auth0 Management API"を選択して"Select all: All"をクリックして全てのScopeをチェック、"AUTHORIZE"を押します。Deploy CLIはAuth0 Management APIをコールするため設定しています。本番環境では用途に合わせてScopeを限定しますがこの記事は検証目的のため全てのScopeをチェックしています。

Auth0 Deploy CLIをPCにインストールします。

$ npm i -g auth0-deploy-cli

任意の作業ディレクトリを作成して移動します。

$ mkdir auth0-deploy-cli-demo
$ cd auth0-deploy-cli-demo

config.jsonを作成して編集します。"AUTH0_CLIENT_ID", "AUTH0_CLIENT_SECRET"には先のステップで作成したMachine to Machine ApplicationのID/Secretを指定します。"Applications"->"Settings"から確認できます。

$ touch config.json
auth0-deploy-cli-demo/config.json
{
  "AUTH0_DOMAIN": "kiriko.auth0.com",
  "AUTH0_CLIENT_ID": "xxxx",
  "AUTH0_CLIENT_SECRET": "xxxx",
  "AUTH0_ALLOW_DELETE": true
}

Auth0のテナント情報(ex/設定、Custom Script, Rules)をPCにエクスポートします。

$ a0deploy export -c config.json -f yaml -o ./tenant

auth0-deploy-cli-demo/tenant/tenant.yamlにテナント情報が出力されています。確認してみます。

auth0-deploy-cli-demo/tenant/tenant.yaml
emailProvider:
  name: smtp
  credentials:
    smtp_host: smtp.mailtrap.io
    smtp_port: 2525
    smtp_user: xxxx
    smtp_pass: YOUR_SMTP_PASS
  default_from_address: Travel0 Accounts <accounts@travel0.net>
  enabled: true
rules:
  - name: Account-Linking-Extension
    script: ./rules/Account-Linking-Extension.js
    stage: login_success
    enabled: false
    order: 120
--省略--

ローカルPCにエクスポートされた任意のRulesを変更してみます。auth0-deploy-cli-demo/tenant/rules配下の任意のJSを変更してみます。

ローカルPCの変更内容をリモートのテナントにインポートします。

$ a0deploy import -c config.json -i ./tenant/tenant.yaml

Auth0のテナントを確認してローカルPCの変更が反映されていれば成功です。

おわりに

"全ての企業がソフトウェア企業"と言っていいほどソフトウェアの重要性は増すばかりで、新しいソフトウェア機能を迅速に市場に投入するためにはDevOpsのような文化醸成、CI/CDツールを利用した自動的・継続的なソフトウェアデリバリーは不可欠かと思います。CI/CDツールが管理するソフトウェアデリバリーパイプラインに乗せるには、デリバリー対象が人が読めるコードになっていることが前提ですが、"as Code"化されてきたインフラストラクチャに比べてID領域のコード化はこれからかと思います。Auth0はID領域をコード化して、お客様がご利用されているCI/CDツールと連携してソフトウェアデリバリーパイプラインに簡単に組み込むことが可能です。

6
4
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
6
4