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」スキームのみが許可されます。

ポート番号は 10 進数で表され、標準のポート番号を使用する場合は省略する必要があります(http の場合は 80、https の場合は 443)。

この制限付き 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/(ポートが一致しません)必須

Android アプリアセット

Android アプリのアセットを表します。

JSON 表現
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
フィールド名 タイプ 説明
packageName string Android App のアセットは、当然 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 ハッシュを計算して、結果を 16 進文字列(コロンで区切った各オクテットの 16 進表記)で表現できます。