Asset

Уникально идентифицирует актив.

Цифровой актив — это идентифицируемый и адресуемый онлайн-объект, который обычно предоставляет какую-либо услугу или контент. Примерами ресурсов являются веб-сайты, приложения для Android, каналы Twitter и Plus Pages.

Представление JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
Имя поля Тип Описание
Поле Union, только одно из следующего:
web object( WebAsset ) Установите, если это веб-актив.
androidApp object( AndroidAppAsset ) Установите, если это актив Android-приложения.

Веб-актив

Описывает веб-актив.

Представление JSON
{
  "site": string,
}
Имя поля Тип Описание
site string

Веб-активы идентифицируются по URL-адресу, который содержит только часть схемы, имени хоста и порта. Формат

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

Имена хостов должны быть полностью определенными: они должны заканчиваться точкой (" . ").

В настоящее время разрешены только схемы "http" и "https".

Номера портов задаются в виде десятичного числа, и их следует опускать, если используются стандартные номера портов: 80 для http и 443 для https.

Мы называем этот ограниченный URL «сайтом». Все URL-адреса, которые имеют одну и ту же схему, имя хоста и порт, считаются частью сайта и, следовательно, принадлежат веб-ресурсу.

Пример: актив с сайтом https://www.google.com содержит все эти URL:

  • 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/

Но он не содержит этих URL-адресов:

  • 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 Maps использует имя пакета com.google.android.apps.maps . НЕОБХОДИМЫЙ
certificate object( 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 этой строки и представить результат в виде шестнадцатеричной строки (то есть шестнадцатеричных представлений каждого октета в верхнем регистре, разделенных двоеточиями). ).