Firebase App Check
App Check 可以防止未经授权的客户端访问您的后端资源,从而有助于保护应用后端免遭滥用。它可与 Google 服务(包括 Firebase 和 Google Cloud 服务)和您自己的后端搭配使用,以确保资源安全。
使用 App Check 时,运行您的应用的设备将使用应用或设备证明提供程序,证明以下两项或其中一项:
- 请求来自您的正版应用
- 请求来自真实的、未经篡改的设备
此证明会附加到您的应用向您指定的 API 发出的每个请求。启用 App Check 强制执行后,来自没有有效证明的客户端的请求将被拒绝,来自未经您授权的应用或平台的请求也将被拒绝。
App Check 支持使用以下服务作为证明提供程序(此支持是内置的):
- Apple 平台上的 DeviceCheck 或 App Attest
- Android 上的 Play Integrity 或 SafetyNet(已弃用)
- Web 应用上的 reCAPTCHA Enterprise。
如果这些服务不能完全满足您的需求,您还可以实现自己的服务,从而使用第三方证明提供程序或您自己的证明方法。
App Check 可与以下 Google 服务搭配使用:
支持的 Google 服务 |
---|
Realtime Database |
Cloud Firestore |
Cloud Storage |
Cloud Functions(可调用函数) |
Authentication(Beta 版;需要升级到 Firebase Authentication with Identity Platform) |
iOS 版 Google Identity(Beta 版) |
Vertex AI for 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 后端资源和自定义后端的访问。这两种方式协同发挥作用,帮助保护您的应用。
配额和限制
使用 App Check 时,您会受到所用证明提供程序的配额和限制的约束。
对 DeviceCheck 和 App Attest 的访问受 Apple 所设配额或限制的约束。
Play Integrity 的标准 API 用量层级的每日配额为 10,000 次调用。如需了解如何提高用量层级,请参阅 Play Integrity 文档。
SafetyNet 的每日配额为 10,000 次调用。如需了解如何申请增加配额,请参阅 SafetyNet 文档。
reCAPTCHA Enterprise 每月可免费进行 10,000 次评估,超过此限制则需要付费。请参阅 reCAPTCHA 定价。
开始使用
准备好开始了吗?
Apple 平台
Android
Web
Flutter
C
Unity
了解如何实现自定义 App Check 提供程序:
了解如何使用 App Check 来保护您的非 Google 后端资源: