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 بیابید.
مرحله 2. در برنامه Android به assetlinks.json
پیوند دهید
در برنامه 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 را بخوانید.