AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って、数分で Auth0 認証を自動的に追加できます。インストール:次に、AI アシスタントに次のように依頼します。AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、Auth0 Android SDK 依存関係の追加、manifest プレースホルダーの設定、ログイン/ログアウトフローの実装を自動で行います。agent skills の完全なドキュメント →
はじめに
新しい Android プロジェクトを作成する
このクイックスタート用に、新しい Android プロジェクトを作成します。Android Studio で:
- File → New → New Project
- Phone and Tablet → Empty Activity テンプレートを選択します
- 次のようにプロジェクトを設定します。
- Name:
Auth0-Android-Sample - Package name:
com.auth0.samples.android - Language: Kotlin
- Minimum SDK: API 24 (Android 7.0)
- Build configuration language: Kotlin DSL
- Name:
- Finish をクリックします
Gradle で Auth0 SDK を追加する
Gradle を使用して、Auth0 Android SDK をプロジェクトに追加します。アプリ レベルの アプリレベルの
build.gradle.kts ファイルを更新します。app/build.gradle.kts
build.gradle.ktsにマニフェスト プレースホルダーを追加します。app/build.gradle.kts
AndroidManifest.xml にインターネットのアクセス許可を追加します。app/src/main/AndroidManifest.xml
Auth0アプリを設定する
次に、Auth0テナントで新しいアプリを作成し、その設定をAndroidプロジェクトに追加します。まず、許可済みのログアウト URL:
app/src/main/res/values/strings.xml ファイルにプレースホルダー値を設定します。app/src/main/res/values/strings.xml
- Auth0 Dashboardに移動します
- Applications > Applications > Create Application をクリックします
- ポップアップでアプリの名前を入力し、アプリの種類として
Nativeを選択して Create をクリックします - Application Details ページで Settings タブに切り替えます
strings.xmlファイル内の{yourDomain}とYOUR_AUTH0_CLIENT_IDを、ダッシュボードの Domain と クライアントID の値に置き換えます
{yourDomain} を実際の Auth0 ドメイン (例: dev-abc123.us.auth0.com) に置き換えてください。Allowed Callback URLs は、認証後にユーザーを安全にアプリケーションへ戻すための重要なセキュリティ対策です。一致する URL がない場合、ログイン処理は失敗し、ユーザーはアプリにアクセスできず、代わりに Auth0 のエラーページが表示されます。Allowed Logout URLs は、サインアウト時にシームレスなユーザー体験を提供するうえで重要です。一致する URL がない場合、ログアウト後にユーザーはアプリケーションへリダイレクトされず、代わりに汎用的な Auth0 ページに遷移します。URL スキームには、コールバックが対象のアプリにルーティングされるよう、パッケージ名 (
com.auth0.samples.android) が含まれています。ログインとログアウトの実装
ログインを実装する: WebAuthProvider を使用して Universal Login ページを起動します。次のメソッドを ログアウトを実装する: WebAuthProvider を使用してユーザーのセッションをクリアします。
MainActivity に追加します。- Kotlin コールバック
- コルーチン
MainActivity.kt
- Kotlin コールバック
- コルーチン
MainActivity.kt
login() メソッドと logout() メソッドは、UI 内の対応するボタンをユーザーがタップしたときに呼び出してください。このコードでは、コンテキストパラメーターとして this (Activity を参照) を使用しています。これは、WebAuthProvider が Chrome Custom Tabs を起動し、認証フローを処理するために必要です。チェックポイントこれで、Android デバイスまたはエミュレーター上で、Auth0 のログイン機能が完全に動作するようになっているはずです。アプリは安全な認証のために Chrome Custom Tabs を使用し、認証情報を自動的に保存します。
トラブルシューティングと高度な設定
よくある問題と解決策
よくある問題と解決策
Chrome Custom Tab からアプリにリダイレクトされない
解決策:- Auth0 Dashboard の Allowed Callback URLs が
applicationIdと完全に一致していることを確認します build.gradle.ktsの manifest placeholders が正しく設定されていることを確認します- HTTPS とカスタムスキーム URL の両方が設定されていることを確認します
- クリーンして再ビルドします: Build → Clean Project → Rebuild Project
アプリがクラッシュする: ‘Auth0 domain not found’
修正方法:com_auth0_domainとcom_auth0_client_idの値が正しいことを確認します- ドメインの形式にタイプミスがないことを確認します (
https://は含めないでください)
依存関係に関するビルドエラー
修正方法:build.gradle(プロジェクトレベル) で Android Gradle Plugin を最新バージョンに更新します- プロジェクトを同期します: File → Sync Project with Gradle Files
- ビルドをクリーンします:
./gradlew clean build
ユーザーによって認証がキャンセルされた
エラーコールバックで適切に処理してください:互換性のあるブラウザーがないというエラー
- デバイスまたはエミュレーターに Chrome または別のモダンブラウザーをインストールします
- より良いユーザー体験のために Chrome Custom Tabs を有効にします
- Chrome がインストールされた実機でテストします
Android App Links を設定する
Android App Links を設定する
Android App Links を使用すると、Auth0 コールバック URL のデフォルトハンドラーとしてアプリを指定できるため、より安全でシームレスな認証体験を実現できます。App Links を使用しない場合、Android によって、アプリとブラウザーのどちらを使用するかをユーザーに選ばせるダイアログが表示されることがあります。出力から SHA256 フィンガープリントの値をコピーします。パッケージ名と証明書のフィンガープリントを含む JSON レスポンスが表示されるはずです:詳細については、Enable Android App Links Support のドキュメントと、Android の Verify App Links ガイドを参照してください。
App Links では、検証済みの
https スキームのコールバックを使用します。これは、クライアントなりすまし攻撃 を受ける可能性があるカスタム URL スキームよりも安全です。署名証明書のフィンガープリントを取得する
アプリの署名証明書の SHA256 フィンガープリントが必要です。ターミナルで次のコマンドを実行します:Auth0 Dashboard で設定する
- Auth0 Dashboard > Applications > Applications に移動し、アプリケーションを選択します
- Settings ページの一番下までスクロールして、Show Advanced Settings を選択します
- Device Settings タブを選択します
- Android で次の情報を入力します:
- App Package Name:
applicationId(例:com.auth0.samples.android) - SHA256 Cert Fingerprints: 上でコピーしたフィンガープリント
- App Package Name:
- Save Changes をクリックします
設定を確認する
Auth0 は、Android がアプリを検証するために使用するassetlinks.json ファイルを自動的に生成します。次の URL にアクセスして確認してください:このクイックスタートでは、manifest placeholders と
WebAuthProvider 呼び出しですでに https をスキームとして使用しており、これは App Links に必要です。上記の手順に従っていれば、コードを変更する必要はありません。カスタム URL スキームを使用する
カスタム URL スキームを使用する
Android App Links を使用できない場合 (たとえば、対象の Android API バージョンが 23 未満の場合) は、代わりにカスタム URL スキームを設定できます。
app/build.gradle.ktsでauth0Schemeの manifest プレースホルダーを更新します。
app/build.gradle.kts
- Auth0 Dashboard のアプリケーション設定で、Allowed Callback URLs と Allowed Logout URLs を更新し、カスタムスキームを使用するようにします。
WebAuthProviderを呼び出すときにカスタムスキームを渡します。
MainActivity.kt
カスタムスキームには小文字のみ使用できます。
本番環境へのデプロイ
本番環境へのデプロイ
App Store の準備
- シームレスな認証のために Android App Links を設定する
- 複数の Android バージョンと画面サイズでテストする
- ネットワーク障害に備えて適切なエラーハンドリングを実装する
- コード難読化を使用している場合は、Auth0 SDK 用の ProGuard ルールを追加する
- 認証フローに関する Google Play Store のポリシーに従う
セキュリティに関する考慮事項
- 本番環境での認証情報の保存には
SecureCredentialsManagerを使用する - API セキュリティをさらに強化するために証明書ピンニングを実装する
- 認証情報の保護を強化するために Android Keystore の使用を検討する
- 機密性の高い操作では生体認証を有効にする