Digital Credentials API kaynak denemesiyle tanışın

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.

Google Cüzdan'da mobil sürücü belgesi
Google Cüzdan'da mobil sürücü belgesi.

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.

Tarayıcı, cüzdan ve bağlı taraf arasındaki iletişim şeması.

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:

  1. 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.
  2. 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.
  3. Chrome 128 veya sonraki sürümleri kullanarak https://digital-credentials.dev adresine gidin.
  4. 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:

1. Kullanıcı, güvenen tarafın web sitesine yönlendirilir ve doğrulanmış soyadını, adını ve 21 yaşından büyük olduğunu gösteren bir yaş güvencesi sunması istenir.
2. Tarayıcı, kullanıcının bu web sitesiyle dijital kimlik bilgisi paylaşmak isteyip istemediğini onaylar.
3. İşletim sistemi, istenen bilgileri ve kullanıcının isteği seçip tamamlaması için isteği eşleştirebilecek uygun kimlik bilgilerini gösterir.
4. Cüzdan, ekran kilidi ile kullanıcının kimliğini yerel olarak doğrular.

5. İstenen dijital kimlik bilgisi, güvenen tarafın web sitesine iletilir.

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:

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.

  1. Kaynağınız için jeton isteyin.
  2. 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.

Geri bildirim

Digital Credentials API ile ilgili geri bildiriminiz varsa özel Chromium sorun izleyicisine gönderin.