Asset

저작물을 고유하게 식별합니다.

디지털 자산은 식별 가능하고 주소 지정이 가능한 온라인 개체로, 일반적으로 일부 서비스 또는 콘텐츠를 제공합니다. 애셋의 예로는 웹사이트, Android 앱, Twitter 피드, 플러스 페이지가 있습니다.

JSON 표현
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
필드 이름 유형 설명
Union 필드, 다음 중 하나만
web object(WebAsset) 웹 저작물인 경우 설정합니다.
androidApp object(AndroidAppAsset) Android 앱 확장 소재인지 설정합니다.

WebAsset

웹 저작물을 설명합니다.

JSON 표현
{
  "site": string,
}
필드 이름 유형 설명
site string

웹 자산은 스키마, 호스트 이름 및 포트 부분만 포함하는 URL로 식별됩니다. 형식은

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

호스트 이름은 정규화되어야 하며, 마침표 하나 ('.')로 끝나야 합니다.

현재 'http' 및 'https' 스키마만 허용됩니다.

포트 번호는 십진수로 제공되며 표준 포트 번호(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/ (포트가 일치하지 않음) 필수사항

AndroidAppAsset

Android 앱 애셋을 설명합니다.

JSON 표현
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
필드 이름 유형 설명
packageName string Android 앱 애셋은 Java 패키지 이름으로 자연스럽게 식별됩니다. 예를 들어 Google 지도 앱에서는 패키지 이름 com.google.android.apps.maps를 사용합니다. REQUIRED
certificate object(CertificateInfo)

패키지 이름 고유성이 전역적으로 적용되지 않기 때문에 패키지 이름과 함께 앱을 고유하게 식별하는 서명 인증서도 필요합니다.

일부 앱의 서명 키는 순환되므로 시간이 지나면서 다른 키로 서명될 수 있습니다. 여기서는 (패키지 이름, 인증서)를 고유 ID로 사용하므로 이러한 파일을 별개의 애셋으로 취급합니다. 앱의 두 버전이 동일하거나 유사한 진술을 하기 때문에 일반적으로는 어떤 문제도 발생하지 않습니다. 그러나 앱에 대한 문을 작성하는 다른 애셋은 키가 순환될 때 업데이트해야 합니다.

(문을 게시하고 쿼리하기 위한 문법에는 여러 인증서에서 알려진 앱을 쉽게 지정할 수 있는 구문 슈가가 포함되어 있습니다.) REQUIRED

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 해시를 계산하여 결과를 16진수 문자열로 표시할 수 있습니다 (즉, 각 옥텟의 대문자 16진수 표현, 콜론으로 구분).