כדי להטמיע חוויית כניסה חלקה באמצעות Credential Manager באפליקציה ובאתר, צריך קודם ליצור ביניהם שיוך מאובטח. הפעולה הזו מתבצעת באמצעות קובצי Digital Asset Links, שמאפשרים לספקי פרטי כניסה לשתף פרטי כניסה באופן מאובטח בין האפליקציה לאתר. לדוגמה, אתר יכול להצהיר שהוא משתף פרטי כניסה עם אפליקציית Android או עם אתר אחר באמצעות קובץ Digital Asset Links. השימוש ב-Digital Asset Links מאפשר למשתמשים ליהנות מחוויית כניסה חלקה ולהשתמש באותם פרטי כניסה שמורים באפליקציות ובאתרים משויכים.
הגדרת Digital Asset Links בין האפליקציה לאתר
כדי לאפשר לספקי פרטי כניסה להשתמש במפתחות גישה ובסיסמאות באופן נפוץ באפליקציה ובאתר, צריך ליצור קובץ Digital Asset Links לאפליקציה באמצעות השלבים הבאים:
1. יצירת קובץ JSON של Digital Asset Links
יוצרים קובץ בשם assetlinks.json עם המבנה הבא:
[
{
"relation" : [
"<array_of_permissions_granted_to_app>"
],
"target" : {
"namespace" : "android_app",
"package_name" : "<android_application_package_name>",
"sha256_cert_fingerprints" : [
"<sha256_certificate_fingerprint_of_signing_key>"
]
}
}
]
relation: מערך של מחרוזת אחת או יותר שמתארות את הקשר שמוצהר. כדי להצהיר שאפליקציות ואתרים חולקים פרטי כניסה, צריך לציין את הקשרים הבאים במערך:
delegate_permission/common.handle_all_urls: הקשר הזה מאפשר להשתמש בקישורי עומק לאפליקציות ל-Android, שמאפשרים לאפליקציית Android לטפל בכל כתובות ה-URL באינטרנט עבור דומיין ספציפי.
delegate_permission/common.get_login_creds: הקשר הזה מאפשר לשתף פרטי כניסה בין האתר שלכם לבין אפליקציית Android.
target: אובייקט שמציין את הנכס שההצהרה חלה עליו.-
target.namespace: מגדירים את הערך הזה ל-android_app. -
target.package_name: מגדירים את הערך הזה לשם החבילה שמוצהר במניפסט של האפליקציה, לדוגמה,com.example.android.
-
sha256_cert_fingerprints: טביעות האצבע מסוג SHA256 של אישור החתימה של האפליקציה. כדי לאחזר את טביעת האצבע מסוג SHA256 של האפליקציה, אפשר לעיין במאמר בנושא הצהרה על שיוכים לאתרים.
דוגמה ליעד באפליקציה:
[
{
"relation" : [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target" : {
"namespace" : "android_app",
"package_name" : "com.example.android",
"sha256_cert_fingerprints" : [
SHA_HEX_VALUE
]
}
}
]
2. אירוח קובץ ה-JSON של Digital Asset Links
צריך לארח את קובץ ה-Digital Asset Links במיקום הבא בדומיין הכניסה לאתר:
```none
https://domain[:optional_port]/.well-known/assetlinks.json
```
לדוגמה, אם הדומיין להתחברות הוא signin.example.com, צריך לארח את הקובץ בכתובת:
https://signin.example.com/.well-known/assetlinks.json.
סוג ה-MIME של קובץ ה-Digital Asset Links צריך להיות JSON. מוודאים שהשרת שולח כותרת Content-Type: application/json בתגובה, עם סטטוס HTTP שמוגדר ל-200.
3. אפשר לאחזר את קובץ Digital Asset Links
צריך לעדכן את המארח כדי לאפשר ל-Google לאחזר את קובץ Digital Asset Links. רוב האתרים מאפשרים לכל סוכן אוטומטי לאחזר קבצים בנתיב /.well-known/, כדי ששירותים אחרים יוכלו לגשת למטא-נתונים בקבצים האלה.
אם יש לכם קובץ robots.txt, צריך לעדכן אותו באופן הבא כדי לאפשר לסורקי אינטרנט לאחזר את /.well-known/assetlinks.json:robots.txt
User-agent: *
Allow: /.well-known/
4. עדכון המניפסט של האפליקציה
בקובץ המניפסט של האפליקציה, מוסיפים את השורות הבאות מתחת ל-<application>:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
5. הגדרת Digital Asset Links לסיסמאות
אם אתם משתמשים במנהל פרטי הכניסה לסיסמאות, אתם צריכים לבצע שלב נוסף כדי להגדיר קישורים לנכסים דיגיטליים.
מוסיפים אובייקט שמציין את הקבצים assetlinks.json לטעינה בקובץ המניפסט. צריך להשתמש בתו בריחה (escape) עם כל הגרשיים והמרכאות שבהם משתמשים במחרוזת, כמו בדוגמה הבאה:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
}]
</string>
הקישור https://signin.example.com/.well-known/assetlinks.json צריך להחזיר תגובה HTTP 200 ולהכיל כותרת Content-Type עם הערך application/json.
האימות נכשל אם התגובה כוללת הפניה אוטומטית מסוג HTTP 301 או 302 או קובץ Content-Type שאינו JSON.
בדוגמה הבאה מוצגת בקשה לדוגמה וכותרות התגובה הצפויות:
> 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
השלבים הבאים
אחרי שמוסיפים את התלות הנדרשת ומגדירים את Digital Asset Links למפתחות גישה, אפשר להשתמש במנהל האישורים כדי להטמיע את שיטות האימות הנתמכות: מפתחות גישה וכניסה באמצעות חשבון Google. כדי להתחיל, מומלץ לעיין במדריכים למפתחים הבאים:
- הגדרת מפתחות גישה באמצעות Credential Manager: כאן מוסבר איך להטמיע מפתחות גישה – שיטה מודרנית ועמידה בפני פישינג לאימות מאובטח וידידותי למשתמש.
- הגדרת כניסה באמצעות חשבון Google באמצעות Credential Manager: שילוב של "כניסה באמצעות חשבון Google" כדי לייעל את הכניסה של משתמשים באמצעות חשבונות Google.
- פתרון בעיות נפוצות בכלי לניהול פרטי הכניסה: כאן מוסבר איך לפתור בעיות נפוצות בכלי לניהול פרטי הכניסה.
- שילוב של אימות ב-Firebase: מאפשר למשתמשים לבצע אימות ב-Firebase באמצעות חשבונות Google שלהם.