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.

WebAsset

מתאר נכס אינטרנט.

ייצוג 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/ (היציאה לא תואמת) REQUIRED

AndroidAppAsset

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

ייצוג JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
שם השדה סוג תיאור
packageName string נכסים של אפליקציות ל-Android מזוהים באופן טבעי לפי שם החבילה שלהם ב-Java. לדוגמה, אפליקציית מפות Google משתמשת בשם החבילה com.google.android.apps.maps. חובה
certificate object(CertificateInfo)

מכיוון שאין אכיפה גלובלית של הייחודיות של שם חבילה, אנחנו דורשים גם אישור חתימה, שבשילוב עם שם החבילה מאפשר לזהות אפליקציה באופן ייחודי.

מפתחות החתימה של אפליקציות מסוימים עוברים רוטציה, כך שמפתחות שונים עשויים לחתום עליהם במשך הזמן. אנחנו מתייחסים אליהם כאל נכסים נפרדים, כי אנחנו משתמשים (שם החבילה, אישור) בתור המזהה הייחודי. בדרך כלל לא אמורה להיות בעיה כזו, כי שתי הגרסאות של האפליקציה יספקו את אותה הצהרה או הצהרות דומות. עם זאת, יהיה צורך לעדכן נכסים אחרים שכוללים הצהרות לגבי האפליקציה לאחר רוטציית מפתח.

(שימו לב שהתחביר לפרסום ולשליחת שאילתות לגבי הצהרות מכילים סוכר תחבירי כדי לאפשר לכם לציין בקלות אפליקציות שמוכרות באמצעות אישורים מרובים). חובה

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 תווים, מופרדים בנקודתיים).