Agent Skills by ALSEL
Anthropic Claudeセキュリティ⭐ リポ 0品質スコア 65/100

auth0-android

Androidアプリケーション(Kotlin/Java)にWebAuth、生体認証で保護された認証情報、およびMFAを使用して認証を追加する場合に使用します。com.auth0.android:auth0 SDKをネイティブAndroidアプリに統合し、セキュアな認証機能を実装できます。

description の原文を見る

Use when adding authentication to Android applications (Kotlin/Java) with Web Auth, biometric-protected credentials, and MFA - integrates com.auth0.android:auth0 SDK for native Android apps

SKILL.md 本文

Auth0 Android 統合

com.auth0.android:auth0 を使用して Android アプリケーションに認証を追加します。

エージェント指示: SDK セットアップ手順を提供する前に、次のコマンドを実行して最新リリースバージョンを取得してください:

gh api repos/auth0/Auth0.Android/releases/latest --jq '.tag_name'

返されたバージョンを、以下のハードコードされたバージョンの代わりに、すべての implementation 依存関係行で使用します。コマンドが失敗した場合は、https://github.com/auth0/Auth0.Android/releases を確認することにフォールバックします。

前提条件

  • Android API 21 以上
  • Kotlin または Java プロジェクト
  • ネイティブアプリケーションが設定された Auth0 アカウント
  • Auth0 をまだセットアップしていない場合は、auth0-quickstart を参照してください

使用しない場合

クイックスタートワークフロー

  1. SDK をインストール: Auth0 Android SDK 依存関係を build.gradle に追加します:

    implementation 'com.auth0.android:auth0:{LATEST_VERSION}'
    
  2. Auth0 を設定:

    自動/手動セットアップ、セットアップ後に必要なプロジェクト変更、およびコールバック URL 設定については、セットアップガイド を参照してください。

  3. 初期化: Auth0 アカウントインスタンスを作成します:

    import com.auth0.android.Auth0
    
    val account = Auth0.getInstance(context)
    
  4. 認証 UI を追加: Web Auth でログインとログアウトを実装します:

    エージェント指示: 新しい UI 要素を追加する前に、ログイン、ログアウト、サインイン、またはサインアウトボタン (例: loginButtonsignInButtonlogoutButtonsignOutButton、または認証関連の命名を持つ setOnClickListener) の既存のクリックハンドラーをプロジェクトで検索します。既存のハンドラーが見つかった場合は、既存の UI を変更せずに Auth0 コードを統合します。既存のハンドラーが見つからない場合のみ、新しいボタンを作成します。

    ログイン:

    import com.auth0.android.Auth0
    import com.auth0.android.authentication.AuthenticationAPIClient
    import com.auth0.android.authentication.storage.SecureCredentialsManager
    import com.auth0.android.authentication.storage.SharedPreferencesStorage
    import com.auth0.android.callback.Callback
    import com.auth0.android.authentication.AuthenticationException
    import com.auth0.android.provider.WebAuthProvider
    import com.auth0.android.result.Credentials
    
    val account = Auth0.getInstance(context)
    val authentication = AuthenticationAPIClient(account)
    val storage = SharedPreferencesStorage(context)
    val credentialsManager = SecureCredentialsManager(context, authentication, storage)
    
    WebAuthProvider.login(account)
        .withScheme(getString(R.string.com_auth0_scheme))
        .withScope("openid profile email offline_access")
        .start(this, object : Callback<Credentials, AuthenticationException> {
            override fun onSuccess(result: Credentials) {
                // User authenticated
                val idToken = result.idToken
                val accessToken = result.accessToken
                // Store credentials securely
                credentialsManager.saveCredentials(result)
            }
            override fun onFailure(error: AuthenticationException) {
                // Handle authentication failure
                Log.e("Auth0", "Authentication failed", error)
            }
        })
    

    ログアウト:

    WebAuthProvider.logout(account)
        .withScheme(getString(R.string.com_auth0_scheme))
        .start(this, object : Callback<Void?, AuthenticationException> {
            override fun onSuccess(result: Void) {
                // User logged out
            }
            override fun onFailure(error: AuthenticationException) {
                Log.e("Auth0", "Logout failed", error)
            }
        })
    
  5. ビルドと検証:

    エージェント指示: 統合を完了した後、プロジェクトをビルドして正常にコンパイルされることを確認します:

    ./gradlew assembleDebug
    

    ビルドが失敗した場合は、エラー出力を分析して問題を修正します。一般的な統合ビルド失敗には以下が含まれます:

    • 未解決の参照: インポートステートメントが不足しています — 必要な import com.auth0.android.* インポートを追加してください
    • シンボル R.string.com_auth0_scheme を解決できない: strings.xml が更新されていません — com_auth0_schemecom_auth0_client_idcom_auth0_domain エントリが存在することを確認してください
    • コールバックで互換性がない型: コールバック型パラメーターが一致しません — ログインで Callback<Credentials, AuthenticationException>、ログアウトで Callback<Void?, AuthenticationException> を使用していることを確認してください
    • 未解決の lifecycleScope: 依存関係が不足しています — implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.+' を追加するか、コードをコルーチンスコープの外に移動してください
    • minSdk が低すぎる: SDK には API 21 以上が必要です — minSdkVersion を最低 21 に更新してください
    • Java バージョンの不一致: SDK には Java 8 が必要です — compileOptionsJavaVersion.VERSION_1_8 で追加してください

    各修正後にビルドを再実行します。ビルド修正の反復回数を追跡します。

    フェイルチェック: 5~6 回の修正試行後もビルドが失敗し続ける場合は、停止して AskUserQuestion を使用してユーザーに質問します: 「複数の修正試行後もビルドが失敗しています。どのように進めたいですか?」

    • スキルが引き続き反復的に修正を行うようにする — さらに 5~6 回の修正ループを続行します
    • 手動で修正する — 残りのエラーを表示し、ユーザーに解決させます
    • ビルド検証をスキップする — 成功したビルドなしに進めます

    エラーが引き続き発生する場合は、5~6 回の反復後にこのチェックを繰り返します。ユーザーの明示的な同意なしに、プロジェクトをコンパイルできない状態のままにしないでください。

    コールバック URL は Auth0 アプリケーション設定と一致する必要があります: {SCHEME}://{YOUR_AUTH0_DOMAIN}/android/{YOUR_APP_PACKAGE_NAME}/callback

詳細ドキュメント

  • セットアップガイド — SDK をインストール、Auth0 アプリケーションを設定、コールバック URL を設定、Android App Links、カスタムスキーム、ProGuard/R8
  • 統合パターン — Web Auth ログイン/ログアウト、認証情報ストレージ、生体認証、データベースログイン、パスワードレス認証、MFA 処理、カスタムタブ、エラーハンドリング
  • テストとリファレンス — テストチェックリスト、一般的な問題、セキュリティに関する考慮事項、API リファレンス

よくある間違い

間違い修正
Auth0 ダッシュボードでアプリケーションタイプが Native に設定されていないAuth0 テナントで Native アプリケーションタイプを作成します。Android SDK は Native アプリ設定が必要で、Machine-to-Machine その他のタイプは必要ありません。
許可されているコールバック URL にコールバック URL がない{SCHEME}://{YOUR_AUTH0_DOMAIN}/android/{YOUR_APP_PACKAGE_NAME}/callback を Auth0 アプリケーションの許可されているコールバック URL 設定に追加します。{SCHEME}strings.xmlcom_auth0_scheme と一致する必要があります (デフォルトは demo)。
<uses-permission android:name="android.permission.INTERNET" /> がないINTERNET パーミッションを AndroidManifest.xml に追加します。SDK は認証にネットワークアクセスが必要です。
カスタムスキームが小文字でないAndroid ではスキーム名を小文字にする必要があります。https (推奨) または myapp://callback のような小文字のカスタムスキームを使用します。
直接認証呼び出しで .validateClaims() を忘れているAuthenticationAPIClient を直接使用する場合 (データベース、パスワードレス、API ログイン用)、常に .validateClaims() を呼び出します。Web Auth は自動的に検証します。
暗号化なしで SharedPreferences にトークンを保存しているSecureCredentialsManager を使用して認証情報を保存します。プレーンテキストでトークンを手動で保存しないでください。マネージャーは保存時にトークンを暗号化します。
マニフェストプレースホルダーがないmanifestPlaceholders = [auth0Domain: "@string/com_auth0_domain", auth0Scheme: "@string/com_auth0_scheme"]build.gradledefaultConfig ブロックに追加します。

関連スキル

クイックリファレンス

コアクラス

クラス目的
Auth0SDK のエントリーポイント、アプリ認証情報を保持
WebAuthProviderブラウザ経由での OAuth 2.0 ログイン/ログアウト
AuthenticationAPIClient直接 API 呼び出し (データベースログイン、パスワードレス、MFA)
SecureCredentialsManager認証情報の安全なストレージと取得
Credentialsユーザートークンと有効期限

よくあるユースケース

リファレンス

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
udbfd68-cell
リポジトリ
udbfd68-cell/AURION-APP
ライセンス
MIT
最終更新
2026/5/3

Source: https://github.com/udbfd68-cell/AURION-APP / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: udbfd68-cell · udbfd68-cell/AURION-APP · ライセンス: MIT