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

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

ادغام

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

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

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

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

یک نمونه برنامه کاربردی که استفاده از API را نشان می‌دهد در https://github.com/android/security-samples/tree/master/Fido یافت می‌شود.

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

ساده است که به کاربران اجازه دهید به طور یکپارچه اعتبارنامه ها را در وب سایت و برنامه اندروید شما به اشتراک بگذارند. برای انجام این کار، از پیوندهای دارایی دیجیتال استفاده کنید . می‌توانید با میزبانی فایل 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 را بخوانید.

،

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

ادغام

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

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

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

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

یک نمونه برنامه کاربردی که استفاده از API را نشان می‌دهد در https://github.com/android/security-samples/tree/master/Fido یافت می‌شود.

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

ساده است که به کاربران اجازه دهید به طور یکپارچه اعتبارنامه ها را در وب سایت و برنامه اندروید شما به اشتراک بگذارند. برای انجام این کار، از پیوندهای دارایی دیجیتال استفاده کنید . می‌توانید با میزبانی فایل 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 را بخوانید.