Firebase App Check
App Check は、未承認のクライアントがバックエンド リソースにアクセスするのを防ぐことで、アプリのバックエンドを不正使用から保護します。Google サービス(Firebase や Google Cloud サービスを含む)と独自のバックエンドの両方と連携して、リソースを安全に保ちます。
App Check を使用すると、アプリを実行しているデバイスでアプリまたはデバイスの証明書プロバイダを使用して、次のいずれか、または両方であることを証明できます。
- 正規のアプリから送信されたリクエストであること
- 正規の未改造のデバイスから送信されたリクエストであること
この証明書は、アプリが指定した API に送信するすべてのリクエストに添付されます。App Check の適用を有効にすると、承認していないアプリまたはプラットフォームからのリクエストと同様に、有効な証明書がないクライアントからのリクエストは拒否されます。
App Check には、証明書プロバイダとして次のサービスを使用するためのサポートが組み込まれています。
- DeviceCheck または App Attest(Apple プラットフォーム)
- Android の Play Integrity
- ウェブアプリの reCAPTCHA Enterprise
これらのサービスでは要件を満たすことができない場合は、サードパーティの証明書プロバイダを使用できます。また、独自の証明手法を使用する独自のサービスを実装することもできます。
App Check は、次の Google サービスと連携します。
サポートされている Google サービス |
---|
Firebase Data Connect(プレビュー) |
Realtime Database |
Cloud Firestore |
Cloud Storage |
Cloud Functions(呼び出し可能関数) |
Authentication(ベータ版、Firebase Authentication with Identity Platform へのアップグレードが必要) |
Google Identity for iOS(ベータ版) |
Vertex AI in Firebase(プレビュー) |
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 とどのように関連していますか。
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 のドキュメントをご覧ください。
SafetyNet には「1 日あたり 10,000 回の呼び出し」という割り当てがあります。割り当ての引き上げをリクエストする方法については、SafetyNet のドキュメントをご覧ください。
reCAPTCHA Enterprise では、1 か月あたり 10,000 件までの評価は無料ですが、それを超えると費用が発生します。詳しくは、reCAPTCHA の料金をご覧ください。
使ってみる
では始めてみましょう。
Apple プラットフォーム
Android
ウェブ
Flutter
C++
Unity
カスタム App Check プロバイダを実装する方法を学習する
App Check を使用して Google 以外のバックエンド リソースを保護する方法を学習する
ご利用のプラットフォームを選択してください: