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