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