Kimlik Bilgisi Yöneticisi - Sahip API'si, Android uygulamalarının dijital kimlik bilgilerini doğrulayıcılara yönetmesine ve sunmasına olanak tanır.
Başlayın
Credential Manager - Holder API'yi kullanmak için uygulamanızın modülünü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
Cüzdanın, kimlik bilgisi yöneticisinin filtreleyebilmesi ve istek geldiğinde kimlik bilgisi seçicide gösterebilmesi için kimlik bilgisi meta verilerini kaydetmesi gerekir.

Kimlik Bilgisi Yöneticisi Seçici kullanıcı arayüzü
Bu meta verilerin biçimi RegisterCredentialsRequest
içine aktarılır.
[RegistryManager][1]
oluşturun ve kimlik bilgilerini kaydedin:
Bu örnekte, meta veriler kimlik bilgisi girişlerinin bulunduğu bir veritabanından derlenir. Uygulama yüklendiğinde meta verileri kaydeden örnek cüzdanımızda bir referans bulabilirsiniz. Gelecekte, kimlik bilgisi veritabanı oluşturma Jetpack API'si tarafından desteklenecektir. Bu noktada, kimlik bilgisi meta verilerini iyi tanımlanmış veri yapıları olarak kaydedebilirsiniz.
Kayıt, cihaz yeniden başlatıldığında da kalır. Aynı kimlik ve türdeki aynı kayıt defterinin yeniden kaydedilmesi, önceki kayıt defteri 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 bağlı değildir. Meta veri kayıt defterini opak bir blob olarak ele alır ve içeriğini doğrulamaz veya kontrol etmez. Bu nedenle, cüzdanın bir eşleştirici sağlaması gerekir. Bu eşleştirici, cüzdanın kendi verilerini işleyebilen ve gelen bir isteğe göre görüntüleme meta verilerini oluşturabilen çalıştırılabilir bir ikilidir. Kimlik bilgisi yöneticisi, eşleştiriciyi ağ veya disk erişimi olmayan bir sandbox ortamında çalıştırır. Böylece, kullanıcı arayüzü kullanıcıya oluşturulmadan önce cüzdana hiçbir bilgi sızmaz.
Kimlik Bilgisi Yöneticisi API'si, günümüzde OpenID4VP olan popüler protokoller için eşleştiriciler sağlar. Henüz resmi olarak yayınlanmadığı için şimdilik OpenID4VP protokolü için örnek eşleştiricimizi kullanın.
Seçili bir kimlik bilgisini kullanma
Ardından, cüzdanın kullanıcı tarafından bir kimlik bilgisi seçildiğinde ne yapması gerektiğini belirlemesi 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 amaç, doğrulayıcı isteğini ve PendingIntentHandler.retrieveProviderGetCredentialRequest
işleviyle çıkarılabilen çağırma kaynağını içerir. API, verilen 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 bilgiyi
getCallingAppInfo
ile alabilirsiniz. - Seçilen kimlik bilgisi. Kullanıcının hangi adayı seçtiğiyle ilgili bilgileri
selectedEntryId
uzantı yöntemi aracılığıyla alabilirsiniz. Bu yöntem, kaydettiğiniz kimlik bilgisi kimliğiyle eşleşir. - Doğrulayıcının yaptığı özel istekler. Bunu
getCredentialOptions
yönteminden alabilirsiniz. Bu durumda, Dijital Yeterlilik Belgesi isteğini içeren birGetDigitalCredentialOption
görmeyi beklemelisiniz.
Doğrulayan taraf, genellikle dijital kimlik bilgisi sunma isteğinde bulunur. 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)
}
}
Bunun bir örneğini örnek cüzdanımızda görebilirsiniz.
Cüzdan kullanıcı arayüzünü oluşturma
Kimlik bilgisi seçildikten sonra cüzdan çağrılır ve kullanıcı, cüzdanın kullanıcı arayüzünde yönlendirilir. Örnekte bu, biyometrik istem olarak gösterilmiştir.
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 benzer şekilde kimlik bilgisi istisnası da gönderebilirsiniz:
PendingIntentHandler.setGetCredentialException(
resultData,
GetCredentialUnknownException() // Configure the proper exception
)
setResult(RESULT_OK, resultData)
finish()
Bağlam içinde kimlik bilgisi yanıtının nasıl döndürüleceğine dair bir örnek için örnek uygulamaya bakın.