FIDO2 API ל-Android

ה-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.

באפליקציה ל-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.