Android için FIDO2 API

FIDO2 API, Android uygulamalarının kullanıcıların kimliğini doğrulamak amacıyla güçlü ve doğrulanmış ortak anahtar tabanlı kimlik bilgileri oluşturmasına ve kullanmasına olanak tanır. API; BDE, NFC ve USB dolaşım kimlik doğrulayıcılarının (güvenlik anahtarları) kullanılmasını destekleyen bir WebAuthn İstemcisi uygulamasının yanı sıra, kullanıcının parmak izini veya ekran kilidini kullanarak kimlik doğrulaması yapmasına olanak tanıyan bir platform kimlik doğrulayıcı sunar.

Entegrasyon

FIDO2 API giriş noktası Fido2ApiClient'tır.

API iki işlemi destekler:

  • Kullanıcı, kimlik doğrulayıcıyı bir hesapla ilişkilendirdiğinde, kayıt işlemi her hesap için kimlik doğrulayıcı başına bir kez yapılır.
  • İmzalama işlemi, bağlı taraf bir kullanıcının kimliğini doğrulamak istediğinde gerçekleştirilir.

Hem kayıt hem de imzalama için kullanıcı etkileşimi gerekir.

API kullanımını gösteren örnek bir uygulamayı https://github.com/android/identity-samples/tree/main/Fido2 adresinde bulabilirsiniz.

Web sitenizle birlikte çalışabilirlik

Kullanıcıların web siteniz ve Android uygulamanız genelinde kimlik bilgilerini sorunsuz bir şekilde paylaşmasına izin vermek oldukça basittir. Bunu yapmak için Digital Asset Links'ten yararlanın. Web sitenizde bir Digital Asset Link JSON dosyası barındırarak ve uygulamanızın manifest dosyasına Digital Asset Link dosyasının bağlantısını ekleyerek ilişkilendirmeleri beyan edebilirsiniz.

Örneğin, https://example.com uygulamasını bir Android uygulamasıyla com.example.android ilişkilendirmek istiyorsanız aşağıdaki 3 adımı uygulamanız gerekir:

1. Adım: assetlinks.json ürününü alanınızda barındırın

Buna benzer bir JSON dosyası oluşturun ve https://example.com/.well-known/assetlinks.json adresinde barındırın.

[
  {
    "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'dan taranabilir olduğundan ve Content-Type: application/json HTTP üst bilgisi ile sunulduğundan emin olun.

sha256_cert_fingerprints, uygulamanızın imzalama sertifikasının SHA256 parmak izleridir. Android Uygulama Bağlantıları dokümanlarında daha fazla bilgi bulabilirsiniz.

Android uygulamanızda, <application> altındaki manifest dosyasına şu satırı ekleyin:

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

3. adım: string.xml dosyasına bir asset_statements dize kaynağı ekleyin

asset_statements dizesi, yüklenecek assetlinks.json dosyalarını belirten bir JSON nesnesidir. Dizede kullandığınız kesme ve tırnak işaretlerinden kaçınmanız gerekir. Örneğin:

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

Uygulamanızı ve web sitenizi ilişkilendirme hakkında daha fazla bilgi edinmek için Android'de Şifreler için SmartLock belgelerini okuyun.