
Auth0 Deploy CLI Toolでのテナント設定移行方法(export/import)
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
概要
Auth0を使用する際、複数のテナントの作成やテナント設定のバックアップなど、テナント設定のコピーペースト作業にはDeploy CLI Toolが公式的に推奨され、よく使われます。
Deploy CLI Toolは非常に便利なので、このツールでAuth0のテナント設定コピー(export)とペースト(import)の手順を紹介したいと思います。
環境準備
このブログに使った端末は M1 / MacOS Monterey 12.1。
Deploy CLI Toolのインストールには、事前nodejsとnpmのインストールが必要です。
コマンドツールで(こちらはTerminal)で下記のコマンドでDeploy CLI Toolがインストールされます。
npm i -g auth0-deploy-cli
テナント設定 export
CLIツール用アプリの作成



export元のテナントのダッシュボードに入って、新しいcliツール用のApplicationを作ります:
- Application名は
auth0-deploy-cli-extension - Application Typeは
Machine to Machine
Createを押してから、Authorize Machine to Machine ApplicationページにAuth0 Management APIのAllで、全ての権限をAuthorizeでこのアプリに付与します。
export用config.json設定ファイルの作成



既にAuth0をログインして、export元を選択した場合は、Configure the Deploy CLI Tool このリンクにconfig.jsonのテンプレートができてます。 そのテンプレートで好きなパスにconfig.jsonファイルを作成してもらって、さっき作ったauth0-deploy-cli-extensionアプリのClient Secretをコピーし、YOUR_CLIENT_SECRETに書き換えます。
CLIツールでexportの実行
コマンドツール(Terminal)で用意したconfig.jsonのパスに入ります。
そのパスに下記のコマンド実行します(exportされるYAMLファイルが同じパス保存する)
a0deploy export --config_file config.json --format yaml --output_folder ./
logはこういう感じ:
2022-02-26T10:28:12.269Z - info: Loading Auth0 Tenant Data 2022-02-26T10:28:12.270Z - info: Retrieving rules data from Auth0 2022-02-26T10:28:12.597Z - info: Retrieving rulesConfigs data from Auth0 2022-02-26T10:28:13.268Z - info: Retrieving hooks data from Auth0 guardianFactorProviders 2022-02-26T10:28:36.734Z - info: Exporting guardianFactorTemplates // ...省略 2022-02-26T10:28:36.735Z - info: Exporting organizations 2022-02-26T10:28:36.735Z - info: Exporting triggers 2022-02-26T10:28:36.740Z - info: Writing tenant.yaml 2022-02-26T10:28:36.742Z - info: Export Successful
これでtenant.yamlが出来ます。

テナント設定 import
CLIツール用アプリの作成



import先のテナントのダッシュボードに入って、新しいcliツール用のApplicationを作ります(手順は同じ):
- Application名は
auth0-deploy-cli-extension - Application Typeは
Machine to Machine
Createを押してから、Authorize Machine to Machine ApplicationページにAuth0 Management APIのAllで、全ての権限をAuthorizeでこのアプリに付与します。
import用config-import.jsonの作成
import用configファイルはexport用のと違います。
{
"AUTH0_DOMAIN": "<YOUR_TENANT>.auth0.com",
"AUTH0_CLIENT_ID": "<client_id>",
"AUTH0_CLIENT_SECRET": "<client_secret>",
"AUTH0_KEYWORD_REPLACE_MAPPINGS": {
"AUTH0_TENANT_NAME": "<NAME>",
"ENV": "DEV"
},
"AUTH0_ALLOW_DELETE": false,
"AUTH0_EXCLUDED_RULES": [
"rule-1-name",
"rule-2-name"
],
"INCLUDED_PROPS": {
"clients": [ "client_secret" ]
},
"EXCLUDED_PROPS": {
"connections": [ "options.client_secret" ]
}
}
このテンプレートにimport先のauth0-deploy-cli-extensionアプリ情報を入力します。必要な項目は:
AUTH0_DOMAINAUTH0_CLIENT_IDAUTH0_CLIENT_SECRETAUTH0_TENANT_NAME
ファイル名をconfig-import.jsonにし、さっき生成されたtenant.yamlと同じパスに保存します。
CLIツールでimportの実行
コマンドツール(Terminal)で用意したconfig-import.jsonとtenant.yamlのパスに入ります。
そのパスに下記のコマンド実行します。
a0deploy import --config_file config-import.json --input_file tenant.yaml
logはこういう感じ:
2022-02-26T12:52:45.764Z - info: Getting access token for 5W6tEpYGirhk9ECCbPH26cyWeWqkBEYL/tenant-b-to-import.jp.auth0.com
2022-02-26T12:52:47.721Z - info: Created [clients]: {"name":"app-to-export","client_id":"0Q4g0cotgYvqMmHu3M4a2a1A8QkNSs3N"}
2022-02-26T12:52:47.856Z - info: Updated [clients]: {"name":"Default App","client_id":"nBfLd8XHChMWke0GYTiRV9cNLePGfPjN"}
2022-02-26T12:52:48.026Z - info: Updated [guardianFactors]: {"name":"email"}
2022-02-26T12:52:48.028Z - info: Updated [guardianFactors]: {"name":"push-notification"}
2022-02-26T12:52:48.029Z - info: Updated [guardianFactors]: {"name":"webauthn-roaming"}
2022-02-26T12:52:48.036Z - info: Updated [guardianFactors]: {"name":"sms"}
2022-02-26T12:52:48.037Z - info: Updated [guardianFactors]: {"name":"webauthn-platform"}
//...省略
2022-02-26T12:53:01.663Z - info: Updated [migrations]: {"issue_opaque_access_tokens":true}
2022-02-26T12:53:01.664Z - info: Import Successful
info: Import Successfulが表示されたら設定移行が無事に終わります。
注意点
auth0-deploy-cliツールはよくバージョンアップされるので、最新版を使ってください。-
最初
exportは基本的に問題ないですが、importの場合は一部項目がエラーが出るかもしれません。(例えばlogo_urlが設定されない場合、フォーマットエラーが出る)
その時は、エラーの項目をtenant.yamlに消せばエラーがなくなり、手動で消した項目はimport完了後またダッシュボードで設定できます。 -
一部の設定項目はこの方法で(
Auth0 Management API+auth0-deploy-cli)移行できません。具体の項目はAuth0 Deploy CLI Githubに確認してください。
以上です。






