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

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

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

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

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

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

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

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

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