Skip to main content

AI を使って Auth0 を統合する

Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使えば、agent skills を利用して、わずか数分で Auth0 認証を自動的に追加できます。インストール:
次に、AI アシスタントにこう依頼します:
AI アシスタントが、Auth0 アプリケーションの作成、資格情報の取得、Auth0 ASP.NET Core Authentication SDK のインストール、認証ミドルウェアの設定、ログイン/ログアウト フローの実装まで自動で行います。agent skills の完全なドキュメント →
前提条件: 始める前に、以下がインストールされていることを確認してください。

はじめに

Auth0 を使用すると、アプリケーションにすばやく認証を追加し、ユーザープロファイル情報にアクセスできるようになります。このガイドでは、Auth0.AspNetCore.Authentication SDK を使用して、新規または既存の ASP.NET MVC アプリケーションに Auth0 を統合する方法を説明します。
1

新しいプロジェクトを作成

このQuickstart用の新しいASP.NET Core MVCプロジェクトを作成する
プロジェクトを開く
2

Auth0 SDK をインストール

3

Auth0アプリケーションを設定する

次に、Auth0 テナントで新しいアプリケーションを作成し、プロジェクトに設定を追加します。CLIコマンドを実行してAuth0アプリを自動的に設定する方法と、Auth0 Dashboardから手動で行う方法のいずれかを選択できます:
プロジェクトのルートディレクトリで次のシェルコマンドを実行し、Auth0 アプリケーションを作成して appsettings.json を更新します。
このコマンドは次の処理を行います:
  1. 認証済みかどうかを確認します (必要に応じてログインを求めます)
  2. http://localhost:5000 用に設定された Auth0 Regular Web Application を作成します
  3. appsettings.jsonAuth0:DomainAuth0:ClientIdAuth0:ClientSecret で更新します
コールバックURLの設定:設定タブで、以下のURLを設定します:
  • Allowed Callback URLs: http://localhost:5000/callback
  • Allowed Logout URLs: http://localhost:5000
  • Allowed Web Origins: http://localhost:5000
変更を保存をクリックします
重要: 接続を設定し、Auth0 Dashboard の 接続 タブでお使いのアプリケーションに対して有効にしてください。
4

認証を設定する

Auth0 の認証を設定するには、Program.cs を更新します:
Program.cs
5

ログイン機能とログアウト機能を追加する

Controllers フォルダーに AccountController.cs を作成します。
Controllers/AccountController.cs
6

Create プロファイルビュー

新しいファイル Views/Account/Profile.cshtml を作成します:
Views/Account/Profile.cshtml
注: Views/Account ディレクトリが存在しない場合は、先に作成してください。
7

レイアウトを更新

Login/Logout ボタンを追加するため、レイアウト ファイルを更新します。Views/Shared/_Layout.cshtml<nav> 要素を探し、次の内容に置き換えます:
Views/Shared/_Layout.cshtml
重要: 置き換えるのは <nav> 要素だけにしてください。_Layout.cshtml のそれ以外の部分はすべてそのまま残し、特にページ コンテンツのレンダリングに必要な @RenderBody() 呼び出しは変更しないでください。
8

アプリケーションを実行

アプリケーションが起動し、待ち受けURLが表示されるはずです:
ブラウザーを開いて http://localhost:5000 にアクセスします。ナビゲーションバーの Login リンクをクリックします。Auth0 のログインページにリダイレクトされます。ログインすると、アプリケーションにリダイレクトされ、ナビゲーションバーに自分の名前が表示されます。
チェックポイントこれで、Auth0 で保護された完全に機能する MVC アプリケーションが http://localhost:5000 で動作しているはずです。ユーザーはログインし、プロファイルを表示して、ログアウトできます。

高度な使い方

コントローラーまたはビューの User プロパティから、ユーザープロファイル情報にアクセスできます。
Controllers/AccountController.cs
ユーザーのクレームには、標準的な OIDC 情報が含まれます。
  • Name: ユーザーの表示名
  • Email: ユーザーのメールアドレス
  • Picture: ユーザーのプロフィール画像 URL
  • NameIdentifier (sub): 一意のユーザー ID
Auth0 Login Page にカスタムパラメーターを渡せます。
Controllers/AccountController.cs
ユーザーに代わって外部 API を呼び出す必要がある場合は、トークンを取得して保存できます。
Program.cs
次に、コントローラーで access token を取得します。
Controllers/ApiController.cs
イベントを処理して、認証の動作をカスタマイズできます。
Program.cs

追加リソース

GitHubリポジトリ

ソースコードとIssueトラッカー

APIリファレンス

詳細なAPIドキュメント

コミュニティフォーラム

Auth0 Communityでサポートを受ける

よくある問題

問題: Unable to obtain configuration from: https://your-tenant.auth0.com/.well-known/openid-configuration解決策: Domain が正しく、https:// を含んでいないことを確認してください。authority はライブラリによって自動的に組み立てられます。
また、次の点も確認してください。
  • Domain の値の末尾にスラッシュがない
  • Auth0 に接続できるよう、アプリケーションからインターネットにアクセスできる
  • ドメイン形式がテナントのリージョンと一致している (.auth0.com, .us.auth0.com, .eu.auth0.com)
問題: ArgumentNullException: Value cannot be null. (Parameter 'Domain') または同様のエラー。解決策: appsettings.json に Domain、ClientId、ClientSecret の値を含む Auth0 セクションがあることを確認してください。設定が正しく読み込まれていることも確認してください。
Program.cs
問題: 設定が正しいにもかかわらず、認証が機能しない。解決策: ミドルウェアが正しい順序になっていることを確認してください。UseAuthentication()UseAuthorization() より前に記述する必要があります。
Program.cs

サンプルアプリケーション

SDK のソースコードとあわせて、サンプルアプリケーションも用意されています。

ASP.NET Core MVC Playgroud アプリ

ログイン、ログアウト、ユーザープロファイルなどの例が含まれています。
クローンして実行するには: