メインコンテンツへスキップ

AI を使って Auth0 を統合する

Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って、数分で Auth0 認証を自動的に追加できます。インストール:
次に、AI アシスタントに次のように依頼します。
AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、Auth0 Android SDK 依存関係の追加、manifest プレースホルダーの設定、ログイン/ログアウトフローの実装を自動で行います。agent skills の完全なドキュメント →

はじめに

1

新しい Android プロジェクトを作成する

このクイックスタート用に、新しい Android プロジェクトを作成します。Android Studio で:
  1. FileNewNew Project
  2. Phone and TabletEmpty Activity テンプレートを選択します
  3. 次のようにプロジェクトを設定します。
    • Name: Auth0-Android-Sample
    • Package name: com.auth0.samples.android
    • Language: Kotlin
    • Minimum SDK: API 24 (Android 7.0)
    • Build configuration language: Kotlin DSL
  4. Finish をクリックします
これにより、現在の Android 開発のベストプラクティスに沿った、Kotlin と Gradle Kotlin DSL を使用するモダンな Android アプリが作成されます。
2

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 SDK は依存関係を自動的に解決し、トークンを安全に保存する機能を備えています。
3

Auth0アプリを設定する

次に、Auth0テナントで新しいアプリを作成し、その設定をAndroidプロジェクトに追加します。まず、app/src/main/res/values/strings.xml ファイルにプレースホルダー値を設定します。
app/src/main/res/values/strings.xml
  1. Auth0 Dashboardに移動します
  2. Applications > Applications > Create Application をクリックします
  3. ポップアップでアプリの名前を入力し、アプリの種類として Native を選択して Create をクリックします
  4. Application Details ページで Settings タブに切り替えます
  5. strings.xml ファイル内の {yourDomain}YOUR_AUTH0_CLIENT_ID を、ダッシュボードの DomainクライアントID の値に置き換えます
最後に、Application Details ページの Settings タブで、次の URL を設定します。Allowed Callback URLs:
許可済みのログアウト URL:
{yourDomain} を実際の Auth0 ドメイン (例: dev-abc123.us.auth0.com) に置き換えてください。
Allowed Callback URLs は、認証後にユーザーを安全にアプリケーションへ戻すための重要なセキュリティ対策です。一致する URL がない場合、ログイン処理は失敗し、ユーザーはアプリにアクセスできず、代わりに Auth0 のエラーページが表示されます。Allowed Logout URLs は、サインアウト時にシームレスなユーザー体験を提供するうえで重要です。一致する URL がない場合、ログアウト後にユーザーはアプリケーションへリダイレクトされず、代わりに汎用的な Auth0 ページに遷移します。URL スキームには、コールバックが対象のアプリにルーティングされるよう、パッケージ名 (com.auth0.samples.android) が含まれています。
重要: コールバック URL 内のパッケージ名が、build.gradle.ktsapplicationId と一致していることを確認してください。認証に失敗する場合は、これらの値が同一かどうかを確認してください。
https スキーム (上記で設定) を使用する場合は、コールバック URL がブラウザーではなくアプリに直接ルーティングされるよう、Android App Links を設定する必要があります。詳細は、以下の Troubleshooting & Advanced にある Configure Android App Links セクションを参照してください。
4

Auth0 SDKを初期化する

Activity で Auth0 と通信するための Auth0 インスタンスを作成します。MainActivity.kt で:
MainActivity.kt
Auth0 インスタンスは、前の手順で設定した strings.xml ファイル内のクライアントIDとドメインを使用して初期化されます。このインスタンスは、以降のすべての認証処理で使用されます。
5

ログインとログアウトの実装

ログインを実装する: WebAuthProvider を使用して Universal Login ページを起動します。次のメソッドを MainActivity に追加します。
MainActivity.kt
ログアウトを実装する: WebAuthProvider を使用してユーザーのセッションをクリアします。
MainActivity.kt
login() メソッドと logout() メソッドは、UI 内の対応するボタンをユーザーがタップしたときに呼び出してください。このコードでは、コンテキストパラメーターとして this (Activity を参照) を使用しています。これは、WebAuthProvider が Chrome Custom Tabs を起動し、認証フローを処理するために必要です。
6

アプリを実行

Android アプリをビルドして実行します。Android Studio で:
想定されるフロー:
  1. アプリが「ログイン」ボタンとシールドアイコン付きで起動する
  2. 「ログイン」をタップ → Chrome Custom Tab が開く → ログインを完了
  3. 自動的にアプリに戻る
  4. 成功!!
Android では、複数のブラウザーがインストールされている場合、ブラウザーの選択ダイアログが表示されます。Auth0 の認証では、Chrome Custom Tabs を使用することで最適なユーザー体験が得られます。
チェックポイントこれで、Android デバイスまたはエミュレーター上で、Auth0 のログイン機能が完全に動作するようになっているはずです。アプリは安全な認証のために Chrome Custom Tabs を使用し、認証情報を自動的に保存します。

トラブルシューティングと高度な設定

Chrome Custom Tab からアプリにリダイレクトされない

解決策:
  1. Auth0 Dashboard の Allowed Callback URLsapplicationId と完全に一致していることを確認します
  2. build.gradle.kts の manifest placeholders が正しく設定されていることを確認します
  3. HTTPS とカスタムスキーム URL の両方が設定されていることを確認します
  4. クリーンして再ビルドします: BuildClean ProjectRebuild Project

アプリがクラッシュする: ‘Auth0 domain not found’

修正方法:
  1. com_auth0_domaincom_auth0_client_id の値が正しいことを確認します
  2. ドメインの形式にタイプミスがないことを確認します (https:// は含めないでください)

依存関係に関するビルドエラー

修正方法:
  1. build.gradle (プロジェクトレベル) で Android Gradle Plugin を最新バージョンに更新します
  2. プロジェクトを同期します: FileSync Project with Gradle Files
  3. ビルドをクリーンします: ./gradlew clean build

ユーザーによって認証がキャンセルされた

エラーコールバックで適切に処理してください:

互換性のあるブラウザーがないというエラー

  • デバイスまたはエミュレーターに Chrome または別のモダンブラウザーをインストールします
  • より良いユーザー体験のために Chrome Custom Tabs を有効にします
  • Chrome がインストールされた実機でテストします
Android App Links を使用できない場合 (たとえば、対象の Android API バージョンが 23 未満の場合) は、代わりにカスタム URL スキームを設定できます。
カスタム URL スキームは、クライアントなりすまし攻撃を受ける可能性があるため、App Links よりも安全性が低くなります。可能な限り App Links を使用してください。
  1. app/build.gradle.ktsauth0Scheme の manifest プレースホルダーを更新します。
app/build.gradle.kts
  1. Auth0 Dashboard のアプリケーション設定で、Allowed Callback URLsAllowed Logout URLs を更新し、カスタムスキームを使用するようにします。
  1. WebAuthProvider を呼び出すときにカスタムスキームを渡します。
MainActivity.kt
カスタムスキームには小文字のみ使用できます

強化された認証情報セキュリティ

認証情報へのアクセスに生体認証を実装します。
AuthenticationManager.kt

カスタムスコープとオーディエンス

API に対して特定のスコープとオーディエンスをリクエストします。
AuthenticationManager.kt

ネットワーク設定

ネットワークセキュリティと証明書ピンニングに対応します。
app/src/main/res/xml/network_security_config.xml
AndroidManifest.xml に追加します。