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

אם באפליקציה שבה נעשה שימוש ב-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 של קובץ Digital Assets Link צריך להיות 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 לסיסמאות ושולחים אותו כדי לציין שביצעתם את התהליך. Google בודקת מדי פעם אם הקשרים שנשלחו באמצעות הטופס אכן פועלים, ועשויה ליצור איתכם קשר אם יהיו בעיות.

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

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

כדי לשייך כמה אפליקציות לאתר מסוים, אפשר לציין כל אפליקציה בקובץ הקישור לנכסים דיגיטליים. לדוגמה, כדי לשייך את האפליקציה 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>
    

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

אפשר לשייך אפליקציות לכמה אתרים על ידי ציון של כל אתר בקובץ הקישור לנכסים דיגיטליים ואירוח הקובץ בכל אתר. לדוגמה, כדי לשייך את האפליקציות 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, צריך לכלול את הקובץ הראשי של קישורים לנכסים דיגיטליים:

[{
  "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>