はじめに
この記事は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_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にテナント情報が出力されています。確認してみます。
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ツールと連携してソフトウェアデリバリーパイプラインに簡単に組み込むことが可能です。