应用检查和播放完整性与自定义后端



我们在Android应用程序中使用SafetyNet AttestationAPI,现在计划迁移到App Check/Play IntegrityAPI,因为SafetyNet已被弃用。

就我对文档的理解而言,流程基本保持不变:您从SDK请求令牌/证明,然后将其与所有请求一起发送到受信任的后端(例如,作为HTTP头),其他一切都在那里处理。

这里棘手的事情是如何在客户端获得令牌:文档提到了两种不同的方法。第一个,也可能是"主要"的。其中一个描述在"保护非firebase资源"中。道格:
FirebaseAppCheck.getInstance()
.getAppCheckToken(false)
.addOnSuccessListener { tokenResponse ->
val appCheckToken = tokenResponse.token
val apiCall = yourExampleBackendService.exampleData(appCheckToken)
// ...
}

另一方面,"从safetynet迁移"Doc描述了一种不同的方法:

val nonce: String = ...
val integrityManager = IntegrityManagerFactory.create(applicationContext)
val integrityTokenResponse: Task<IntegrityTokenResponse> =
integrityManager.requestIntegrityToken(
IntegrityTokenRequest.builder()
.setNonce(nonce)
.build()
).addOnSuccessListener { 
val token = it.token()
...
}

所以我不太确定为什么现有的SafetyNet用户被建议使用不同的API从Play检查SDK与其他人相比:它不应该是相同的API为每个人?有人能建议一下,这两种方法之间的区别是什么,它们的用例是什么?不幸的是,文档在这方面不是很清楚:(

简而言之:Firebase的AppCheck和Google Play Integrity API是两个不同的东西:AppCheck是Firebase的一个工具,它由几个层和工具组成,可以用于不同的目的。作为这些层之一,它支持作为认证提供者的Google Play Integrity API."从安全网迁移"你所发布的链接来自Google官方文档,描述了他们所拥有的Google Play Integrity API。如果你只使用SafetyNet API而不使用AppCheck,你可以直接迁移到Play Integrity API。

最新更新