AI を使って Auth0 を統合
AI を使って Auth0 を統合
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使えば、Agent Skills を使って数分で Auth0 認証を自動的に追加できます。インストール:続けて、AI アシスタントに次のように依頼します:AI アシスタントが、Auth0 アプリケーションの作成、資格情報の取得、Auth0 OidcClient SDK のインストール、プラットフォーム固有の設定、ログイン/ログアウト フローの実装を自動で行います。Agent Skills の完全なドキュメント →
はじめに
1
.NET の新しいプロジェクトを作成する
この Quickstart 用に、新しい .NET MAUI または .NET Android/iOS プロジェクトを作成します。
- .NET MAUI
- .NET Android
- .NET iOS
Visual Studio 2022 以降の場合:
- ファイル → 新規 → プロジェクト
- .NET MAUI App テンプレートを選択します
- プロジェクトを設定します。
- プロジェクト名:
Auth0MauiSample - 場所: 任意の場所を選択します
- フレームワーク: .NET 8.0 以降
- プロジェクト名:
- Create をクリックします
この Quickstart では、Xamarin.Android と Xamarin.iOS の次世代である .NET Android と .NET iOS を対象としています。現在も Xamarin を使用している場合でも、連携方法は同じで SDK にも互換性があるため、このガイドに沿って進めることができます。
2
Auth0 SDK をインストールする
Auth0 OIDC Client SDK をプロジェクトに追加します。
- Package Manager Console
- Visual Studio for Mac
- .NET CLI
Package Manager Console (View → Other Windows → Package Manager Console) を開き、適切なパッケージをインストールします。.NET Android の場合:.NET iOS の場合:.NET MAUI (両方のプラットフォーム) の場合:
Package Manager Console
Package Manager Console
Package Manager Console
3
Auth0 App を設定する
Auth0 テナントに新しいアプリケーションを作成し、モバイル向けに設定します。置き換える箇所:Allowed Logout URLs:コールバック URL と同じ URL を使用します。
- Auth0 Dashboard に移動します
- Applications → Applications → Create Application をクリックします
- アプリの名前を入力し、アプリケーションタイプとして Native を選択して、Create をクリックします
- アプリケーションの詳細ページで 設定 タブに切り替えます
- Domain と Client ID を控えます。次の手順で使用します
- Android
- iOS
YOUR_ANDROID_PACKAGE_NAMEはアプリのパッケージ名に置き換えます (例:com.mycompany.myapp){yourDomain}は Auth0 のドメインに置き換えます (例:dev-abc123.us.auth0.com)
com.mycompany.myapp://dev-abc123.us.auth0.com/android/com.mycompany.myapp/callbackAllowed Callback URLs はセキュリティ上重要です。これにより、認証後にユーザーを安全にアプリケーションへ戻せます。一致する URL がない場合、ログインプロセスは失敗します。Allowed Logout URLs を設定すると、ユーザーのサインアウト時に Auth0 のページに残すことなく、アプリへリダイレクトできます。
4
Auth0 クライアントを初期化する
Auth0 と通信するために、
Auth0Client インスタンスを作成します。- Android - MainActivity
- iOS - AppDelegate
MainActivity.cs
IntentFilter は、アプリがコールバック URL を処理できるよう登録するためのものです。LaunchMode.SingleTask を指定することで、コールバック時に Android が新しい activity インスタンスを作成しないようにします。5
Implement Login と Logout
ユーザー認証を行うためのメソッドを追加します。Implement Login:Implementのログアウト:
Authentication.cs
Authentication.cs
LoginAsync() メソッドは、Auth0 の Universal Login ページを表示するために、システムブラウザー (Android では Chrome Custom Tabs) を起動します。authentication の完了後、ユーザーは callback URL を介してアプリにリダイレクトされます。6
アプリを実行
アプリケーションをビルドして実行します。想定されるフロー:
- Visual Studio (Windows)
- Visual Studio for Mac
- .NET CLI
Android の場合:
- デバイスのドロップダウンから Android エミュレーターまたは接続済みのデバイスを選択します
- F5 キーを押すか、Run ボタンをクリックします
- アプリがビルド、デプロイされ、起動します
- Mac ビルドホストに接続します
- デバイスのドロップダウンから iOS シミュレーターまたはデバイスを選択します
- F5 キーを押すか、Run ボタンをクリックします
- Login ボタンが表示された状態でアプリが起動します
- Log In をタップ → ブラウザーまたは Chrome Custom Tab が開く → 認証を完了します
- 自動的にアプリにリダイレクトされます
- ユーザーの認証が正常に完了します
チェックポイントこれで、.NET Android または iOS のアプリケーションで、Auth0 login を問題なく利用できるようになりました。アプリケーションは安全な認証のためにシステムブラウザーを使用し、コールバックフローも自動的に処理します。
ユーザー情報にアクセスする
認証結果
LoginAsync() メソッドは、以下を含む LoginResult オブジェクトを返します。
UserInfo.cs
すべてのクレームを確認する
UserClaims.cs
返されるクレームの内容は、リクエストしたスコープによって異なります。詳しくは、Auth0 OIDC Client のドキュメントの スコープの使用 を参照してください。
カスタムスコープをリクエストする
CustomScopes.cs
トラブルシューティングと Advanced
よくある問題と解決策
よくある問題と解決策
ブラウザーからアプリにリダイレクトされない
解決策:- Auth0 Dashboard のコールバック URL が、アプリのパッケージ名またはバンドル識別子と完全に一致していることを確認します
- コールバック URL が 小文字 になっていることを確認します
DataScheme、DataHost、DataPathPrefix(Android) または URL スキーム (iOS) が設定内容と一致していることを確認します- プロジェクトをクリーンし、再ビルドします
”Invalid Callback URL” エラーで認証に失敗する
修正方法:- Auth0 Dashboard のコールバック URL が次の形式と一致していることを再確認します:
- Android:
packagename://yourdomain/android/packagename/callback - iOS:
bundleidentifier://yourdomain/ios/bundleidentifier/callback
- Android:
- URL が小文字になっていることを確認します
- コード内の Domain が Auth0 Dashboard の Domain と一致していることを確認します
LoginAsync() が応答しない、または完了しない
解決策:- Intent filter (Android) または URL スキーム (iOS) が正しく設定されていることを確認します
OnNewIntent()(Android) またはOpenUrl()(iOS) からActivityMediatorが呼び出されていることを確認します- アプリからシステムブラウザーを開けることを確認します
- ネットワーク接続を確認します
エラー: “Default App must use Token Endpoint Authentication Method ‘None’”
修正方法:- Auth0 Dashboard の Auth0 アプリケーションの設定に移動します
- Application Properties までスクロールします
- Application Type を Native に設定します
- Token Endpoint Authentication Method を None に設定します
- 変更を保存 をクリックします
iOS: ブラウザーが開かない
解決策:Info.plistに正しい URL スキーム設定が含まれていることを確認しますOpenUrl()がAppDelegateに実装されていることを確認します- iOS のデプロイ対象が使用中の Auth0 SDK のバージョンと互換性があることを確認します
本番環境での考慮事項
本番環境での考慮事項
セキュリティのベストプラクティス
- 安全なトークン保存: トークンの保存には、プラットフォーム固有の安全なストレージ (Android Keystore、iOS Keychain) を使用します
- トークンの更新: ユーザーセッションを維持するため、リフレッシュトークンの処理を実装します
- 証明書ピンニング: API セキュリティをさらに強化するために、証明書ピンニングを検討します
- ProGuard/コード難読化: Android でコード難読化を使用する場合は、適切なルールを追加します
App Store の要件
- プライバシーポリシー: Auth0 の利用について説明したプライバシーポリシーがアプリにあることを確認します
- ユーザーデータの取り扱い: ユーザーの認証データの取り扱いについて、プラットフォームのガイドラインに従います
- ディープリンク: さまざまなシナリオでコールバック URL の処理を十分にテストします
- ネットワーク要件: オフライン時にも適切に対応できるようにします
パフォーマンスの最適化
- Auth0Client をキャッシュする: インスタンスを 1 つだけ作成し、アプリ全体で再利用します
- 遅延読み込み: 必要になったときにのみ Auth0Client を初期化します
- バックグラウンド更新: 長時間のセッションに備えて、バックグラウンドでのトークン更新を実装します
高度な設定
高度な設定
カスタムスコープと audience
特定のスコープをリクエストし、API の audience を設定します。AdvancedAuth.cs
追加パラメータ
認可リクエストに追加のパラメータを渡します。ExtraParams.cs
リフレッシュトークン
リフレッシュトークンを使用すると、ユーザーの操作なしで新しいアクセストークンを取得できます。RefreshToken.cs
リフレッシュトークンを受け取るには、認証リクエストに
offline_access スコープを含めてください。プラットフォーム固有のブラウザ設定
Android - カスタムカラーで Chrome Custom Tabs を使用する:AndroidBrowser.cs
iOSBrowser.cs
次のステップ
IDプロバイダーを設定する
Google、Facebook、GitHub などのソーシャルログイン用プロバイダーを追加する
多要素認証を有効にする
MFA でセキュリティをさらに強化する
攻撃対策
ブルートフォース攻撃やボット攻撃から保護する方法を学ぶ
ログインエクスペリエンスをカスタマイズする
ブランドに合わせて Universal Login ページをカスタマイズする