AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使えば、agent skills を使って数分で Auth0 認証を自動的に追加できます。インストール:次に、AI アシスタントに次のように依頼します:AI アシスタントは、Auth0 アプリケーションの作成、資格情報の取得、Auth0 Android SDK 依存関係の追加、manifest placeholders の設定、ログイン/ログアウト フローの実装を自動的に行います。agent skills の完全なドキュメント →
はじめる
1
新しい 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 をクリックします
2
GradleでAuth0 SDKを追加
Gradle を使って、Auth0 Android SDK をプロジェクトに追加します。アプリレベルの アプリレベルの
build.gradle.kts ファイルを更新します。app/build.gradle.kts
build.gradle.ktsにmanifest placeholdersを追加します。app/build.gradle.kts
AndroidManifest.xml にインターネット権限を追加する:app/src/main/AndroidManifest.xml
3
Auth0 App を設定する
次に、Auth0 テナントで新しいアプリを作成し、その設定を Android プロジェクトに追加します。まず、許可されたログアウト URL:
app/src/main/res/values/strings.xml ファイルにプレースホルダーの値を用意します。app/src/main/res/values/strings.xml
- Auth0 Dashboardに移動します
- アプリケーション > アプリケーション > アプリケーションを作成 をクリックします
- ポップアップでアプリ名を入力し、アプリの種類として
Nativeを選択して Create をクリックします - アプリケーションの詳細ページで 設定 タブに切り替えます
strings.xmlファイル内の{yourDomain}とYOUR_AUTH0_CLIENT_IDを、ダッシュボードの Domain と Client ID の値に置き換えます
{yourDomain} を実際の Auth0 ドメイン (例: dev-abc123.us.auth0.com) に置き換えてください。Allowed Callback URLs は、認証後にユーザーを安全にアプリケーションへ戻すための重要なセキュリティ対策です。一致する URL がない場合、ログインプロセスは失敗し、ユーザーはアプリにアクセスできず、代わりに Auth0 のエラーページが表示されます。Allowed Logout URLs は、サインアウト時にシームレスなユーザー体験を提供するうえで不可欠です。一致する URL がない場合、ログアウト後にユーザーはアプリケーションへリダイレクトされず、代わりに汎用的な Auth0 ページに留まることになります。URL スキームには、コールバックが対象のアプリに確実にルーティングされるよう、パッケージ名 (
com.auth0.samples.android) が含まれています。4
Auth0 SDK の初期化
Auth0 と通信するため、Activity 内で Auth0 インスタンスを作成します。
MainActivity.kt では次のようにします。MainActivity.kt
5
ログインとログアウトを実装する
ログインを実装: WebAuthProvider を使用して Universal Login ページを起動します。次のメソッドを Logout を実装: WebAuthProvider を使用してユーザーのセッションをクリアします。
MainActivity に追加します。- Kotlin コールバック
- コルーチン
MainActivity.kt
- Kotlin コールバック
- コルーチン
MainActivity.kt
login() メソッドと logout() メソッドは、UI 上のそれぞれのボタンをユーザーがタップしたときに呼び出してください。このコードでは、コンテキスト引数として this (Activity を参照) を使用しています。これは、WebAuthProvider が Chrome Custom Tabs を起動し、認証フローを処理するために必要です。6
アプリを実行する
Android アプリをビルドして実行します。Android Studio で:想定されるフロー:
- アプリが起動し、「Log In」ボタンと盾のアイコンが表示される
- 「Log In」をタップ → Chrome Custom Tab が開く → ログインを完了
- 自動的にアプリに戻る
- 成功!!
チェックポイントこれで、Android デバイスまたはエミュレーターで、完全に機能する Auth0 login を利用できるようになっているはずです。このアプリは、安全な認証のために 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の値が正しいことを確認します- Domain の形式に誤りがないことを確認します (
https://は含めないでください)
dependencies に関連するビルドエラー
修正方法: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 スキームよりも安全です。カスタム URL スキームは クライアントのなりすまし攻撃 の対象になる可能性があります。署名証明書のフィンガープリントを取得する
アプリの署名証明書の SHA256 フィンガープリントが必要です。ターミナルで次のコマンドを実行してください:Auth0 Dashboard で設定する
- Auth0 Dashboard > Applications > Applications に移動し、対象のアプリケーションを選択します
- 設定 ページの一番下までスクロールし、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 にアクセスして確認します:この Quickstart では、manifest placeholders と
WebAuthProvider 呼び出しですでに https をスキームとして使用しており、これは App Links に必要です。上記の手順に従っていれば、コードを変更する必要はありません。カスタム URL スキームを使用する
カスタム URL スキームを使用する
Android App Links を使用できない場合 (たとえば、対象の Android API バージョンが 23 未満の場合) は、代わりにカスタム URL スキームを設定できます。
app/build.gradle.ktsのauth0Schemeマニフェスト プレースホルダーを更新します。
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 の利用を検討する
- 機密性の高い操作では生体認証を有効にする