הפעלה של כניסה אוטומטית לאפליקציות ולאתרים

אם לאפליקציה שבה נעשה שימוש ב-Smart Lock לסיסמאות משותף עם האתר שלכם מסד נתונים של משתמשים, או אם האפליקציה והאתר שלכם משתמשים בספקי כניסה מאוחדים כמו כניסה באמצעות חשבון Google, תוכלו לשייך את האפליקציה לאתר כך שהמשתמשים ישמרו את פרטי הכניסה שלהם פעם אחת, ולאחר מכן ייכנסו אוטומטית גם לאפליקציה וגם לאתר.

כדי לשייך אפליקציה לאתר, צריך להצהיר על שיוכים על ידי אירוח קובץ JSON עם Digital Asset Links באתר והוספת קישור לקובץ Digital Asset Link למניפסט של האפליקציה.

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

דרישות מוקדמות

הדומיין לכניסה של האתר חייב להיות זמין באמצעות HTTPS.

שיוך האפליקציה לאתר שלכם

  1. יוצרים קובץ JSON מסוג Digital Asset Links (קישורים לנכס דיגיטלי).

    לדוגמה, כדי להצהיר שהאתר https://signin.example.com ואפליקציה ל-Android עם שם החבילה com.example יכולים לשתף פרטי כניסה, צריך ליצור קובץ בשם assetlinks.json עם התוכן הבא:

    [{
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://signin.example.com"
      }
     },
     {
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example",
        "sha256_cert_fingerprints": [
          "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
        ]
      }
     }]
    

    השדה relation הוא מערך של מחרוזת אחת או יותר שמתארת את הקשר המוצהר. כדי להצהיר שהאפליקציות והאתרים משתפים את פרטי הכניסה, צריך לציין את המחרוזת delegate_permission/common.get_login_creds.

    השדה target הוא אובייקט שמציין את הנכס שההצהרה חלה עליו. השדות הבאים משמשים לזיהוי האתר:

    namespace web
    site

    כתובת האתר בפורמט https://domain[:optional_port]. לדוגמה: https://www.example.com.

    הערך domain חייב להיות כשיר במלואו, וצריך להשמיט את optional_port כשמשתמשים ביציאה 443 עבור HTTPS.

    יעד site יכול להיות דומיין בסיס בלבד: לא ניתן להגביל שיוך אפליקציה לספריית משנה ספציפית. אין לכלול נתיב בכתובת ה-URL, למשל קו נטוי בסוף.

    תת-דומיינים לא נחשבים תואמים: כלומר, אם מציינים את domain בתור www.example.com, הדומיין www.counter.example.com לא משויך לאפליקציה.

    השדות הבאים מאפשרים לזהות אפליקציה ל-Android:

    namespace android_app
    package_name שם החבילה שמוצהר במניפסט של האפליקציה. לדוגמה, com.example.android
    sha256_cert_fingerprints טביעות האצבע בפורמט SHA256 של אישור החתימה של האפליקציה. אתם יכולים להשתמש בפקודה הבאה כדי ליצור את טביעת האצבע:
    $ keytool -list -v -keystore my-release-key.keystore

    לפרטים נוספים, עיינו בחומר העזר בנושא 'קישורים לנכסים דיגיטליים'.

  2. מארחים את קובץ ה-JSON עם ה-Digital Assets Link במיקום הבא בדומיין הכניסה:

    https://domain[:optional_port]/.well-known/assetlinks.json

    לדוגמה, אם הדומיין לכניסה הוא signin.example.com, מארחים את קובץ ה-JSON ב-https://signin.example.com/.well-known/assetlinks.json.

    סוג ה-MIME של קובץ הקישור לנכסים דיגיטליים צריך להיות JSON. ודאו שהשרת שולח את הכותרת Content-Type: application/json בתגובה.

  3. ודאו שהמארח מאפשר ל-Google לאחזר את קובץ ה-Digital Asset Link. אם יש לכם קובץ robots.txt, הוא חייב לאפשר לסוכן Googlebot לאחזר את /.well-known/assetlinks.json. רוב האתרים יכולים פשוט לאפשר לכל נציג אוטומטי לאחזר קבצים בנתיב /.well-known/, כדי ששירותים אחרים יוכלו לגשת למטא-נתונים בקבצים האלה:

    User-agent: *
    Allow: /.well-known/
    

  4. מצהירים על השיוך באפליקציה ל-Android.

    1. מוסיפים את השורה הבאה לקובץ המניפסט של <application>:

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. צריך להוסיף משאב של מחרוזת asset_statements לקובץ strings.xml. המחרוזת asset_statements היא אובייקט JSON שמציין את הקבצים של assetlinks.json לטעינה. עליך להשתמש בתו בריחה (escape) של כל גרש או מירכאות שבהם משתמשים במחרוזת. לדוגמה:

        <string name="asset_statements" translatable="false">
        [{
          \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
        }]
        </string>
      
        > GET /.well-known/assetlinks.json HTTP/1.1
        > User-Agent: curl/7.35.0
        > Host: signin.example.com
      
        < HTTP/1.1 200 OK
        < Content-Type: application/json
      
  5. מפרסמים את האפליקציה בחנות Google Play. צריך לפרסם אותו בערוץ הציבורי כדי לאסוף שיוכים.

  6. (אופציונלי) ממלאים את טופס השיוך של Smart Lock for passwords ושולחים אותו כדי לציין שביצעתם את התהליך. Google בודקת מדי פעם אם הקשרים שנשלחו באמצעות הטופס אכן פועלים, ועשויה ליצור איתכם קשר במקרה שיהיו בעיות.

בסיום האימות, משתמשי האפליקציה יוכלו לשמור את פרטי הכניסה שלהם באפליקציה או באתר ולהיכנס אוטומטית לשניהם.

דוגמה: שיוך של מספר אפליקציות לאתר

כדי לשייך כמה אפליקציות לאתר מסוים, צריך לציין כל אפליקציה בקובץ Digital Asset Links. לדוגמה, כדי לשייך את האפליקציה com.example ו-com.example.pro לאתר שבכתובת https://signin.example.com/, צריך לציין את שתי האפליקציות בקובץ ה-JSON שמתארח ב-https://signin.example.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

לאחר מכן, מצהירים על השיוך בשתי האפליקציות:

  1. מוסיפים את השורה הבאה לקובץ המניפסט של <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. מוסיפים את משאב המחרוזת הבא לקובץ strings.xml:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>
    

דוגמה: שיוך אפליקציות לכמה אתרים

אפשר לשייך אפליקציות למספר אתרים על ידי ציון כל אחד מהאתרים בקובץ Digital Assets Link ואירוח הקובץ בכל אחד מהאתרים. לדוגמה, כדי לשייך את האפליקציות com.example ו-com.example.pro לאתר שבכתובת https://signin.example.com/ ו-https://m.example.com/, צריך לציין גם את האפליקציות וגם את שני האתרים בקובץ ה-JSON שמתארח ב-https://signin.example.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://m.example.com"
  },
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

לאחר מכן, בקובץ ה-JSON שמתארח ב-https://m.example.com/.well-known/assetlinks.json, כוללים את הקובץ הראשי מסוג Digital Asset Links:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

לסיום, מצהירים על השיוך בשתי האפליקציות:

  1. מוסיפים את השורה הבאה לקובץ המניפסט של <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. מוסיפים את משאב המחרוזת הבא לקובץ strings.xml:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>