כדי לשפר את נוחות המשתמשים, כדאי להפעיל שיתוף חלק של פרטי הכניסה בין האפליקציות והאתרים שלכם בפלטפורמות שונות. כשמספר אתרים ואפליקציות ל-Android משתפים צד לקוח לניהול חשבונות, התכונה הזו מאפשרת למשתמשים לשמור את פרטי הכניסה פעם אחת ולהציע אותם באופן אוטומטי בכל אתר מקושר או באפליקציה ל-Android.
שיטות מומלצות
כדי שחוויית המשתמש ואבטחה יהיו אופטימליות, כדאי להטמיע שיתוף חלק של פרטי כניסה בנקודות המגע הבאות:
- טופס כניסה: מפעילים מילוי אוטומטי של פרטי הכניסה.
- טופס הרשמה: אחסון מאובטח של פרטי כניסה חדשים לשימוש בפלטפורמות שונות.
- טופס לשינוי הסיסמה: סנכרון עדכוני הסיסמאות בכל הפלטפורמות.
- טופס לאיפוס סיסמה: מאפשר איפוס סיסמה יחיד לעדכון כל הפלטפורמות.
- דומיינים של Webview: אפשר להרחיב את שיתוף פרטי הכניסה לדומיינים של Webview באפליקציה שמטפלים בניהול החשבון (טפסים של כניסה, הרשמה, שינוי סיסמה או איפוס סיסמה של המארח).
- אפליקציות ל-Android
הגישה הזו יוצרת מערכת מאוחדת לניהול פרטי כניסה, שמשפרת גם את הנוחות וגם את האבטחה של המשתמשים.
כשאתם מתכננים אתרים לניהול חשבונות, מומלץ לפעול בהתאם לשיטות המומלצות הבאות לאתרים לניהול חשבונות:
- מעצבים את טופס ההרשמה בהתאם לשיטות המומלצות
- עיצוב טופס הכניסה בהתאם לשיטות המומלצות
- הוספת כתובת URL ידועה לשינוי סיסמאות
כשאתם מתכננים אפליקציות ל-Android, מומלץ לשלב את האפליקציה עם Android Credential Manager.
דרישות מוקדמות
לפני שמגדירים שיתוף פרטי כניסה מאפשר שימוש בלי הפרעות, צריך לוודא שיש לכם את הפריטים הבאים לכל פלטפורמה:
לכל אפליקציה ל-Android:
- מזהה האפליקציה ל-Android, כפי שמוצהר בקובץ
build.gradle
של האפליקציה. - טביעות האצבע מסוג SHA256 של אישור החתימה.
- (מומלץ) כניסת משתמשים שמופעלת באמצעות Credential Manager API.
לכל אתר:
- יכולת לפרסם קובץ
/.well-known/assetlinks.json
בכל דומיין רלוונטי, בהתאם לתחביר של Digital Asset Links (DAL). - כל הדומיינים לניהול החשבון (כניסה, הרשמה, שינוי סיסמה או טפסים לאיפוס סיסמה) חייבים להיות נגישים באמצעות HTTPS.
הפעלת שיתוף חלק של פרטי הכניסה בין אפליקציות לאתרים ב-Android
כדי להגדיר שיתוף חלקי של פרטי הכניסה בין אפליקציות לאתרים, צריך ליצור ולפרסם רשימות הצהרות של קישורי נכסים דיגיטליים שמצהירות על הישויות (אתרים או אפליקציות ל-Android) שמותר להן לשתף את פרטי הכניסה.
כדי להצהיר על קשר של שיתוף פרטי כניסה:
יוצרים קובץ
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
יכול להיות רק דומיין בסיסי: לא ניתן להגביל שיוך אפליקציה לספריית משנה ספציפית. אין לכלול נתיב בכתובת ה-URL, למשל קו נטוי בסוף.תת-דומיינים לא נחשבים כתואם: כלומר, אם מציינים את
domain
כ-www.example.com, הדומיין www.counter.example.com לא משויך לאפליקציה.השדות הבאים מזהים אפליקציה ל-Android:
מרחב שמות
android_app
package_name
שם החבילה שצוין במניפסט של האפליקציה. לדוגמה, com.example.android
sha256_cert_fingerprints
טביעות האצבעות מסוג SHA256 באישור החתימה של האפליקציה.
מארחים את קובץ ה-JSON של Digital Asset Links במיקום הבא בדומיינים של הכניסה:
https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json
, כאשרDOMAIN
הוא FQDN, ו-OPTIONAL_PORT
צריך להימחק כשמשתמשים ביציאה 443 ל-HTTPS.כדי להצהיר על השיוך באפליקציה ל-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
מאפשר לשנות הצהרות בלי לפרסם גרסה חדשה של האפליקציה.כדי להפנות להצהרה במניפסט, מוסיפים את השורה הבאה לקובץ
AndroidManifest.xml
של האפליקציה בקטע<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
פרסום הגרסה החדשה של אפליקציית Android במסוף הפיתוח של Google Play
אחרי ביצוע השלבים האלה, תהיה לכם אפשרות לשתף את פרטי הכניסה בצורה חלקה בין האתר לאפליקציה ל-Android.
שימו לב שזו לא הדרך התקינה היחידה להגדיר DAL לשיתוף פרטי כניסה, אבל הגישה הזו מפשטת את התהליך העתידי של הוספת ישויות חדשות לרשת לשיתוף חלק של פרטי כניסה, מקדמת שימוש חוזר בקוד ומצמצמת את הסיכון לשגיאות במהלך עדכונים.