はじめてのAuth0

IDaaS である Auth0 を使ってみたメモ。

テナント

Auth0 はテナントという概念がある。

すべては Auth0 テナントから始まります。ここで、Auth0 の使用方法を構成し、アプリケーションや接続、ユーザープロファイルなどの Auth0 アセットを定義・管理・保存します。

https://auth0.com/docs/ja-jp/get-started/auth0-overview/create-tenants

テナントでアプリケーションやルール・ユーザーなどを分離しているらしい。認証空間的なものっぽい。たぶん Entra ID のテナントの概念と同じ気がする。

認証 URL はおよそ以下のようになる。

{tenant}.{region}.auth0.com/...

ちなみに Auth0 自身も login[.]auth0[.]com とかではなく、ちゃんとテナント配下になっていた。いいね

Auth0のログイン画面

ドメイン

Free Plan でもカスタムドメインを利用できる。(クレカの登録がいるが課金しないなら Revolut でよさそう)

カスタムドメインを使うことで、{tenant}.{region}.auth0.comをまるっと自分のドメインで使えるようにできる。

そして{custom-domain}/.well-known/openid-configurationにアクセスすると Issuer やエンドポイントもちゃんとカスタムドメインのものに置き換わっている。

テナントの設定 -> カスタムドメインから設定できる。 利用したいドメインを聞かれるので適当に追加すると CNAME 用のドメインが発行されるので管理している DNS レコードに追加してよしなにすると設定が終わる。

検証ボタンで動的に反映できるのが良い

アプリケーション

作成すると OAuth2 Client と Secret が吐かれるので、あとはよしなにすれば自前のアプリに組み込める。

詳細設定で Authroization Code や Implicit など選択できる。 Client の認証方法もシークレットから JWT、mTLS まで選べる。便利

IdP として Auth0 を使うが、認証に使うサービスはいろいろ選べる(Google, Apple, LINE, Twitch, … めっちゃある)、デフォルトで Google を使える

が、これは Auth0 の開発キーを使っているため本番には使うなとの記載がされていた。

自前で発行して Auth0 にコピペする必要がある

おわり

正直 Google で クライアント発行する際に GCP の UI がごちゃついていて慣れないので、とりあえずお試しで認証に使う分なら Auth0 でよさそう。アプリケーション側で複数の SP に対応するのがしんどいところを上手く吸収していて良