Skip to main content

AI を使って Auth0 を統合する

Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って数分で Auth0 の認証を自動的に追加できます。インストール:
次に、AI アシスタントに次のように依頼します。
AI アシスタントは、Auth0 アプリケーションの作成、資格情報の取得、Auth0 OidcClient SDK のインストール、コールバックURL の設定、ログイン/ログアウト フローの実装を自動的に行います。agent skills の完全なドキュメント →
前提条件: 開始する前に、次のものを用意してください。.NET バージョンの互換性: この Quickstart は .NET 8.0.NET 9.0、および .NET Framework 4.6.2 に対応しています。

はじめに

このクイックスタートでは、WPF または WinForms のデスクトップアプリケーションに Auth0 の authentication を追加する方法を紹介します。Auth0 を設定し、SDK をインストールして、WPF および WinForms 用の Auth0 OIDC Client を使用し、ログイン、ログアウト、ユーザープロファイルの表示を追加します。
1

アプリケーションを作成する

すでに WPF または WinForms のプロジェクトがある場合は、次のステップに進んでください。
新しいプロジェクトを作成し、そのディレクトリを開きます。
2

Auth0 を設定する

Auth0 のサービスを利用するには、Auth0 Dashboard でアプリケーションを設定しておく必要があります。Auth0 アプリケーションでは、プロジェクトで認証をどのように行うかを設定します。

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

Auth0 DashboardApplicationsApplications に移動し、新しいアプリケーションを作成します。
  1. Create Application をクリックします
  2. アプリケーションの名前を入力します
  3. アプリケーションの種類として Native を選択します
  4. Create をクリックします
Settings タブで、DomainClient ID を控えておきます。SDK を初期化する際に必要になります。

Callback URL を設定する

callback URL は、ユーザーの認証後に Auth0 がリダイレクトする、アプリケーション内の URL です。これが設定されていないと、ユーザーはログイン後にアプリケーションへ戻れません。Application Settings で、次の内容を Allowed Callback URLs に追加します。

ログアウト URL を設定する

ログアウト URL とは、ユーザーのログアウト後に Auth0 がリダイレクトするアプリケーション内の URL のことです。これが設定されていないと、ユーザーはアプリケーションからログアウトできず、エラーが表示されます。Application Settings で、Allowed Logout URLs に次を追加します。
3

Auth0 SDK をインストールする

Auth0 では、WPF 用と WinForms 用にそれぞれ別の NuGet パッケージを提供しています。プロジェクトの種類に合ったものをインストールしてください。
Package Manager Console (Tools → NuGet Package Manager → Package Manager Console) を開き、次を実行します。
4

Auth0Client を作成する

Auth0 をアプリケーションに統合するには、Auth0 の DomainClient ID を指定して Auth0Client をインスタンス化します。プライベート フィールドを追加し、メイン ウィンドウまたはフォームの既存のコンストラクター内で初期化します。
MainWindow.xaml.cs を開き、次のように更新します。
MainWindow.xaml.cs
5

アプリケーションにログイン機能を追加する

ユーザーをログインさせるには、SDK の LoginAsync() メソッドを使用します。このメソッドを呼び出すと、Auth0 Universal Login ページを表示するポップアップウィンドウが開きます。認証に成功すると、Auth0 はコールバック URL にリダイレクトし、SDK は LoginResult を返します。まず、UI にログインボタンを追加します。
MainWindow.xaml を開き、<Grid> 内に Button を追加します。
MainWindow.xaml
次に、MainWindow.xaml.cs にクリック ハンドラーを追加します。
MainWindow.xaml.cs
エラーがなければ、結果の LoginResult.UserLoginResult.IdentityTokenLoginResult.AccessTokenLoginResult.RefreshToken にアクセスできます。
6

アプリケーションにlogoutを追加する

ユーザーをログアウトするには、SDK の LogoutAsync() メソッドを使用します。これによりポップアップウィンドウが開き、セッションをクリアするために Auth0 の logout エンドポイントへリダイレクトされた後、設定したログアウト URL に戻ります。まず、UI にログアウトボタンを追加します。
MainWindow.xaml を開き、ログインボタンの横にログアウト用の Button を追加します。
MainWindow.xaml
次に、MainWindow.xaml.cs にクリック ハンドラーを追加します。
MainWindow.xaml.cs
7

ユーザープロファイル情報を表示する

LoginResult.User プロパティは、認証されたユーザーのプロファイルを含む ClaimsPrincipal です。claim を参照して、アプリケーションにユーザー情報を表示します。
ID トークンに含まれるすべてのクレームを確認するには:
チェックポイントこれで、Auth0 を統合した WPF または WinForms アプリケーションが正しく動作するはずです。アプリケーションを実行し、次の点を確認してください。
  • ログインボタンをクリックすると、Auth0 Universal Login ページがポップアップウィンドウで開くこと。
  • ログインまたはサインアップできること。
  • 認証後に、LoginResult.User からユーザー情報にアクセスできること。
  • ログアウトボタンをクリックすると、セッションがクリアされ、ログアウト URL にリダイレクトされること。

高度な使い方

トークンやユーザーのプロパティにアクセスする前に、LoginResult.IsError を確認してください。認証に失敗した場合は、Error プロパティと ErrorDescription プロパティに詳細が含まれます。
ユーザーが認証を完了せずにログイン用のポップアップを閉じた場合、LoginAsync()BrowserResultType.UserCancel を含む結果を返します。これは想定された動作であり、エラーとして扱わないでください。
ユーザーに再度ログインしてもらうことなく新しいアクセストークンを取得するには、最初の LoginResult で取得したリフレッシュトークンを使って RefreshTokenAsync() を呼び出します。
リフレッシュトークンを使用するには offline_access スコープが必要です。また、Auth0 の Application SettingsRefresh Token Rotation を有効にしておく必要があります。

追加リソース

SDK リポジトリ

Auth0 OIDC Client for .NET のソースコード、リリースノート、Issue トラッカー

ユーザープロファイル

ユーザープロファイルのクレームと /userinfo エンドポイントについて確認できます

コミュニティフォーラム

Auth0 コミュニティでサポートを受ける

よくある問題

問題: WebView2 のポップアップウィンドウが開いてログインページは表示されますが、credentials を入力しても何も起こりません。解決策: Microsoft Edge WebView2 Runtime がマシンにインストールされていません。Microsoft WebView2 download page からインストールしてください。WebView2 は Windows 11 と新しい Windows 10 ビルドには同梱されていますが、古いシステムでは別途インストールが必要です。
問題: ログイン後、Auth0 から callback URL mismatch エラーが返されます。解決策: SDK が使用する Redirect URI が、Auth0 Dashboard の Allowed Callback URLs に設定されているどの値とも一致していません。Application Settings の Allowed Callback URLs に https://{yourDomain}/mobile を追加してください。SDK はデフォルトでこの URL を使用します。
問題: ログアウト後、Auth0 から認識されない ログアウト URL に関するエラーが返されます。解決策: Application Settings の Allowed Logout URLshttps://{yourDomain}/mobile を追加してください。
問題: LoginResult.IsErrortrue になっていますが、原因がはっきり分かりません。解決策: 詳細は LoginResult.ErrorLoginResult.ErrorDescription を確認してください。
よくある原因:
  • Auth0 Dashboard でアプリケーション種別が Native に設定されていない
  • Advanced Settings → OAuth で OIDC Conformant が有効になっていない
  • JSON Web Token Signature AlgorithmRS256 に設定されていない
問題: LoginResult.RefreshTokennull です。解決策: リフレッシュトークンを受け取るには offline_access スコープ が必要です。これを Scope オプションに追加してください。
また、Auth0 Dashboard の Application Settings で Refresh Token Rotation が有効になっていることも確認してください。