AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使えば、agent skills を利用して、数分で Auth0 認証を自動的に追加できます。インストール:次に、AI アシスタントに次のように依頼します:AI アシスタントが、Auth0 アプリケーションの作成、資格情報の取得、Auth0 OidcClient MAUI SDK のインストール、コールバック URL の設定、Login/ログアウト フローの実装を自動的に行います。agent skills の完全なドキュメント →
Auth0.OidcClient.MAUI バージョン 1.x を使用します。
環境を確認します。
はじめに
1
Auth0アプリケーションの設定
MAUI アプリに必要な資格情報を取得できるよう、Auth0 アプリケーションを設定します。許可されたログアウト後のURL:変更を保存 を選択します。
- Auth0 Dashboard > アプリケーション > アプリケーション に移動します
- Create Application を選択します
- アプリの名前 (例: “My MAUI App”) を入力し、アプリケーションの種類として Native を選択して、Create をクリックします
- Application Details ページの Settings タブに移動します
- Domain と Client ID の値を控えます。これらは後で必要になります
myapp://callback) を使用します。Allowed Callback URLs:Auth0 にネイティブアプリケーションがあり、Domain と Client ID を控えていて、コールバックURL とログアウトURL が設定されていることを確認してください。
2
MAUI プロジェクトを作成する
すでに .NET MAUI プロジェクトがある場合は、手順 3 に進んでください。まだない場合は、.NET CLI を使用して作成します。
3
Auth0 MAUI SDKのインストール
プロジェクトに
Auth0.OidcClient.MAUI NuGet パッケージを追加します:dotnet restore を実行し、パッケージが正常にインストールされたことを確認します。4
プラットフォームごとのコールバック処理を設定する
.NET MAUIアプリでは、認証後にシステムブラウザーからアプリへリダイレクトできるよう、各プラットフォームでコールバック ハンドラーを登録する必要があります。対象の各プラットフォームについて、以下の手順に従ってください。
- Android
- Windows
- iOS / macOS
Platforms/Android/WebAuthenticatorActivity.cs に新しいファイルを作成します。Platforms/Android/WebAuthenticatorActivity.cs
myapp を、ステップ 1 で設定した URI スキームに置き換えます。CALLBACK_SCHEME の値は、RedirectUri のスキームおよび Auth0 の Allowed Callback URLs と完全に一致している必要があります。5
ログインとログアウトを追加
3 つのファイルを作成または変更する必要があります。ログイン/ログアウト ロジックを含む ViewModel、UI 用の XAML ページ、そしてそれらを連携させるコードビハインド ファイルです。
- MainPageViewModel.cs
- MainPage.xaml
- MainPage.xaml.cs
ViewModels/MainPageViewModel.cs に ViewModel を作成します。ViewModels/MainPageViewModel.cs
これでプロジェクトには、ログイン コマンドとログアウト コマンドを持つ ViewModel、データ バインドされた XAML ページ、それらを連携させるコードビハインドがそろいました。
6
サービスを登録し、Auth0 クライアントを初期化する
次に、
MauiProgram.cs で Auth0Client、ViewModel、ページを依存関係注入に登録します。これで各要素が連携され、Auth0クライアントが ViewModel に、ViewModel がページに注入されます。MauiProgram.cs
{yourDomain} と {yourClientId} は、Auth0アプリケーションの設定値 (ステップ 1) に置き換えてください。
MAUI アプリでは、RedirectUri と PostLogoutRedirectUri は 必須 です。Auth0 Dashboard で入力したものと同じコールバックURLを使用してください。7
アプリを実行する
.NET MAUI アプリケーションをビルドして実行する想定される流れ:
- アプリが起動し、Log In ボタンが表示される
- Log In をタップすると → システムブラウザーで Auth0 Universal Login が開く
- 認証を完了する (サインアップまたはログイン)
- ブラウザーからアプリにリダイレクトされる
- アプリに名前とメールアドレスが表示され、Log Out ボタンも表示される
これで、.NET MAUIアプリケーションでAuth0によるログイン機能を問題なく利用できるようになりました。
トラブルシューティング
コールバック URL の不一致
コールバック URL の不一致
症状: ブラウザに「Callback URL mismatch. The provided redirect_uri is not in the list of allowed callback URLs.」と表示されます。修正方法:
- コード内の Client ID が、Auth0 Dashboard で設定したアプリケーションのものと一致していることを確認します
- Allowed Callback URLs フィールドをクリアし、
myapp://callbackを手動で再入力します。コピー&ペーストすると、末尾に見えない空白や改行が入ることがあります - 完全に一致していることを確認します。末尾のスラッシュなし、英小文字のみ、空白なしです
- Auth0 Dashboard で Save Changes を選択し、値が正しく保存されていることを確認します
- ブラウザのアドレスバーで
redirect_uriクエリパラメータを確認し、アプリケーションが実際に何を送信しているかを確認します
Android: アプリがブラウザから戻らない
Android: アプリがブラウザから戻らない
症状: login のためにブラウザは開きますが、アプリにリダイレクトされません。修正方法:
WebAuthenticatorActivity.csのDataSchemeがRedirectUriのスキームと一致していることを確認します- Activity に
Exported = trueが設定されていることを確認します - Auth0 Dashboard の Allowed Callback URLs が完全に一致していることを確認します
Windows: login が止まったように見える
Windows: login が止まったように見える
症状: ブラウザは開きますが、元のアプリに戻る代わりに 2 つ目のアプリ インスタンスが起動します。修正方法:
Platforms/Windows/App.xaml.cs の App コンストラクターで、Auth0.OidcClient.Platforms.Windows.Activator.Default.CheckRedirectionActivation() が 最初の 1 行目 で呼び出されていること、および Package.appxmanifest のプロトコル名がコールバック URI スキームと一致していることを確認してください。Windows: プロトコル アクティブ化が機能しない
Windows: プロトコル アクティブ化が機能しない
症状: login 後、ブラウザにエラーが表示されるか何も起こらず、アプリがコールバックを受け取りません。修正方法: アプリは パッケージ化された (MSIX) アプリケーションである必要があります。
.csproj ファイルに <WindowsPackageType> 要素があるか確認してください。Noneに設定されている場合、プロトコル アクティブ化は利用できません。その行を削除するか、<WindowsPackageType>MSIX</WindowsPackageType>に変更してください。- 要素が存在しない場合、アプリは既定で既にパッケージ化されています。
Package.appxmanifestに Step 4 の<uap:Protocol>拡張が含まれていることを確認してください。
ユーザープロファイルにクレームがない
ユーザープロファイルにクレームがない
症状:
name、email、または picture クレームが loginResult.User に含まれていません。修正方法: openid profile email が Auth0ClientOptions.Scope に含まれていることを確認します。スコープをカスタマイズしている場合は、openid が常に含まれていることを確認してください。次のステップ
リフレッシュトークン
リフレッシュトークン
保護された API を呼び出す
保護された API を呼び出す
API 用にスコープされたアクセストークンを取得するには、
Scope を設定し、audience パラメーターを LoginAsync() に渡します。Organizations (B2B/enterprise)
Organizations (B2B/enterprise)
再認証を強制する
再認証を強制する
指定した時間が経過した後に再認証を強制するには、
MaxAge を使用します。Universal Login をカスタマイズする
Universal Login をカスタマイズする
色、ロゴ、テキストなどを含めて、Auth0 のログインページをブランドに合わせて調整できます。詳しくは、Universal Login をカスタマイズする を参照してください。
追加リソース
SDK リポジトリ
ソースコード、サンプル、API リファレンス
Token Best Practices
トークンのセキュリティに関するベストプラクティス
PKCE フロー
ネイティブアプリが安全に認証を行う方法
コミュニティフォーラム
Auth0 コミュニティからサポートを受ける