[Auth0] アプリケーション名を変更したらログインが出来なくなったので対処した話

2021.06.21

こんにちは、CX事業本部の若槻です。

今回は、認証管理プラットフォームAuth0で、アプリケーション名を変更したらログインが出来なくなったので対処した話です。

Auth0アプリの"アプリケーション名"

Auth0では認証を行いたいWebアプリやM2Mアプリごとにアプリケーションを作成して管理を行いますが、このアプリケーションは任意の名前を指定することができ、また作成後に変更することも可能です。

このアプリケーション名はログイン画面などユーザーが使用するコンソール上でも表示されるため、適切で分かりやすい名前を付けることが望ましいです。

アプリケーション名を変更したらアプリにログインできなくなった

さてWeb App -> ウェブアプリのようにアプリケーション名を変更する機会がありました。

しかしアプリケーション名の変更後、WebアプリのURLにアクセスしてもログイン画面が開けなくなり、ログインができなくなってしまいました。

直接原因、解決

Auth0のイベントログを見ると、Failed LoginおよびUnknown client: <Client ID>というログが記録されていました。

どうやらアプリケーション名を変更したことにより、アプリケーションのClient IDが変わってしまっていたようです。よってWebアプリのフロントエンドのコード内で指定しているClient IDを新しい値に差し替えました。

するとログイン画面を開くことができるようになり、表示されているアプリケーション名も変更後のものに変わりました。

根本原因

実は今回のアプリケーション名を変えるとClient IDまで変わってしまう事象は、管理ダッシュボードから変更を行った場合は発生しません。

ではどういう場合に発生するかと言うと、Auth0 Deploy CLIを使用して変更を行った場合に発生するようです。Auth0 Deploy CLIは、Auth0のテナント設定をテンプレート化してCI/CDを構築できるツールです。

そのテンプレートの中でアプリケーションの名前などの情報を定義を記述するのですが、Auth0 Deploy CLIにおいてはアプリケーション名が識別子となっているらしく、下記のようにWeb App -> ウェブアプリと書き換えると既存アプリケーションの更新ではなく、新規アプリケーションの作成が行われてしまうようです。よってClient IDも変わってしまいます。

tenant.yaml

-  - name: Web App
+  - name: ウェブアプリ
     allowed_clients: ##WEB_APP_ALLOWED_CLIENTS##
     allowed_logout_urls: ##WEB_APP_ALLOWED_URLS##
     app_type: spa

回避方法

以下の手順を踏めば、Client IDを変更せずにテンプレートで管理しているアプリケーションの名前を変更することが可能です。

  1. 管理ダッシュボードから対象のアプリケーションの名前を変更する
  2. テンプレートの記載で対象のアプリケーションの名前を変更し、デプロイする

おわりに

Auth0で、アプリケーション名を変更したらログインが出来なくなったので対処した話でした。

アプリケーション名を変更するオペレーションを行う機会はあまり無いと思いますが、Client IDが意図せず変更されてしまうとリカバリがいろいろ面倒なので、覚えておいて損は無いと思います。

以上