Auth0 の活用

| 2025-07-14

実際の Web サイトにて会員向け情報提供などを展開するにあたって、ログイン認証の仕組みを組み合わせてサイトを運用していくことがあります。ここでは、Auth0 の利用方法に関して紹介をしていきます。

Auth0 とは?

Auth0は、認証および認可のプロセスを簡素化するためのクラウドベースのサービスです。開発者がアプリケーションにシングルサインオン(SSO)、多要素認証(MFA)、ソーシャルログインなどの認証機能を迅速に統合できるように設計されています。Auth0 を使用することで、セキュリティを強化し、ユーザーエクスペリエンスを向上させることができます。

Auth0 の主な特徴は以下の通りです。

Auth0 を利用することで、開発者は認証機能の実装にかかる時間と労力を削減し、アプリケーションのコア機能に集中することができます。

無料プランについて

Auth0 の無料プランが用意されています。この無料プランは 2024年9月24日に利用枠が拡大されました。

無料プランで利用できる範囲は以下の通りです。テストやデモという用途であれば、十分利用できる形となっています。

FeatureFree
MAUs25,000
Social ConnectionsUnlimited
Okta ConnectionsUnlimited
Organizations5
Actions + Forms3
PasswordlessOK
Custom DomainOK

今回はこの無料プランの申し込みをして、デモなどで使えるようにアカウントを作成していきます。

申し込みをする

アカウントを作成するにあたっては、Auth0 のサイトの価格を紹介するページにて、無料プランを申し込むことができる Start building for free というボタンがあります。

上記のボタンをクリックすると、Sign-up の画面に切り替わります。

Image

メールアドレスを入力すると、パスワードの設定画面が表示されます。

Image

パスワードを設定すると、利用タイプに関して確認が入ります。

Image

設定に関しての確認項目が表示されます。

I need advanced settings
We’ve assigned your data region to the United States and given you a tenant name. Check this box If you need to process your data in a different region to comply with privacy laws.

アメリカ以外で使いたい場合は、チェックをして変更する必要があります。今回は特に何もせずにそのまま進みます。

Image

無事、Web サイトからはアカウントが作成されてログインをすることができました。

なお、ログイン用のメールアドレスに対して、メールアドレス認証のための URL が届いています。これを完了させることで、アカウント作成が完了となります。

Image

アプリケーションの作成

Auth0 の認証を利用する Web サイトを用意するにあたって、まず最初に Auth0 側でアプリケーションを作成する必要があります。ログインをしたあと、以下の画面で進めていきます。

Image
Image
Image
Image
Image

これで Next.js で利用する環境変数が準備できたことになります。下記の項目のうち Basic Information と記載しているものは、Auth0 の管理画面から取得できます。

サンプルの環境変数は以下のような形となります。

text

なお、 AUTH0_SECRET に関して管理画面から取得する形ではなく、ユニークなキーを生成すれば良いため、以下のコマンドを実行指定生成してください。

sh

Next.js への実装

Auth0 を利用するフレームワークとして、この文書では Next.js を利用していきます。Next.js に関しては Pages Router および App Router と2つのパターンの実装を選択できますが、ここでは App Router のみを取り上げます。

前提条件

今回は、以下のバージョンで作業を進めていきます。

Auth0 SDK Client の作成

@auth0/nextjs-auth0 のパッケージを利用できるように更新をしていきます。

sh
text
src/lib/auth0.js
src/middleware.ts

上記の実装により、以下のような連携が可能になります。

ログインの追加

Next.js のページの中にログインをするためのリンクを追加します。なお、Next.js の Link タグは利用せずに、かならず A タグで記述してください。

今回は Layout.tsx の Body の直下に以下の行を追加しました。

src/app/layout.tsx

上記の変更後、Next.js を起動すると、ページの上部に Login のリンクが追加されています。

Image

クリックをするとログインの画面が表示されます。

Image

今回はあらかじめ利用できるアカウントを用意していました。ログインを実行すると以下のような核に画面が表示されます。

Image

許可を実行すると、ログインができるようになりました。

ログアウトの実装

続いてログアウトの実装をします。上記で紹介をしたコードを以下のように書き換えます。

src/app/layout.tsx

変更後、起動すると上記のようにログインとログアウトリンクが並んでいます。

Image

上記の画面はリンクの表示を固定しているためログインの実行、ログアウトの実行が画面上ではわかりにくくなっていますが、Auth0 の管理画面にてログを見ると正しくログイン、ログアウトが実行できていることを確認できました。

Image

ユーザープロフィールの表示

ログインをしているユーザー情報を取得するして画面に反映させる方法としては、クライアントコンポーネントおよびサーバーコンポーネントと両方を選択可能です。ここではクライアントコンポーネントを実装します。

まずプロフィールを表示するコンポーネントを作成します。App Router になるため Use client を設定する必要があります。

src/components/Profile.tsx

このコンポーネントをページに組み込みます。トップページに今回は以下のように埋め込みました。

src/app/page.tsx

実装後、ログインをするとデータを取得してプロフィールを表示することができました。

Image

サーバーコンポーネントのサンプルは以下の通りです。

サインアップを有効にする

サイトで利用可能なアカウントを登録することができるように、サインアップの機能を追加します。手順は以下の通りです。

Auth0 の管理画面から Branding - Universal Login を選択、設定画面の Advanced Options にて、Universal Login が有効になっていることを確認します。

Image

Auth0 の管理画面から Authentication- Database を選択、利用しているデータベースの設定で、Disable Sign Ups がオフになっていることを確認します。

最後に Sign up のリンクですが、以下のように login にパラメータを適用して実装します。

src/app/layout.tsx

クリックをすると、サインアップの画面になっています。もちろん、ログイン画面にも切り替えるリンクも含まれています。

Image

カスタムドメインについて

最近無料プランとして開放されたカスタムドメインの設定手順を確認します。この設定は、Settings のページの Custom Domain のタブを開くと設定ができます。

Image
Image
Image
Image
Image

Custom Domain を設定すると、環境変数などで使うドメインをカスタムドメインとして使うことができるようになります。

今回のサンプル

今回のサンプルに関しては、以下のリポジトリでそのままコードを公開しています。

参考情報