Method: projects.apps.exchangeAppAttestAttestation

接受 App Attest CBOR 证明,并使用您预配置的团队和软件包 ID 通过 Apple 验证该证明。如果有效,则返回认证工件,稍后可以使用 apps.exchangeAppAttestAssertion 将其交换为 AppCheckToken

为了方便起见并提升性能,此方法的响应对象还包含 AppCheckToken (如果验证成功)。

HTTP 请求

POST https://firebaseappcheck.googleapis.com/v1/{app=projects/*/apps/*}:exchangeAppAttestAttestation

网址采用 gRPC 转码 语法。

路径参数

参数
app

string

必需。iOS 应用的相对资源名称,格式为:

projects/{project_number}/apps/{app_id}

如有必要,可以将 project_number 元素替换为 Firebase 项目的 ID。详细了解如何按照 Google 的 AIP 2510 标准使用项目标识符。

请求正文

请求正文包含结构如下的数据:

JSON 表示法
{
  "attestationStatement": string,
  "challenge": string,
  "keyId": string,
  "limitedUse": boolean
}
字段
attestationStatement

string ( bytes format)

必需。客户端 App Attest API 返回的 App Attest 语句。这是 JSON 响应中采用 base64url 编码的 CBOR 对象。

使用 base64 编码的字符串。

challenge

string ( bytes format)

必需。由刚刚调用 apps.generateAppAttestChallenge 返回的一次性质询。

使用 base64 编码的字符串。

keyId

string ( bytes format)

必需。App Attest 为客户端应用生成的密钥 ID。

使用 base64 编码的字符串。

limitedUse

boolean

指定此证明是用于有限使用 ( true ) 还是基于会话 ( false ) 的环境。如需启用此认证以便与 重放攻击防范 功能搭配使用,请将此项设为 true 。默认值为 false

响应正文

apps.exchangeAppAttestAttestation 方法的响应消息。

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "artifact": string,
  "appCheckToken": {
    object (AppCheckToken)
  }
}
字段
artifact

string ( bytes format)

可以在将来调用 apps.exchangeAppAttestAssertion 中使用的工件。

使用 base64 编码的字符串。

appCheckToken

object ( AppCheckToken )

封装 App Check 令牌。