Asset

资产的唯一标识符。

数字资产是一种可识别身份且可寻址的在线实体,通常提供某些服务或内容。例如网站、Android 应用、Twitter 信息流和 Google+ 信息页。

JSON 表示法
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
字段名称 类型 说明
联合字段,只有下列其中一项:
web object(WebAsset) 此属性用于指明这是网络资产。
androidApp object(AndroidAppAsset) 设置此资源是否为 Android 应用资源。

WebAsset

描述网络资产。

JSON 表示法
{
  "site": string,
}
字段名称 类型 说明
site string

Web 资产由仅包含 scheme、主机名和端口部分的网址标识。格式为

http[s]://<hostname>[:<port>]

主机名必须是完全限定的:它们必须以一个英文句点 (.) 结尾。

目前仅支持“http”和“https”架构。

端口号以十进制数表示,如果使用标准端口号,则必须省略:80 用于 http,443 用于 https。

我们将此受限网址称为“网站”。共享相同架构、主机名和端口的所有网址都被视为网站的一部分,因此属于该网络资产。

示例:网站为 https://www.google.com 的资源包含以下所有网址:

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

但不包含以下网址:

  • http://www.google.com/(架构错误)
  • https://google.com/(主机名不匹配)
  • https://www.google.com:444/(端口不匹配)必需

AndroidAppAsset

描述 Android 应用资源。

JSON 表示法
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
字段名称 类型 说明
packageName string Android 应用资源由其 Java 软件包名称自然标识。例如,Google 地图应用使用软件包名称 com.google.android.apps.maps。必填
certificate object(CertificateInfo)

由于不会全局强制实施软件包名称唯一性,因此我们还需要签名证书,该证书与软件包名称相结合,可唯一标识应用。

某些应用的签名密钥会轮替,因此随着时间的推移,它们可能会使用不同的密钥进行签名。我们会将 (package name, cert) 用作唯一 ID,因此系统会将它们视为不同的资源。这通常不会造成任何问题,因为两个版本的应用将做出相同或相似的陈述。不过,在轮替密钥时,对应用做出陈述的其他资源也必须更新。

(请注意,发布和查询语句的语法包含语法糖,可让您轻松指定多个证书已知的应用。)必填

CertificateInfo

描述 X509 证书。

JSON 表示法
{
  "sha256Fingerprint": string,
}
字段名称 类型 说明
sha256Fingerprint string

证书的大写 SHA-265 指纹。从 PEM 证书中可获取该证书,如下所示:

$ keytool -printcert -file $CERTFILE | grep SHA256:
SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \
    42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

也可以改成这样:

$ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \
    16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

在此示例中,此字段的内容将为 14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5

如果您无法使用这些工具,则可以将 PEM 证书转换为 DER 格式,计算该字符串的 SHA-256 哈希值,并将结果表示为十六进制字符串(即每个八位字节的大写十六进制表示,以英文冒号分隔)。