关于本文
本文是通过利用生成式 AI 的自动化流程创建的。
Firebase App Check 是一种保护功能,它通过证明(一种验证应用及运行环境合法性的机制)来检查发往 Firebase 等后端服务的请求是否来自“已注册的正规应用”,从而减少恶意客户端的滥用行为。
信息确认基准日:2026-09-19
首先是结论
Authentication(身份验证)用于确认“使用者是谁”,而 App Check 则属于不同的层级,用于确认“发送请求的应用是否正规”。即使将两者结合使用,也并不意味着不再需要 Security Rules 或 IAM。
| 层级 | 确认内容 | 代表示例 |
|---|---|---|
| Authentication | 用户本人 | Firebase Authentication |
| App attestation | 正规应用/运行环境 | Firebase App Check |
| Authorization | 可以读取或写入什么内容 | Security Rules / IAM |
| 后端验证 | 请求内容 | 应用独有的验证 |
flowchart LR User[利用者] --> App[正規アプリ] App --> Provider[Attestation Provider] Provider --> Token[App Check token] Token --> Backend[Firebase / Backend] Auth[User Authentication] --> Backend Rules[Rules / IAM] --> Backend
在Google整体中的定位
这是Firebase的安全层。它可以保护对Cloud Firestore、Realtime Database、Cloud Storage、Authentication、Cloud Functions等支持的服务发出的请求,且Maps JavaScript API和Places API (New)等支持范围也能在官方文档中进行确认。即使在您自己的后端中,也可以验证App Check令牌。
与谁有关?
普通用户与行政人员: 通常无需感知,但作为减少非授权客户端滥用服务的机制与您相关。
IT管理员: 需要确认强制执行对象、指标、提供程序、IAM以及发生故障时的回滚方法。
开发人员: 需要实现SDK、证明提供程序、令牌、调试提供程序和自定义后端验证。
引入时的重要注意事项
直接启用强制执行可能会拦截合法用户。官方文档也建议了相应的流程:首先分发SDK,通过App Check指标确认影响后,再启用强制执行。对于Apple App Attest,可以将令牌TTL设置为30分钟到7天之间,较短的TTL可提高安全性,但这与证明次数、延迟以及配额/成本之间存在权衡。
与Microsoft / Azure相比如何?
它与Microsoft Entra ID的用户身份验证本身并不相同。App Check相比于用户ID,更接近于“是否为来自合法应用的请求”这一应用证明层的功能。在比较Microsoft侧的应用证明相关功能时,也将用户身份验证和应用证明区分开来进行梳理。
安全试用
在测试项目中将目标应用注册到App Check,并按照官方步骤使用调试/开发提供程序来确认指标。成功条件是能够观察到合法测试应用的请求被视为有效。切勿从一开始就开启生产环境的强制执行。
请勿将App Check调试令牌或凭据保存到公开的GitHub中。在自定义后端中验证令牌时,也请遵循官方步骤检查签名、签发者、过期时间、受众等。
Google官方信息
接下来该做什么?
确定要保护的服务和平台,并在测试环境中注册 App Check。通过指标确认合法请求能够正常通过,在了解对用户的影响后,再逐步考虑强制执行。
深入探究个别一手信息
Firebase App Check 是一项额外的防御措施,用于验证发往 Firebase 或自定义后端的请求是否源自合法的应用/设备。身份验证(Authentication)用于验证用户身份,而 App Check 则负责确认应用的合法性,两者并非替代关系。
Google 官方一手信息
Papanda TRY:通过图表了解 App Check 的“与身份验证不同”
制作一个 HTML 教学材料,将用户身份验证和 App Check 放在不同的通道,并在左右两侧分别展示“谁在使用”以及“是否来自合法应用”。不使用实际的证明(attestation)令牌,以不混淆两者作为成功条件。
这到底是一个什么样的服务?
Firebase App Check 是一个安全层,用于确认“该请求是否极有可能是来自已注册的合法应用”,从而减少对后端的滥用。理解它的关键在于,它不是身份验证(Authentication)或安全规则(Security Rules)的替代品,而是对它们的补充防御。
