Asset

Identifie un élément de manière unique.

Un asset numérique est une entité en ligne identifiable et adressable qui fournit généralement du service ou du contenu. Les sites Web, les applications Android, les flux Twitter et les pages Google Plus en sont des exemples.

Représentation JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
fieldName Type Description
Union, un seul des champs suivants:
web object(WebAsset) Indiquez s'il s'agit d'un asset Web.
androidApp object(AndroidAppAsset) Indiquez s'il s'agit d'un composant Application Android.

Asset Web

Décrit un élément Web.

Représentation JSON
{
  "site": string,
}
fieldName Type Description
site string

Les éléments Web sont identifiés par une URL ne contenant que le schéma, le nom d'hôte et les parties du port. Le format est

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

Les noms d'hôte doivent être complets. Ils doivent se terminer par un seul point (.).

Seuls les schémas "http" et "https" sont actuellement autorisés.

Les numéros de port sont donnés sous forme de nombres décimaux et doivent être omis si les numéros de port standards sont utilisés: 80 pour http et 443 pour https.

Nous appelons cette URL limitée le "site". Toutes les URL partageant le même schéma, le même nom d'hôte et le même port sont considérées comme faisant partie du site et appartiennent donc à l'asset Web.

Exemple: L'asset avec le site https://www.google.com contient toutes ces 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/

mais pas les URL suivantes:

  • http://www.google.com/ (schéma incorrect)
  • https://google.com/ (le nom d'hôte ne correspond pas)
  • https://www.google.com:444/ (le port ne correspond pas) OBLIGATOIRE

Élément AndroidAppAsset

Décrit un composant Application Android.

Représentation JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
fieldName Type Description
packageName string Les composants Application Android sont naturellement identifiés par leur nom de package Java. Par exemple, l'application Google Maps utilise le nom de package com.google.android.apps.maps. REQUIRED
certificate object(CertificateInfo)

Étant donné qu'il n'existe aucune mesure d'application globale concernant l'unicité du nom de package, nous avons également besoin d'un certificat de signature, qui, associé au nom du package, permet d'identifier une application de manière unique.

Les clés de signature de certaines applications font l'objet d'une rotation. Par conséquent, elles peuvent être signées par d'autres clés au fil du temps. Nous les traitons comme des éléments distincts, car nous utilisons (nom du package, certificat) comme identifiant unique. Normalement, cela ne pose aucun problème, car les deux versions de l'application émettent des déclarations identiques ou similaires. Toutefois, les autres éléments qui font des déclarations sur l'application devront être mis à jour lors de la rotation d'une clé.

(Notez que les syntaxes de publication et d'interrogation des instructions contiennent du sucre syntaxique pour vous permettre de spécifier facilement des applications connues par plusieurs certificats.) REQUIRED

Informations sur le certificat

Décrit un certificat X509.

Représentation JSON
{
  "sha256Fingerprint": string,
}
fieldName Type Description
sha256Fingerprint string

Empreinte numérique SHA-265 en majuscules du certificat. Le certificat PEM peut être obtenu comme suit:

$ 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

ou comme suit:

$ 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

Dans cet exemple, le contenu de ce champ devrait être 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.

Si ces outils ne sont pas disponibles, vous pouvez convertir le certificat PEM au format DER, calculer le hachage SHA-256 de cette chaîne et représenter le résultat sous la forme d'une chaîne hexadécimale (c'est-à-dire des représentations hexadécimales majuscules de chaque octet séparées par des deux-points).