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

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

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

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

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

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

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

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

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

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

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

לכל אתר:

  • יכולת לפרסם קובץ /.well-known/assetlinks.json בכל אחד מהמכשירים המתאימים מופיע בהתאם לתחביר של Digital Asset Links (DALs).
  • כל הדומיינים לניהול החשבון (כניסה, הרשמה, שינוי סיסמה או סיסמה טופסי איפוס) חייבים להיות נגישים באמצעות 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 מידע נוסף על Relation Strings ב-DALs.

    השדה 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:

    מרחב שמות

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

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

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

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

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

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