FIDO2 API ל-Android

FIDO2 API מאפשר לאפליקציות ל-Android ליצור פרטי כניסה מבוססי-מפתח ציבוריים וחזקים ומאומתים, כדי לאמת משתמשים. ה-API כולל הטמעת WebAuthn Client, שתומכת בשימוש באימותי נדידה (מפתחות אבטחה) מסוג BLE, NFC ו-USB, וגם בשירות לאימות פלטפורמה, שמאפשר למשתמשים לבצע אימות באמצעות טביעת האצבע או נעילת המסך.

שילוב

נקודת הכניסה של FIDO2 API היא Fido2ApiClient.

ממשק ה-API תומך בשתי פעולות:

  • הרישום מתבצע פעם אחת לכל מאמת החשבונות לכל חשבון, כשהמשתמש משייך את מאמת החשבונות לחשבון.
  • חתימה מתבצעת בכל פעם שהצד הנסמך רוצה לאמת משתמש.

ההרשמה והחתימה דורשות אינטראקציה מצד המשתמש.

ניתן למצוא אפליקציה לדוגמה שמדגימה את השימוש ב-API בכתובת https://github.com/android/identity-samples/tree/main/Fido2.

שילוב עם האתר שלכם

קל לאפשר למשתמשים לשתף את פרטי הכניסה בצורה חלקה באתר ובאפליקציה ל-Android. לשם כך, משתמשים בקישורים לנכסים דיגיטליים. אפשר להצהיר על שיוכים על ידי אירוח קובץ 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 לקובץ string.xml

המחרוזת asset_statements היא אובייקט JSON שמציין את הקבצים assetlinks.json שיש לטעון. צריך לצאת מכל גרש או מירכאות שבהם משתמשים במחרוזת. למשל:

<string name="asset_statements" translatable="false">
[{
  \"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>

מידע נוסף על שיוך האפליקציה לאתר זמין במאמר תיעוד של SmartLock לסיסמאות ב-Android.