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を参照してください
使用しない場合
- React Native アプリ:
auth0-react-nativeを使用します - Flutter アプリ: ネイティブ Flutter Auth0 SDK を使用します
- Web SPA (React、Angular、Vue):
auth0-react、auth0-angular、またはauth0-vueを使用します - Node.js/Express サーバー:
auth0-expressを使用します - iOS/macOS アプリ:
auth0-swiftを使用します
クイックスタートワークフロー
-
SDK をインストール: Auth0 Android SDK 依存関係を
build.gradleに追加します:implementation 'com.auth0.android:auth0:{LATEST_VERSION}' -
Auth0 を設定:
自動/手動セットアップ、セットアップ後に必要なプロジェクト変更、およびコールバック URL 設定については、
セットアップガイドを参照してください。 -
初期化: Auth0 アカウントインスタンスを作成します:
import com.auth0.android.Auth0 val account = Auth0.getInstance(context) -
認証 UI を追加: Web Auth でログインとログアウトを実装します:
エージェント指示: 新しい UI 要素を追加する前に、ログイン、ログアウト、サインイン、またはサインアウトボタン (例:
loginButton、signInButton、logoutButton、signOutButton、または認証関連の命名を持つ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) } }) -
ビルドと検証:
エージェント指示: 統合を完了した後、プロジェクトをビルドして正常にコンパイルされることを確認します:
./gradlew assembleDebugビルドが失敗した場合は、エラー出力を分析して問題を修正します。一般的な統合ビルド失敗には以下が含まれます:
- 未解決の参照: インポートステートメントが不足しています — 必要な
import com.auth0.android.*インポートを追加してください - シンボル
R.string.com_auth0_schemeを解決できない:strings.xmlが更新されていません —com_auth0_scheme、com_auth0_client_id、com_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 が必要です —
compileOptionsをJavaVersion.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.xml の com_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.gradle の defaultConfig ブロックに追加します。 |
関連スキル
auth0-quickstart— Auth0 アカウントとアプリケーションをセットアップauth0-mfa— 多要素認証を設定auth0-swift— iOS/macOS 認証
クイックリファレンス
コアクラス
| クラス | 目的 |
|---|---|
Auth0 | SDK のエントリーポイント、アプリ認証情報を保持 |
WebAuthProvider | ブラウザ経由での OAuth 2.0 ログイン/ログアウト |
AuthenticationAPIClient | 直接 API 呼び出し (データベースログイン、パスワードレス、MFA) |
SecureCredentialsManager | 認証情報の安全なストレージと取得 |
Credentials | ユーザートークンと有効期限 |
よくあるユースケース
Web Auth でログインログアウト認証情報を安全に保存生体認証を要求データベースログインパスワードレス認証MFA を処理保護された API を呼び出す
リファレンス
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- udbfd68-cell
- ライセンス
- MIT
- 最終更新
- 2026/5/3
Source: https://github.com/udbfd68-cell/AURION-APP / ライセンス: MIT
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。