コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Firebase App Check
plat_ios
plat_android
plat_web
plat_flutter
App Check は、未承認のクライアントがバックエンド リソースにアクセスするのを防ぐことで、アプリのバックエンドを不正使用から保護します。Google サービス(Firebase や Google Cloud サービスを含む)と独自のカスタム バックエンドの両方と連携して、リソースを安全に保ちます。
App Check を使用すると、アプリを実行しているデバイスでアプリまたはデバイスの証明書プロバイダを使用して、次のいずれか、または両方であることを証明できます。
- 正規のアプリから送信されたリクエストであること
- 正規の未改造のデバイスから送信されたリクエストであること
この証明書は、アプリが指定した API に送信するすべてのリクエストに添付されます。App Check の適用を有効にすると、承認していないアプリまたはプラットフォームからのリクエストと同様に、有効な証明書がないクライアントからのリクエストは拒否されます。
App Check には、証明書プロバイダとして次のサービスを使用するためのサポートが組み込まれています。
これらのサービスでは要件を満たすことができない場合は、サードパーティの証明書プロバイダを使用できます。また、独自の証明手法を使用する独自のサービスを実装することもできます。
App Check は、以下の Google サービスと連携します。
App Check を使用して、Google 以外のカスタム バックエンド リソース(独自のセルフホスト型バックエンドなど)を保護することもできます。
開始方法を確認する
どのように機能するのか?
サービスで App Check を有効にして、アプリにクライアント SDK を組み込むと、次の処理が定期的に行われます。
- アプリが、選択したプロバイダとやり取りして、アプリまたはデバイスの真正性の証明書(プロバイダによっては両方の証明書)を取得します。
- 証明書が App Check サーバーに送信されます。ここで、アプリに登録されているパラメータを使用して証明書の有効性を検証し、有効期限が設定された App Check トークンをアプリに返します。このトークンには、検証された証明書に関する情報が含まれている場合があります。
- App Check クライアントの SDK がトークンをアプリ内のキャッシュに保存します。これにより、アプリは、保護されたサービスに対するリクエストと一緒にトークンを送信できるようになります。
App Check で保護されたサービスは、最新の有効な App Check トークンを含むリクエストのみを受け入れます。
App Check によってセキュリティはどのぐらい強固なりますか。
App Check は、アプリやデバイスの真正性を判断するために証明書プロバイダの強度に依存します。すべてではないものの、バックエンドに対する不正行為を防止できます。App Check を使用しても、すべての不正行為を排除できるわけではありませんが、App Check を統合することで、バックエンド リソースの不正使用を防ぐための重要な一歩を踏み出すことになります。
App Check と Firebase Authentication は、アプリのセキュリティ ストーリーを相互に補完する関係にあります。Firebase Authentication はユーザー認証を行ってユーザーを保護しますが、App Check はアプリまたはデバイスの真正性を証明して、デベロッパーを保護します。App Check は、API 呼び出しに有効な App Check トークンを含めることを要求することで、Google バックエンド リソースとカスタム バックエンドへのアクセスを保護します。この 2 つのコンセプトを連携させることで、アプリの保護を強化できます。
割り当てと上限
App Check の使用には、使用する証明書プロバイダの割り当てと上限が適用されます。
DeviceCheck と App Attest へのアクセスには、Apple によって設定された割り当てまたは制限が適用されます。
Play Integrity には、Standard API の使用枠に対して「1 日あたり 10,000 回の呼び出し」という割り当てがあります。使用枠の引き上げに関して詳しくは、Play Integrity のドキュメントをご覧ください。
reCAPTCHA Enterprise では、1 か月あたり 10,000 件までの評価は無料ですが、それを超えると費用が発生します。詳しくは、reCAPTCHA の料金をご覧ください。
使ってみる
では始めてみましょう。
DeviceCheck
App Attest
Android
Play Integrity
ウェブ
reCAPTCHA Enterprise
Flutter
デフォルト プロバイダ
Unity
デフォルト プロバイダ
C++
デフォルト プロバイダ
カスタム App Check プロバイダを実装する方法を学習する
カスタム プロバイダ
App Check を使用してカスタム バックエンド リソースを保護する方法を学習する
ご利用のプラットフォームを選択してください:
iOS+
Android
Web
Flutter
Unity
C++
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-08-24 UTC。
[null,null,["最終更新日 2025-08-24 UTC。"],[],[],null,["Firebase App Check \nplat_ios plat_android plat_web plat_flutter \n\nApp Check helps protect your app backends from abuse by preventing\nunauthorized clients from accessing your backend resources. It works with\nboth Google services (including Firebase and Google Cloud services) and your\nown custom backends to keep your resources safe.\n\nWith App Check, devices running your app will use an app or device\nattestation provider that attests to one or both of the following:\n\n- Requests originate from your authentic app\n- Requests originate from an authentic, untampered device\n\nThis attestation is attached to every request your app makes to the APIs you\nspecify. When you enable App Check enforcement, requests from\nclients without a valid attestation will be rejected, as will any request\noriginating from an app or platform you haven't authorized.\n\nApp Check has built-in support for using the following services as\nattestation providers:\n\n- [DeviceCheck](https://developer.apple.com/documentation/devicecheck) or [App Attest](https://developer.apple.com/documentation/devicecheck/establishing_your_app_s_integrity) on Apple platforms\n- [Play Integrity](https://developer.android.com/google/play/integrity) on Android\n- [reCAPTCHA Enterprise](https://cloud.google.com/recaptcha-enterprise) on web apps.\n\nIf these are insufficient for your needs, you can also implement your own\nservice that uses either a third-party attestation provider or your own\nattestation techniques.\n\nApp Check works with the following Google services:\n\n| Supported Firebase and Google Cloud services |\n|------------------------------------------------------------------------------------------------------------|\n| Firebase Authentication (Preview) |\n| Firebase Data Connect |\n| Cloud Firestore |\n| Firebase Realtime Database |\n| Cloud Storage for Firebase |\n| Cloud Functions for Firebase (callable functions only) |\n| Firebase AI Logic |\n| [Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/overview) (Preview) |\n| [Places API (New)](https://developers.google.com/maps/documentation/places/web-service/overview) (Preview) |\n| [Google Identity for iOS](https://developers.google.com/identity/sign-in/ios/appcheck) |\n\nYou can also use App Check to protect your non-Google custom backend\nresources, like your own self-hosted backend.\n\n[Learn how to get started](#get_started)\n\nHow does it work?\n\nWhen you enable App Check for a service and include the client SDK\nin your app, the following happens periodically:\n\n1. Your app interacts with the provider of your choice to obtain an attestation of the app or device's authenticity (or both, depending on the provider).\n2. The attestation is sent to the App Check server, which verifies the validity of the attestation using parameters registered with the app, and returns to your app an App Check token with an expiration time. This token might retain some information about the attestation material it verified.\n3. The App Check client SDK caches the token in your app, ready to be sent along with any requests your app makes to protected services.\n\nA service protected by App Check only accepts requests accompanied\nby a current, valid App Check token.\n\nHow strong is the security provided by App Check?\n\nApp Check relies on the strength of its attestation providers to determine\napp or device authenticity. It prevents some, but not all, abuse vectors\ndirected towards your backends. Using App Check does not guarantee\nthe elimination of all abuse, but by integrating with App Check, you are\ntaking an important step towards abuse protection for your backend resources.\n\nHow is App Check related to Firebase Authentication?\n\nApp Check and Firebase Authentication are complementary parts of your app security\nstory. Firebase Authentication provides user authentication, which protects your\nusers, whereas App Check provides attestation of app or device authenticity,\nwhich protects you, the developer. App Check guards access to your Google\nbackend resources and custom backends by requiring API calls to contain a valid\nApp Check token. These two concepts work together to help secure your app.\n\nQuotas \\& limits\n\nYour use of App Check is subject to the quotas and limits of the attestation\nproviders you use.\n\n- DeviceCheck and App Attest access is subject to any quotas or limitations set\n by Apple.\n\n- Play Integrity has a daily quota of 10,000 calls for its Standard API usage\n tier. For information on raising your usage tier, see the\n [Play Integrity documentation](https://developer.android.com/google/play/integrity/overview#usage-tiers).\n\n- reCAPTCHA Enterprise is no-cost for 10,000 assessments each month, and has a\n cost beyond that. See [reCAPTCHA pricing](https://cloud.google.com/security/products/recaptcha#pricing).\n\nGet started\n\nReady to get started?\n\nApple platforms\n\n[DeviceCheck](/docs/app-check/ios/devicecheck-provider)\n[App Attest](/docs/app-check/ios/app-attest-provider)\n\nAndroid\n\n[Play Integrity](/docs/app-check/android/play-integrity-provider)\n\nWeb\n\n[reCAPTCHA Enterprise](/docs/app-check/web/recaptcha-enterprise-provider)\n\nFlutter\n\n[Default providers](/docs/app-check/flutter/default-providers)\n\nUnity\n\n[Default providers](/docs/app-check/unity/default-providers)\n\nC++\n\n[Default providers](/docs/app-check/cpp/default-providers)\n\nLearn how to implement a custom App Check provider\n\n[Custom providers](/docs/app-check/custom-provider)\n\nLearn how to use App Check to protect your custom backend resources\n\nSelect your platform:\n\n[iOS+](/docs/app-check/ios/custom-resource)\n[Android](/docs/app-check/android/custom-resource)\n[Web](/docs/app-check/web/custom-resource)\n[Flutter](/docs/app-check/flutter/custom-resource)\n[Unity](/docs/app-check/unity/custom-resource)\n[C++](/docs/app-check/cpp/custom-resource)"]]