ה-API ל-FIDO2 מאפשר לאפליקציות ל-Android ליצור פרטי כניסה מבוססי מפתח ציבורי חזקים מאומתים ולהשתמש בהם למטרות אימות משתמשים. ה-API מספק הטמעה של לקוח WebAuthn, שתומכת בשימוש במאמתים (מפתחות אבטחה) של BLE, NFC ו-USB ניידים, וגם במאמת פלטפורמה שמאפשר למשתמש לבצע אימות באמצעות טביעת אצבע או נעילת מסך.
שילוב
נקודת הכניסה של FIDO2 API היא Fido2ApiClient.
ה-API תומך בשתי פעולות:
- רישום מתבצע פעם אחת לכל מאמת לכל חשבון, כשהמשתמש משייך מאמת לחשבון.
- החתימה מתבצעת בכל פעם שצד המשתמש המבוסס רוצה לאמת משתמש.
גם ההרשמה וגם החתימה מחייבות אינטראקציה של המשתמש.
אפליקציה לדוגמה שממחישה את השימוש ב-API זמינה בכתובת https://github.com/android/identity-samples/tree/main/Fido2.
יכולת פעולה הדדית עם האתר שלכם
קל לאפשר למשתמשים לשתף פרטי כניסה בצורה חלקה באתר ובאפליקציה ל-Android. כדי לעשות זאת, אפשר להשתמש בקישורי Digital Asset Links. כדי להצהיר על שיוך, צריך לארח באתר קובץ JSON עם Digital Asset Links ולהוסיף קישור לקובץ Digital Asset Link למניפסט של האפליקציה.
לדוגמה, אם רוצים לשייך את https://example.com
לאפליקציה ל-Android com.example.android
, צריך לבצע את 3 השלבים הבאים:
שלב 1. אירוח assetlinks.json
בדומיין שלכם
יוצרים קובץ JSON כזה ומארחים אותו בכתובת https://example.com/.well-known/assetlinks.json
.
[
{
"relation" : [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target" : {
"namespace" : "web",
"site" : "https://example.com"
}
},
{
"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" : [
"DE:AD:BE:EF"
]
}
}
]
חשוב לוודא שאפשר לסרוק אותו מ-Google ושמוצגת לו כותרת HTTP Content-Type: application/json
.
sha256_cert_fingerprints
הוא טביעות האצבע מסוג SHA256 של אישור החתימה של האפליקציה.
פרטים נוספים זמינים במסמכי התיעוד של קישורים לאפליקציות ל-Android.
שלב 2. קישור אל assetlinks.json
באפליקציה ל-Android
באפליקציה ל-Android, מוסיפים את השורה הבאה לקובץ המניפסט בקטע <application>
:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
שלב 3. הוספת משאב מחרוזת asset_statements
לקובץ strings.xml
המחרוזת asset_statements
היא אובייקט JSON שמציין את קובצי assetlinks.json
שרוצים לטעון. חובה לסמן בתו בריחה (escape) את כל האפוסטרופוסים והמירכאות שבהם אתם משתמשים במחרוזת. לדוגמה:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
מידע נוסף על שיוך האפליקציה לאתר זמין במסמכי העזרה של SmartLock לסיסמאות ב-Android.