FIDO2 API برای اندروید

FIDO2 API به برنامه‌های Android اجازه می‌دهد تا اعتبارنامه‌های قوی مبتنی بر کلید عمومی تأیید شده را برای احراز هویت کاربران ایجاد و استفاده کنند. API یک پیاده‌سازی WebAuthn Client را ارائه می‌کند که از استفاده از احراز هویت رومینگ BLE، NFC و USB (کلیدهای امنیتی) و همچنین یک تأییدکننده پلتفرم پشتیبانی می‌کند که به کاربر اجازه می‌دهد با استفاده از اثر انگشت یا قفل صفحه خود احراز هویت کند.

ادغام

نقطه ورود FIDO2 API Fido2ApiClient است.

API از دو عملیات پشتیبانی می کند:

  • زمانی که کاربر یک احراز هویت را با یک حساب مرتبط می‌کند، ثبت‌نام یک‌بار برای هر احراز هویت انجام می‌شود.
  • هر زمان که طرف متکی بخواهد یک کاربر را احراز هویت کند، امضا انجام می شود.

هر دو ثبت نام و امضا نیاز به تعامل کاربر دارند.

یک نمونه برنامه کاربردی نشان دهنده استفاده از API را می توان در https://github.com/android/identity-samples/tree/main/Fido2 پیدا کرد.

قابلیت همکاری با وب سایت شما

ساده است که به کاربران اجازه دهید به طور یکپارچه اعتبارنامه ها را در وب سایت و برنامه اندروید شما به اشتراک بگذارند. برای انجام این کار، از پیوندهای دارایی دیجیتال استفاده کنید. می‌توانید با میزبانی فایل JSON پیوندهای دارایی دیجیتال در وب‌سایت خود، و افزودن پیوندی به فایل پیوند دارایی دیجیتال به مانیفست برنامه خود، ارتباط خود را اعلام کنید.

برای مثال، اگر می‌خواهید 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 را برای بارگیری مشخص می‌کند. شما باید از هرگونه آپستروف و علامت نقل قولی که در رشته استفاده می کنید فرار کنید. مثلا:

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

برای کسب اطلاعات بیشتر در مورد مرتبط کردن برنامه و وب سایت خود، SmartLock for Passwords در اسناد Android را بخوانید.