תחילת העבודה

סקירה כללית

בעזרת ה-API של הפרוטוקול Digital Asset Links, אפליקציה או אתר יכולים לפרסם הצהרות שניתנות לאימות באופן ציבורי על אפליקציות או אתרים אחרים. לדוגמה, אתר יכול להצהיר שהוא משויך לאפליקציה ספציפית ל-Android, או שהוא יכול להצהיר שהוא רוצה לשתף את פרטי הכניסה של המשתמש עם אתר אחר.

ריכזנו כאן קישורים לכמה נכסים דיגיטליים שאפשר להשתמש בהם:

  • אתר א' מצהיר שקישורים לאתר שלו אמורים להיפתח באפליקציה ייעודית במכשירים ניידים, אם האפליקציה מותקנת.
  • אתר א' מצהיר שהוא יכול לשתף את פרטי הכניסה של המשתמש ב-Chrome עם אתר ב'. כך המשתמש לא יצטרך להתחבר לאתר ב' אם הוא מחובר לאתר א'.
  • אפליקציה א' מצהירה שהיא יכולה לשתף הגדרות מכשיר, כמו מיקום, עם אתר ב'.

מונחי מפתח

  • חשבון משתמש: חשבון המשתמש הוא האפליקציה או האתר שמציגים את ההצהרה. ב'קישורים של נכסים דיגיטליים', חשבון המשתמש הוא תמיד האפליקציה או האתר שמארחים את רשימת הדוחות.
  • רשימת דוחות: הדוחות נמצאים ברשימת דוחות שמכילה הצהרה אחת או יותר. רשימת ההצהרות היא טקסט נגיש ונגיש לציבור, במיקום בשליטתו של המשתמש וקשה לזייף או לשבש אותו. הוא יכול להיות קובץ עצמאי או קטע אחר, גדול יותר. לדוגמה, באתר, מדובר בקובץ שלם. באפליקציה ל-Android, הוא חלק בקובץ המניפסט של האפליקציה. כולם יכולים להציג ולאמת הצהרות, תוך שימוש בשיטות לא קנייניות. למידע נוסף, ניתן לעיין במסמכים של רשימת ההצהרות.
  • הצהרה: הצהרה היא מבנה JSON מובנה היטב שכולל קשר (מה שנאמר בהצהרה, לדוגמה: הפעלת פרטי כניסה לשיתוף) ויעד (האתר או האפליקציה שהקשר חל עליהם). לכן, כל משפט הוא כמו משפט, וביטוי העיקרי מציין קשר לגבי יעד.
  • צרכן הצהרה: צרכן ההצהרה משתמש ברשימת דוחות מחשבון משתמש, בודק אם קיימת הצהרה כנגד חשבון משתמש נתון ואם קיימת, יכול לבצע את הפעולה שצוינה. מידע נוסף זמין בהצהרה על שימוש במסמכים.

דוגמה לשימוש מהיר

זוהי דוגמה פשוטה מאוד לאופן שבו האתר www.example.com יכול להשתמש בקישורים של נכסים דיגיטליים, כדי לציין שכל קישור לכתובות URL באתר הזה צריך לפתוח באפליקציה ייעודית ולא בדפדפן:

  1. האתר www.example.com מפרסם רשימת הצהרות בכתובת https://www.example.com/.well-known/assetlinks.json. זהו השם והמיקום הרשמיים של רשימת דוחות באתר. רשימות של דוחות בכל מיקום אחר, או עם כל שם אחר, אינן חוקיות לאתר הזה. בדוגמה רשימת הדוחות שלנו כוללת הצהרה אחת, שמעניקה לאפליקציית ה-Android שלה הרשאה לפתוח קישורים באתר שלה:
    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target" : { "namespace": "android_app", "package_name": "com.example.app",
                   "sha256_cert_fingerprints": ["hash_of_app_certificate"] }
    }]
    רשימת הצהרות תומכת במגוון הצהרות בתוך הסימנים [ ], אך הקובץ לדוגמה מכיל רק הצהרה אחת. sha256_cert_fingerprints היא טביעת האצבע SHA256 של אישור החתימה של האפליקציה. לפרטים נוספים, כדאי לעיין בתיעוד של קישורים לאפליקציות ל-Android.
  2. לאפליקציה ל-Android שמופיעה בהצהרה שלמעלה יש מסנן Intent שמציין את הסכימה, המארח ודפוס הנתיב של כתובות ה-URL שבהן היא רוצה לטפל: במקרה הזה, https://www.example.com. מסנן Intent כולל מאפיין מיוחד android:autoVerify, חדש ל-Android M, שמציין ש-Android צריך לאמת את ההצהרה באתר שמתואר במסנן Intent בזמן התקנת האפליקציה.
  3. משתמש מתקין את האפליקציה. מערכת Android רואה את מסנן Intent עם המאפיין autoVerify ובודקת את נוכחות רשימת ההצהרות באתר שצוין. אם היא קיימת, מערכת Android בודקת אם הקובץ הזה כולל הצהרה המעניקה קישור לטיפול באפליקציה, ומאמתת את האפליקציה מול ההצהרה על ידי גיבוב (hash) של האישור. אם לא יתבצע תשלום, מערכת Android תעביר את כל כוונות https://www.example.com אל האתר example.com.
  4. המשתמש לוחץ על קישור אל https://www.example.com/puppies במכשיר שלו. הקישור יכול להיות בכל מקום: בדפדפן, בהצעת Google Search Appliance או בכל מקום אחר. מערכת Android מעבירה את הכוונה לאפליקציה example.com.
  5. אפליקציית example.com מקבלת את הכוונה ומחליטה לטפל בה, כך שהיא פותחת את דף הגורים באפליקציה. אם מסיבה כלשהי האפליקציה סירבה לטפל בקישור, או אם האפליקציה לא הייתה במכשיר, הקישור היה מועבר לגורם ה-Intent הבא שהוגדר כברירת מחדל, שתואם לדפוס הכוונה הזה (לרוב בדפדפן).

שיקולים ומגבלות חשובים:

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

השלבים הבאים

  1. בודקים אם קיים תיעוד מפורש לתרחיש לדוגמה שלכם.
  2. מידע על יצירת הצהרה.