Digital Credentials API kaynak denemesiyle tanışın

Digital Credentials API'si için kaynak denemesi Chrome 128'den baş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, ABD'nin belirli eyaletlerindeki (Arizona, Kaliforniya, Colorado, Georgia ve Maryland gibi) mobil sürücü belgeleri ve kimlikler, artık mobil cihazlardaki Google Cüzdan gibi dijital cüzdan uygulamalarına sağlanabilir. Belirli online doğrulamalar için dijital kimlik bilgilerinin kabul edilmesiyle ilgili yönetmelikler de yeni ortaya çıkmaktadır. eIDAS 2.0 bu konuyla ilgili örneklerden biridir.

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

Dijital Yeterlilik Belgesi'nin özellikleri biçimine bağlı olarak farklılık gösterir 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 bilgisi sunmak genellikle cüzdan uygulaması üzerinden bir kullanıcı kimlik doğrulamasıyla korunur.
  • Seçici açıklama: Bağlı taraflar (RP), kimlik bilgilerinden belirli bilgileri isteyebilir. Böylece kullanıcılar, paylaşılan verileri kullanım alanı için gerekenlerle sınırlandırabilir. Örneğin, 18 yaşından büyük olup olmadığı, kullanıcının doğum tarihi gösterilmeden paylaşılabilir.
  • Birlikte çalışabilirlik: Yeterlilik Belgesi uluslararası standartlara uygun olmalı, farklı sistemler ve ülkeler arasında uyumluluğu sağlamalı, böylece sınır ötesi kabulü kolaylaştırmalıdır.
  • Doğrulanabilirlik: Paylaşılan kimlik bilgisi verilerinin, kartı veren kuruluş tarafından dijital olarak imzalanması Kısıtlanmış taraf, verilerin gerçekliğini doğrulamak için bu imzayı doğrulayabilir.

Dijital kimlik bilgileri nedeniyle aşağıdaki gibi kullanım alanlarına olanak sağlayabilir:

  • Yaş doğrulaması: Yaş kısıtlaması olan içerikler sunmadan 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: Yasalara uygunluk veya sahtekarlık önleme amacıyla bir kişinin kimliğini doğrulamak için ad ve adres isteyin.
  • Sürüş ayrıcalıkları kontrolü: Bir kişinin araba kullanmaya uygun olduğunu doğrulayın (örneğin, araba kiralarken).

Web siteleri çeşitli kullanım alanları için dijital kimlik bilgileri istemek üzere mobil cüzdan uygulamalarıyla (ör. özel URL şemaları kullanarak) doğrudan iletişim kurmaya başladığından tarayıcılar, bu etkileşimi daha güvenli, kötüye kullanıma karşı dirençli ve amaca yönelik API aracılığıyla kullanımı daha kolay hale getirme fırsatı görüyor.

Digital Credentials API tanıtımı

Digital Credentials API, RP web sitelerinin cüzdan uygulamalarından dijital kimlik bilgilerinin sunulmasını istemesine olanak tanıyan yeni bir web platformu API'sidir. 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 kendi gereksinimlerine göre bir protokol belirtmesine olanak tanır. Kısıtlanmış taraf bir istek gönderdiğinde tarayıcı, isteği mobil işletim sistemine gönderir ve buradan, yüklü cüzdan uygulamalarında eşleşen bir kimlik bilgisi arar. Böyle bir cihaz bulunursa mobil işletim sistemi, kullanıcıdan bir seçim yapmasını ister ve isteği kullanıcının seçtiği cüzdana gönderir. Yerel bir kimlik doğrulamasından sonra cüzdan, istenen kimlik bilgisi verilerini içeren bir yanıt döndürür.

Tarayıcı, cüzdan ve bağlı taraf arasındaki iletişimi gösteren şema.

Chrome ilk olarak aynı cihazdaki cüzdan uygulamalarından kimlik bilgisi istemek için Android'deki Chrome'da API'yi destekler. Gelecekte, başka bir mobil cihazdan cihazlar arası kimlik bilgisi istemek için Chrome masaüstü kullanımını desteklemeyi planlıyoruz.

Lansmanda Google Cüzdan, Digital Credentials API'ye entegre olarak belirli işletmelerin ve kuruluşların kullanıcıların, Android'deki Chrome üzerinden kimliklerini çevrimiçi ortamda göstermeleri için talepte bulunmalarına ve kriptografik imzayı inceleyerek iletilen verilerin orijinalliğini doğrulamalarına olanak tanıyacaktır. Programa katılmak için bu formu doldurarak Google Cüzdan'dan dijital kimlikleri kabul etmek istediğinizi belirtin.

API yakında Google Hesapları tarafından belirli kullanıcıların cihazlarınızın kimliğini doğrulamak için de kullanılacaktır. doğum tarihi. Desteklenen bir ABD eyaletinde ikamet eden kullanıcılar, kimlikleriyle ilgili diğer bilgileri paylaşmadan sadece doğum tarihlerini Google ile sorunsuz bir şekilde paylaşabilmek için mevcut cüzdan uygulamalarında (Google Cüzdan dahil) sağlanan eyalet kimliklerini veya sürücü belgelerini kullanabilirler. Bu sayede kullanıcılar, hesapla ilgili yaş şartlarını karşıladıklarını gizliliği koruyarak Google'a gösterebilir.

Deneyin

Digital Credentials API'yi denemek için talimatları uygulayın:

  1. Bu sayfada açıklanan talimatları uygulayarak demo cüzdan uygulamasını yükleyin.
    • Android cihazınıza bir demo cüzdan uygulaması indirin.
    • Uygulamayı yüklemek için bir adb install -t <path-to-apk> komutunu ç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 dokunun ve Kendinden İmzalı Doküman Ekle'yi seçin.
  3. Chrome 128 veya sonraki bir sürümle 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şturmasını sağlayan bir test web sitesi olan https://digital-credentials.dev'in kullanıldığı demoya göz atın:

Demo adım adım şu şekilde çalışır:

1. Kullanıcı, bağlı tarafın web sitesine ulaşır ve doğrulanmış soyadı, adıyla birlikte 21 yaşından büyük olduğunu belirtmesi ve yaş güvencesi sunmasını ister.
ziyaret edin.
'nı inceleyin.
2. Tarayıcı, kullanıcının bu web sitesiyle herhangi bir 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 yapılan istekle eşleşebilecek uygun kimlik bilgilerini gösterir.
ziyaret edin.
'nı inceleyin.
5. Cüzdan, ekran kilidini açarak kullanıcının kimliğini yerel olarak doğrular.

5.c İstenen dijital Yeterlilik Belgesi, bağımlı tarafın web sitesine iletilir.

API'nin işleyiş şekli

Digital Credentials API, Credential Management API'yi temel almakla birlikte bağımsız bir API yüzeyinden (navigator.identity) geliştirilmiştir. 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() ile benzerdir. Dijital kimlik bilgisi türüne, aşağıdaki temel parametrelerle birlikte IdentityRequestProvider değerini içeren providers dizisini ekleyin:

OID4VP kullanılarak dijital kimlik bilgisi türüne yüke örnek:

{
  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 birlikte, cihazdaki mDL'leri olan cüzdanlar, aşağıdakileri içeren doğrulanabilir kimlik bilgileri 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ı gösteren boole değeridir.

Örnek bir yanıt yükü aşağıda verilmiştir:

{
  data: '{\n  "vp_token": "o2d2ZXJzaW9uYz..."\n}'
  id: '',
  protocol: 'openid4vp',
  type: 'digital'
}

Bu örnekte, kimlik bilgisi "openid4vp" protokolüyle istendi ve yanıt, data özelliğinde "vp_token" içeriyor. Yanıtı nasıl ayrıştıracağınızı ve kimlik bilgisini nasıl doğrulayacağınızı öğrenmek üzere lütfen W3C Digital Credentials API'ye yönelik Doğrulanabilir Sunu (OID4VP) for Doğrulanabilir Sunu (OID4VP) spesifikasyonuna göz atın.

Digital Credentials API, Android'deki Chrome'da kaynak deneme sürümü olarak desteklenir. Masaüstündeki Chrome ve iOS'teki Chrome şu an için bu özelliği desteklememektedir. Diğer tarayıcı motorları için etkin görüşmeler W3C Web Incubator Topluluk Grubu aracılığıyla yürütülmektedir.

Kaynak denemesine katılın

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 denemesi olarak da kullanılabilir. Kaynak denemeleri, yeni özellikleri denemenize ve bu özelliklerin kullanılabilirliği, pratikliği ve etkinliği hakkında web standartları topluluğuna geri bildirimde bulunmanıza 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şlığına 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 bir Origin-Trial HTTP üst bilgisi kullanarak da ekleyebilirsiniz. Elde edilen yanıt başlığı aşağıdaki gibi görünmelidir:Origin-Trial: TOKEN_GOES_HERE.
ziyaret edin.

Geri bildirim

Digital Credentials API hakkında geri bildirimlerinizi özel Chromium sorun izleyiciye gönderin.