Asset

מזהה נכס באופן ייחודי.

נכס דיגיטלי הוא ישות אונליין ניתנת לזיהוי שאפשר לפנות אליה, שלרוב מספקת שירות או תוכן. דוגמאות לנכסים הן אתרים, אפליקציות ל-Android, פידים של Twitter ודפי Plus.

ייצוג JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
שם השדה סוג תיאור
שדה איחוד, רק אחד מאלה:
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/ (השדה אינו תואם) נדרש

נכס אפליקציה

מתאר נכס של אפליקציה ל-Android.

ייצוג JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
שם השדה סוג תיאור
packageName string נכסי אפליקציות ל-Android מזוהים באופן טבעי לפי שם החבילה שלהם ב-Java. למשל, אפליקציית מפות Google משתמשת בשם החבילה 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 של המחרוזת הזו ולייצג את התוצאה כמחרוזת הקסדצימלית (כלומר, ייצוג הקסדצימלי באותיות גדולות של כל 8 תווים, מופרדים בנקודתיים).