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

系統會透過一個網址 (只包含配置、主機名稱和通訊埠部分) 來識別網路資產。格式為

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

主機名稱必須完整無誤,結尾必須為半形句號 (「.」)。

目前僅允許「http」和「https」網路配置。

通訊埠號碼是以十進位數字的形式指定,使用標準通訊埠號碼時必須省略。若使用標準通訊埠號碼,請省略 80,https 為 443。

這個有限網址稱為「site」。系統會將使用相同配置、主機名稱和通訊埠的所有網址視為網站的一部分,因此屬於網路資產。

例如,擁有 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/ (通訊埠不符) REQUIRED

AndroidAppAsset

說明 Android 應用程式資產。

JSON 表示法
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
欄位名稱 類型 說明
packageName string Android 應用程式資產是採用 Java 套件名稱的自然識別名稱。舉例來說,Google 地圖應用程式使用套件名稱 com.google.android.apps.maps。必要
certificate object(CertificateInfo)

由於套件名稱沒有重複性全面強制規定,因此我們要求簽署憑證,因此必須與套件名稱搭配可明確識別應用程式的套件名稱。

部分應用程式的簽署金鑰會輪替金鑰,因此日後可能會以不同的金鑰簽署。系統會將這些資產視為不同的資產,因為我們使用 (套件名稱、憑證) 做為專屬 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 雜湊,並以十六進位字串表示結果 (也就是每八位元的大寫十六進位表示法,以冒號分隔)。