Kimlik Bilgisi Yöneticisi - Holder API, Android uygulamalarının dijital kimlik bilgilerini yönetmesine ve doğrulayıcılara sunmasına olanak tanır.
Başlayın
Credential Manager - Holder API'yi kullanmak için uygulama modülünüzün derleme komut dosyasına aşağıdaki bağımlılıkları ekleyin:
// In your app module's build.gradle:
dependencies {
implementation(libs.androidx.registry.provider)
implementation(libs.androidx.registry.provider.play.services)
}
// In libs.versions.toml:
registryDigitalCredentials = "1.0.0-alpha01"
androidx-registry-provider = { module = "androidx.credentials.registry:registry-provider", version.ref = "registryDigitalCredentials" }
androidx-registry-provider-play-services = { module = "androidx.credentials.registry:registry-provider-play-services", version.ref = "registryDigitalCredentials" }
Kimlik bilgilerini Kimlik Bilgisi Yöneticisi'ne kaydetme
Kimlik Bilgisi Yöneticisi'nin istek geldiğinde kimlik bilgisi seçicide filtreleyip görüntüleyebilmesi için cüzdanların kimlik bilgisi meta verilerini kaydetmesi gerekir.

Kimlik Bilgisi Yöneticisi Seçici kullanıcı arayüzü
Bu meta verilerin biçimi bir RegisterCredentialsRequest
öğesine iletilir.
Bir [RegistryManager][1]
oluşturun ve kimlik bilgilerini kaydedin:
Bu örnekte meta veriler, kimlik bilgileri girişlerinden oluşan bir veritabanından derlenir. Uygulama yüklenirken meta verileri kaydeden örnek cüzdanımızda bir referans bulabilirsiniz. Gelecekte Jetpack API, kimlik bilgisi veritabanı oluşturmayı destekleyecektir. Bu noktada, kimlik bilgisi meta verilerini iyi tanımlanmış veri yapıları olarak kaydedebilirsiniz.
Kayıt defteri, cihaz yeniden başlatıldığında da devam eder. Aynı kimlik ve türdeki kayıt otoritesini yeniden kaydettiğinizde önceki kayıt otoritesi kaydının üzerine yazılır. Bu nedenle, yalnızca kimlik bilgisi verileriniz değiştiğinde yeniden kaydolmanız gerekir.
İsteğe bağlı: Eşleştirici oluşturma
Kimlik Bilgisi Yöneticisi, protokole karşı değildir; meta veri kayıt defterini opak bir blob olarak değerlendirir ve içeriğini doğrulamaz veya kontrol etmez. Bu nedenle, cüzdanın kendi verilerini işleyebilecek ve gelen bir isteğe göre görüntülenen meta verileri oluşturabilecek bir eşleştirici (çalıştırılabilir bir ikili dosya) sağlaması gerekir. Kimlik Bilgisi Yöneticisi, eşleştiriciyi ağ veya disk erişimi olmayan bir korumalı ortamda çalıştırır. Böylece, kullanıcı arayüzü kullanıcıya sunulmadan önce cüzdana hiçbir şey sızmaz.
Kimlik Bilgisi Yöneticisi API'si, popüler protokoller (şu anda OpenID4VP) için eşleştiriciler sağlar. Henüz resmi olarak yayınlanmadığı için şimdilik OpenID4VP v24 protokolü için örnek eşleştiricimizi kullanın.
Seçilen kimlik bilgilerini işleme
Ardından, kullanıcı tarafından bir kimlik bilgisi seçildiğinde cüzdanın bu durumu ele alması gerekir. androidx.credentials.registry.provider.action.GET_CREDENTIAL
intent filtresini dinleyen bir etkinlik tanımlayabilirsiniz.
Örnek cüzdanımızda bu prosedür gösterilmektedir.
Etkinliği başlatan intent, doğrulayıcı isteğini ve çağıran kaynağı içerir. Bu bilgiler PendingIntentHandler.retrieveProviderGetCredentialRequest
işleviyle ayıklanabilir. API, belirli doğrulayıcı isteğiyle ilişkili tüm bilgileri içeren bir ProviderGetCredentialRequest
döndürür. Üç temel bileşen vardır:
- İsteği gönderen uygulama. Bu adresi
getCallingAppInfo
ile alabilirsiniz. - Seçilen kimlik bilgisi. Kullanıcının hangi adayı seçtiği hakkında bilgi edinmek için
selectedEntryId
uzantı yöntemini kullanabilirsiniz. Bu yöntem, kaydettiğiniz kimlik bilgisi kimliğiyle eşleşir. - Doğrulayıcının yaptığı belirli istekler. Bu değeri
getCredentialOptions
yönteminden alabilirsiniz. Bu durumda, bu listede Dijital Kimlik Bilgileri isteğini içeren birGetDigitalCredentialOption
bulmanız gerekir.
Doğrulayıcı genellikle dijital kimlik bilgisi sunma isteği gönderir. Bu isteği aşağıdaki örnek kodla işleyebilirsiniz:
request.credentialOptions.forEach { option ->
if (option is GetDigitalCredentialOption) {
Log.i(TAG, "Got DC request: ${option.requestJson}")
processRequest(option.requestJson)
}
}
Buna örnek olarak örnek cüzdanımızdaki görseli inceleyebilirsiniz.
Cüzdan kullanıcı arayüzünü oluşturma
Kimlik bilgisi seçildikten sonra cüzdan çağrılır ve kullanıcı, kullanıcı arayüzüne yönlendirilir. Örnekte bu bir biyometrik istem'dir.
Kimlik bilgisi yanıtını döndürme
Cüzdan sonucu geri göndermeye hazır olduğunda, kimlik bilgisi yanıtıyla etkinliği tamamlayarak bunu yapabilirsiniz:
PendingIntentHandler.setGetCredentialResponse(
resultData,
GetCredentialResponse(DigitalCredential(response.responseJson))
)
setResult(RESULT_OK, resultData)
finish()
Bir istisna varsa kimlik bilgisi istisnasını da benzer şekilde gönderebilirsiniz:
PendingIntentHandler.setGetCredentialException(
resultData,
GetCredentialUnknownException() // Configure the proper exception
)
setResult(RESULT_OK, resultData)
finish()
Kimlik bilgisi yanıtının bağlam içinde nasıl döndürüleceğine dair bir örnek için örnek uygulamaya bakın.