Asset

资产的唯一标识。

数字资产是一个具有明确特征且可寻址的在线实体,通常可提供某些服务或内容。例如网站、Android 应用、Twitter Feed 和 Google+ 信息页等。

JSON 表示法
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
字段名称 类型 说明
联合字段,只能是下列其中一项:
web object(WebAsset) 如果这是网站资产,请设置。
androidApp object(AndroidAppAsset) 如果这是 Android 应用素材资源,请设置。

网络资产

描述网站资产。

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

网络资源由仅包含架构、主机名和端口部分的网址标识。格式为

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

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

目前只允许使用“http”和“https”架构。

端口号采用十进制数字,如果使用标准端口号,则必须省略:http 为 80,https 为 443。

我们将这个受限网址称为“网站”。所有具有相同架构、主机名和端口的网址均被视为网站的一部分,因而属于网站资产。

示例:网站为 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)

由于没有针对软件包名称唯一性的全局强制性要求,我们还需要一个签名证书,该证书与软件包名称相关联可唯一标识应用。

某些应用的签名密钥会轮替,因此它们可能会随着时间的推移被不同的密钥签名。我们会将这些资产视为不同的资产,因为我们使用(软件包名称、证书)作为唯一 ID。这样做通常不会造成任何问题,因为应用的两个版本都会做出相同或相似的声明。但是,对轮替应用做出其他声明的资产必须在轮替密钥时进行更新。

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

证书信息

描述 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 哈希值,并将结果表示为一个十六进制字符串(即每个八位字节的大写十六进制形式,以英文冒号分隔)。