איך משתפים את פרטי הכניסה בצורה חלקה באפליקציות ובאתרים ל-Android

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

יש שתי שיטות נתמכות להגדרת שיתוף פרטי הכניסה:

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

שיטות מומלצות

כדי לשפר את חוויית המשתמש ואת האבטחה, כדאי להטמיע שיתוף חלק של פרטי הכניסה בנקודות המגע הבאות:

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

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

כשאתם מתכננים אתרים לניהול חשבונות, מומלץ לפעול בהתאם לשיטות המומלצות הבאות לאתרים לניהול חשבונות:

כשאתם מתכננים אפליקציות ל-Android, מומלץ לשלב את האפליקציה עם Android Credential Manager.

הגדרת שיתוף פרטי הכניסה באמצעות Play Console

עכשיו אפשר להפעיל שיתוף מאובטח של פרטי הכניסה ישירות מ-Play Console בלי לפרסם גרסה חדשה של אפליקציית Android. השיטה הזו מפשטת את התהליך על ידי ניהול ההגדרות של שיתוף פרטי הכניסה דרך הממשק של Play Console.

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

לפני שמגדירים שיתוף פרטי כניסה באמצעות Play Console, צריך לוודא שיש לכם:

  • ההרשאות הנדרשות ב-Play Console כדי לגשת לקטע קישורי עומק ולקטע הגדרת האפליקציה. אם אתם לא הבעלים של החשבון, עליכם לבקש מהאדמין ב-Play Console להעניק לכם את הגישה המתאימה.
  • יכולת לפרסם קובץ /.well-known/assetlinks.json בכל דומיין רלוונטי, בהתאם לתחביר של Digital Asset Links‏ (DAL).

הפעלת שיתוף של פרטי כניסה בדומיין חדש

כדי להגדיר שיתוף מאובטח של פרטי כניסה ב-Play Console לדומיין חדש, פועלים לפי השלבים הבאים:

  1. פותחים את Play Console ועוברים לדף קישורי עומק (הגדלת מספר המשתמשים > קישורי עומק).
  2. בכרטיסייה App configuration, לוחצים על Add domain.
  3. מזינים את הדומיין של האתר.
  4. מפעילים את המתג הפעלת שיתוף של פרטי כניסה.
  5. מעתיקים את קובץ ה-JSON שנוצר ומפרסמים אותו במיקום שצוין (https://YOUR_DOMAIN/.well-known/assetlinks.json בהתאם לפרוטוקול), או מוסיפים את המידע הרלוונטי לקובץ assetlinks.json הקיים.
  6. לוחצים על יצירת שיוך לאתר.

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

הפעלת שיתוף של פרטי כניסה לדומיין קיים

כדי להגדיר שיתוף מאובטח של פרטי כניסה ב-Play Console לדומיין קיים, פועלים לפי השלבים הבאים:

  1. בוחרים בכרטיסייה הגדרת האפליקציה.
  2. בקטע Domains (דומיינים), בקטע App configuration (הגדרת האפליקציה), לוחצים על Turn on (הפעלה) בעמודה Credential sharing (שיתוף פרטי כניסה).
  3. מעתיקים את קובץ ה-JSON שנוצר ומפרסמים אותו במיקום שצוין (או מוסיפים את הפרטים הרלוונטיים לקובץ assetlinks.json הקיים).
  4. לוחצים על הפעלת שיתוף של פרטי כניסה.

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

הגדרת שיתוף פרטי כניסה באמצעות קישורי נכסים דיגיטליים (DAL) בלבד

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

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

לפני שמגדירים שיתוף פרטי כניסה מאפשר שימוש בלי הפרעות, צריך לוודא שיש לכם את הפריטים הבאים לכל פלטפורמה:

לכל אפליקציה ל-Android:

לכל אתר:

  • יכולת לפרסם קובץ /.well-known/assetlinks.json בכל דומיין רלוונטי, בהתאם לתחביר של Digital Asset Links‏ (DAL).
  • כל הדומיינים לניהול החשבון (דפי כניסה, הרשמה, שינוי סיסמה או טפסים לאיפוס סיסמה) חייבים להיות נגישים דרך HTTPS.

הפעלת שיתוף חלק של פרטי כניסה בין אפליקציות לאתרים ב-Android

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

כדי להצהיר על קשר של שיתוף פרטי כניסה:

  1. יוצרים קובץ assetlinks.json עם הצהרות שמקשרות לאתר ולאפליקציה ל-Android, בהתאם לתחביר של רשימת ההצהרות של DALs:

    [
      {
        "relation":[
          "delegate_permission/common.get_login_creds"
        ],
        "target":{
          "namespace":"web",
          "site":URL
        }
      },
      {
        "relation":[
          "delegate_permission/common.get_login_creds"
        ],
        "target":{
          "namespace":"android_app",
          "package_name":"APP_ID",
          "sha256_cert_fingerprints":[
            "SHA_HEX_VALUE"
          ]
        }
      }
    ]
    

    כאשר URL היא כתובת ה-URL של האתר,‏ APP_ID הוא מזהה האפליקציה ל-Android ו-SHA_HEX_VALUE היא טביעת האצבע מסוג SHA256 של אישור החתימה של האפליקציה ל-Android.

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

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

    השדות הבאים מזהים אתר:

    namespace

    web

    site

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

    השדה domain חייב להיות מפורט, ו-optional_port חייב להימחק כשמשתמשים ביציאה 443 ל-HTTPS.

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

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

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

    מרחב שמות

    android_app

    package_name

    שם החבילה שמוצהר במניפסט של האפליקציה. לדוגמה, com.example.android

    sha256_cert_fingerprints

    טביעות האצבע מסוג SHA256 של אישור החתימה של האפליקציה.

  2. מארחים את קובץ ה-JSON של Digital Asset Links במיקום הבא בדומיינים של הכניסה: https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json, כאשר DOMAIN הוא FQDN, ו-OPTIONAL_PORT צריך להשמיט כשמשתמשים ביציאה 443 ל-HTTPS.

  3. כדי להצהיר על השיוך באפליקציה ל-Android, מטמיעים הצהרה בקובץ res/values/strings.xml של האפליקציה ל-Android שמקשרת לרשימה של ההצהרות שיצרתם בשלב 1. מוסיפים אובייקט שמציין את קובצי ה-assetlinks.json שרוצים לטעון. לדוגמה:

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

    מחליפים את DOMAIN ו-OPTIONAL_PORT (צריך להשמיט אותם כשמשתמשים ביציאה 443 ל-HTTPS) – לדוגמה https://www.example.com. צריך להשתמש באסימון בריחה (escape) לכל סימני האפוסטרופיס והמירכאות שבשרשור.

    אפשר גם להוסיף קטע JSON לקובץ strings.xml, כפי שמתואר במסמכי העזרה של DALs, אבל שימוש בהצהרה include מאפשר לשנות הצהרות בלי לפרסם גרסה חדשה של האפליקציה.

  4. כדי להפנות להצהרה במניפסט, מוסיפים את השורה הבאה לקובץ AndroidManifest.xml של האפליקציה בקטע <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  5. פרסום הגרסה החדשה של אפליקציית Android במסוף הפיתוח של Google Play

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

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