Yayınlanma tarihi: 4 Eylül 2024, Son güncelleme tarihi: 16 Ekim 2024
Chrome 128'den itibaren Digital Credentials API için kaynak denemesi başlatılıyor. Digital Credentials API, web sitelerinin sürücü belgesi veya dijital cüzdanda depolanan resmi kimlik kartı gibi dijital kimlik bilgileri aracılığıyla kullanıcı hakkındaki doğrulanabilir bilgileri seçmeli olarak istemesine olanak tanıyan yeni bir web platformu API'sidir.
Arka plan
Cihazlara bağlı dijital kimlik bilgileri vermeye başlayan birçok kamu kuruluşu ve özel kuruluş, gerçek dünyada dijital kimliği gerçeğe dönüştürüyor. Örneğin, belirli ABD eyaletlerindeki (ör. Arizona, California, Colorado, Georgia ve Maryland) mobil sürücü belgeleri ve kimlikler artık mobil cihazlarda Google Cüzdan gibi dijital cüzdan uygulamalarına sağlanabilir. Belirli online doğrulamalar için dijital kimlik bilgilerinin kabul edilmesiyle ilgili düzenlemeler de ortaya çıkıyor. eIDAS 2.0 buna örnek gösterilebilir.
Dijital kimlik bilgilerinin özellikleri biçimine bağlıdır ancak genellikle şunları içerir:
- Gelişmiş güvenlik ve gizlilik: Gelişmiş şifreleme ve güçlü kimlik doğrulama yöntemlerinin kullanılması, hassas verilerin korunmasına yardımcı olur ve güvenli erişim sağlar. Örneğin, kimlik bilgisinin sunulması genellikle cüzdan uygulaması üzerinden kullanıcı kimlik doğrulaması ile korunur.
- Seçici açıklama: Bağımlı taraflar (RP), kimlik bilgisinden belirli bilgileri isteyebilir. Bu sayede kullanıcılar, paylaşılan verileri kullanım alanı için gerekenlerle sınırlandırabilir. Örneğin, bir kullanıcının 18 yaşından büyük olup olmadığı, doğum tarihi paylaşılmaksızın paylaşılabilir.
- Birlikte çalışabilirlik: Kimlik bilgileri, farklı sistemler ve ülkeler arasında uyumluluğu sağlayarak uluslararası standartlara uygun olmalı ve sınır ötesi kabulü kolaylaştırmalıdır.
- Doğrulanabilirlik: Paylaşılan kimlik bilgisi verileri, veren tarafından dijital olarak imzalanır. RP, verilerin özgünlüğünü doğrulamak için bu imzayı doğrulayabilir.
Dijital kimlik bilgilerinin doğrulanabilir olması, aşağıdaki gibi kullanım alanlarına olanak tanıyabilir:
- Yaş doğrulaması: Yaş kısıtlaması olan içerik yayınlamadan veya yaş kısıtlaması olan öğeler satın almadan önce kullanıcının yaşını doğrulamak için yaş bilgisi isteyin.
- Kimlik doğrulama: Yasal uygunluk veya sahtekarlığı önleme amacıyla bir kişinin kimliğini doğrulamak için ad ve adres isteğinde bulunun.
- Araç kullanma ayrıcalıklarını kontrol etme: Bir kişinin araç kullanmaya uygunluğunu doğrulama (ör. araba kiralarken).
Web siteleri, çeşitli kullanım alanları için dijital kimlik bilgilerini istemek üzere doğrudan mobil cüzdan uygulamalarıyla (ör. özel URL şemaları kullanarak) iletişim kurmaya başladığından tarayıcılar, bu etkileşimi özel bir API aracılığıyla daha güvenli, kötüye kullanıma karşı dayanıklı ve daha kolay kullanımlı hale getirme fırsatı görüyor.
Dijital Kimlik Bilgileri API'sinin tanıtımı
Dijital Kimlik Bilgileri API'si, RP web sitelerinin cüzdan uygulamalarından dijital kimlik bilgilerinin sunulmasını istemesine olanak tanıyan yeni bir web platformu API'sidir. Bu API, Chrome 128 sürümünden itibaren kaynak deneme sürümü olarak Chrome'da kullanılabilir.
API, protokolden bağımsızdır ve RP'nin gereksinimlerine göre bir protokol belirtmesine olanak tanır. Bir RP istek gönderdiğinde tarayıcı, isteği mobil işletim sistemine gönderir. İşletim sistemi, yüklü cüzdan uygulamalarında eşleşen bir kimlik bilgisi arar. Bu tür bir uygulama bulunursa mobil işletim sistemi kullanıcıdan bir uygulama seçmesini ister ve isteği kullanıcının seçtiği cüzdana gönderir. Cüzdan, yerel kimlik doğrulamasından sonra istenen kimlik bilgisi verilerini içeren bir yanıt döndürür.
Chrome, API'yi ilk olarak Android'deki Chrome'da, aynı cihazdaki cüzdan uygulamalarından kimlik bilgileri istemek için destekleyecektir. Gelecekte, başka bir mobil cihazdan cihazlar arası kimlik bilgisi istemek için Chrome masaüstü kullanımını desteklemeyi planlıyoruz.
Google Cüzdan, kullanıma sunulduğunda Dijital Kimlik Bilgileri API'si ile entegre olacak. Bu sayede belirli işletmeler ve kuruluşlar, Android'deki Chrome üzerinden kullanıcıların kimliklerini online olarak sunmaları için istek başlatabilecek ve şifreleme imzasını inceleyerek aktarılan verilerin gerçekliğini doğrulayabilecek. Programa katılmak için Google Cüzdan'dan dijital kimlikleri kabul etmek istediğinizi belirtmek üzere bu formu doldurun.
Bu API, yakında Google Hesapları tarafından belirli kullanıcıların doğum tarihlerini doğrulamak için de kullanılacaktır. Desteklenen bir ABD eyaletinde ikamet eden kullanıcılar, kimliklerinin diğer ayrıntılarını paylaşmadan yalnızca doğum tarihlerini Google ile sorunsuz bir şekilde paylaşmak için mevcut cüzdan uygulamalarında (Google Cüzdan dahil) sağlanan eyalet kimliklerini veya sürücü belgelerini kullanabilir. Bu sayede kullanıcılar, hesapla ilgili yaş şartlarını gizliliği koruyarak Google'a gösterebilir.
Deneyin
Koşullar:
- Google Play Hizmetleri 23.40 veya sonraki sürümler
- Chrome 128 veya sonraki sürümler
chrome://flags#web-identity-digital-credentials
adresinde işareti etkinleştirin
Dijital Kimlik Bilgileri API'sini denemek için talimatları uygulayın:
- Talimatları uygulayarak demo cüzdan uygulamasını yükleyin.
- Android cihazınıza demo cüzdan uygulamasını indirin. Kaynak kodu, OpenWallet Foundation'ın Identity Credentials (Kimlik Kimlik Bilgileri) deposunda bulunabilir.
- Uygulamayı yüklemek için bir komut
adb install -t <path-to-apk>
çalıştırın.
- IC Wallet uygulamasını başlatın ve bir demo mobil sürücü belgesi (mDL) sağlayın.
- Menü düğmesine dokunup Kendi İmzalı Belge Ekle'yi seçin.
- Chrome 128 veya sonraki sürümleri kullanarak https://digital-credentials.dev adresine gidin.
- Kimlik Bilgisi İste (COPPA4VP) düğmesine basın.
Geliştiricilerin farklı özellikler için kimlik bilgisi istekleri oluşturabileceği bir test web sitesi olan https://digital-credentials.dev adresini kullanan demoya göz atın:
Demo adım adım şu şekilde çalışır:
API'nin işleyiş şekli
Dijital Kimlik Bilgileri API'si, Kimlik Bilgileri Yönetimi API'si'nin temeli üzerine inşa edilmiş ancak bağımsız bir API yüzeyinden (navigator.identity
) oluşturulmuştur. Web sitesi, navigator.identity.get()
numaralı telefonu arayarak bir mobil cüzdan uygulamasında depolanan bir dijital kimlik bilgisini isteyebilir.
// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
signal: controller.signal,
digital: {
providers: [{
protocol: "openid4vp",
request: {
response_type: "vp_token",
nonce: "n-0S6_WzA2Mj",
client_metadata: {...},
presentation_definition: {...}
}
}],
}
});
Temel API yüzeyi, yalnızca "digital"
kimlik bilgisi türünü kabul etmesi dışında navigator.credentials.get()
'e benzer. Dijital kimlik bilgisi türüne, aşağıdaki temel parametrelerle IdentityRequestProvider
içeren bir providers
dizisi ekleyin:
protocol
: Dize içeren bir exchange protokolü belirtin. Kaynak denemesi sırasında geliştirilmekte olan birincil protokol"openid4vp"
'tür.request
: Dijital cüzdan uygulamalarının belirtilen protokol için kabul ettiği parametreleri girin."openid4vp"
için parametreler, W3C Dijital Kimlik Bilgileri API'si için Doğrulanabilir Sunum (OID4VP) OpenID spesifikasyonunda tanımlanır.
OID4VP kullanan dijital kimlik türüne örnek yükü:
{
protocol: 'openid4vp',
request: {
response_type: 'vp_token',
nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
client_metadata: {},
presentation_definition: {
id: 'mDL-request-demo',
input_descriptors: [{
id: "org.iso.18013.5.1.mDL",
format: {
mso_mdoc: {
alg: ["ES256"]
}
},
constraints: {
limit_disclosure: "required",
fields: [
{
path: ["$['org.iso.18013.5.1']['family_name']"],
intent_to_retain: false
}, {
path: ["$['org.iso.18013.5.1']['given_name']"],
intent_to_retain: false
}, {
path: ["$['org.iso.18013.5.1']['age_over_21']"],
intent_to_retain: false
}
]
}
}],
}
}
}
Bu istekle, cihazda mDL'leri olan cüzdanlar aşağıdakileri içeren doğrulanabilir bir kimlik bilgisi grubu sağlar:
- Kullanıcının soyadı.
- Kullanıcının adı.
- Kullanıcının 21 yaşından büyük olup olmadığını belirten bir boole değeri.
Aşağıda örnek bir yanıt yükü verilmiştir:
{
data: '{\n "vp_token": "o2d2ZXJzaW9uYz..."\n}'
id: '',
protocol: 'openid4vp',
type: 'digital'
}
Bu örnekte, kimlik bilgisi "openid4vp"
protokolüyle istenmiştir ve yanıt, data
mülkünde "vp_token"
içerir. Yanıtı nasıl ayrıştıracağınızı ve kimlik bilgilerini nasıl doğrulayacağınızı öğrenmek için lütfen W3C Dijital Kimlik Bilgileri API'si için Doğrulanabilir Sunma (OID4VP) OpenID spesifikasyonuna bakın.
Digital Credentials API, Android'de Chrome'da kaynak denemesi olarak desteklenir. Masaüstü ve iOS'teki Chrome şu anda bu özelliği desteklemiyor. Diğer tarayıcı motorları için aktif görüşmeler W3C Web Incubator Topluluk Grubu aracılığıyla kolaylaştırılmaktadır.
Kaynak denemesine katılma
Geliştirme için Chrome 128 veya sonraki sürümlerde Chrome işaretini chrome://flags#web-identity-digital-credentials
etkinleştirerek Digital Credentials API'yi yerel olarak etkinleştirebilirsiniz.
Bu özellik, kaynak deneme sürümü olarak da kullanılabilir. Kaynak denemeleri, yeni özellikleri denemenize ve kullanılabilirlikleri, pratiklikleri ve etkililikleri hakkında web standartları topluluğuna geri bildirim vermenize olanak tanır. Daha fazla bilgi için Kaynak denemelerini kullanmaya başlama başlıklı makaleyi inceleyin. Bu veya başka bir kaynak denemesine kaydolmak için kayıt sayfasını ziyaret edin.
- Kaynağınız için jeton isteyin.
- Jetonu sayfalarınıza ekleyin. Bunu iki şekilde yapabilirsiniz:
- Her sayfanın başına bir
origin-trial
<meta>
etiketi ekleyin. Örneğin, bu değer şuna benzer:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
- Sunucunuzu yapılandırabiliyorsanız jetonu
Origin-Trial
HTTP üst bilgisi kullanarak da ekleyebilirsiniz. Elde edilen yanıt üstbilgisi şöyle görünmelidir:Origin-Trial: TOKEN_GOES_HERE.
- Her sayfanın başına bir
Geri bildirim
Digital Credentials API ile ilgili geri bildiriminiz varsa özel Chromium sorun izleyicisine gönderin.