Przedstawiamy wersję próbną interfejsu Digital Credentials API

Testowanie origin interfejsu Digital Credentials API rozpoczyna się od Chrome 128. Digital Credentials API to nowy interfejs API platformy internetowej, który umożliwia witrynom selektywne żądanie weryfikowanych informacji o użytkowniku za pomocą cyfrowych danych uwierzytelniających, takich jak prawo jazdy lub krajowy dowód tożsamości zapisany w cyfrowym portfelu.

Tło

Rzeczywista tożsamość cyfrowa staje się rzeczywistością, a wiele podmiotów publicznych i prywatnych zaczyna wydawać cyfrowe dane uwierzytelniające powiązane z urządzeniami. Na przykład mobilne prawa jazdy i dokumenty tożsamości w wybranych stanach USA (takich jak Arizona, Kalifornia, Kolorado, Georgia i Maryland) można teraz udostępniać w aplikacjach portfela cyfrowego, takich jak Portfel Google, na urządzeniach mobilnych. Wprowadziliśmy również przepisy dotyczące akceptowania cyfrowych danych logowania w przypadku niektórych weryfikacji online, a jednym z nich jest eIDAS 2.0.

Prawo jazdy w wersji mobilnej w Portfelu Google
Komórkowe prawo jazdy w Portfelu Google.

Funkcje cyfrowego dokumentu tożsamości zależą od jego formatu. Zazwyczaj są to:

  • Większe bezpieczeństwo i prywatność: stosowanie zaawansowanego szyfrowania oraz skutecznych metod uwierzytelniania pomaga chronić dane wrażliwe i zapewnia bezpieczny dostęp. Na przykład dane logowania są zwykle chronione przy użyciu uwierzytelniania użytkownika za pomocą aplikacji portfela.
  • Ujawnianie informacji selektywne: strony uzależnione mogą prosić o wybór informacji z danych logowania, co pozwala użytkownikom ograniczyć udostępniane dane tylko do tego, co jest potrzebne w danym przypadku użycia. Na przykład informacje o tym, czy użytkownik ma ukończone 18 lat, mogą zostać udostępnione bez ujawniania daty urodzenia tego użytkownika.
  • Współdziałanie: dokumenty te powinny być zgodne z międzynarodowymi standardami, co umożliwia ich zgodność z różnymi systemami i krajami oraz ułatwia obsługę transakcji transgranicznych.
  • Możliwość weryfikacji: udostępnione dane uwierzytelniające są podpisane cyfrowo przez wydawcę. RP może zweryfikować ten podpis, aby zweryfikować autentyczność danych.

W związku z cyfrowymi danymi uwierzytelniającymi możliwy do zweryfikowania charakter, mogą zapewnić takie zastosowania, jak:

  • Weryfikacja wieku: zanim zaczniesz udostępniać treści z ograniczeniem wiekowym lub kupić materiały z ograniczeniami wiekowymi, poproś o potwierdzenie wieku użytkownika.
  • Weryfikacja tożsamości: wyślij prośbę o imię i nazwisko oraz adres, aby potwierdzić tożsamość danej osoby na potrzeby zgodności z przepisami i zapobiegania oszustwom.
  • Sprawdzenie uprawnień jazdy:zweryfikuj, czy dana osoba może prowadzić samochód (np. wynajmując samochód).

W miarę jak witryny zaczynają komunikować się bezpośrednio z aplikacjami portfela cyfrowego (np. przez stosowanie niestandardowych adresów URL) w celu żądania cyfrowych danych uwierzytelniających w różnych przypadkach użycia, przeglądarki dostrzegają możliwość zwiększenia bezpieczeństwa tych interakcji, ich odporności na nadużycia i łatwiejszej obsługi za pomocą specjalnego interfejsu API.

Przedstawiamy interfejs Digital Credentials API

Digital Credentials API to nowy interfejs API platformy internetowej, który umożliwia witrynom RP żądanie przedstawienia cyfrowych danych uwierzytelniających z aplikacji portfeli. Interfejs API jest dostępny w Chrome w ramach testowania origin od wersji 128.

Interfejs API jest niezależny od protokołu, dzięki czemu interfejs ten może określić protokół zgodnie z jego wymaganiami. Gdy RP wysyła żądanie, przeglądarka wysyła je do systemu operacyjnego urządzenia mobilnego, który wyszukuje pasujące dane uwierzytelniające w zainstalowanych aplikacjach portfela. Jeśli zostaną znalezione takie dane, system operacyjny na urządzeniu mobilnym poprosi użytkownika o jego wybranie i wyśle żądanie do portfela wybranego przez użytkownika. Po uwierzytelnieniu lokalnym portfel zwraca odpowiedź zawierającą żądane dane logowania.

Schemat komunikacji między przeglądarką, portfelem a podmiotem zależnym.

Chrome będzie najpierw obsługiwać interfejs API w Chrome na Androidzie, który będzie obsługiwać żądania danych logowania z aplikacji portfela na tym samym urządzeniu. W przyszłości planujemy wprowadzić obsługę Chrome na komputery, aby przesyłać dane logowania na inne urządzenia mobilne.

Na początku usługa Portfel Google zintegruje się z interfejsem Digital Credentials API, umożliwiając wybranym firmom i organizacjom wysyłanie próśb o udostępnienie dokumentu tożsamości online przez Chrome na Androidzie, a także weryfikowanie autentyczności przesyłanych danych przez badanie podpisu kryptograficznego. Aby wziąć udział w programie, wypełnij ten formularz, aby wyrazić zainteresowanie akceptowaniem cyfrowych dokumentów tożsamości z Portfela Google.

Interfejs API wkrótce zostanie także użyty na kontach Google do weryfikacji niektórych użytkowników datę urodzenia. Użytkownicy mieszkający w obsługiwanym stanie USA będą mogli użyć swojego dokumentu tożsamości stanowego lub prawa jazdy udostępnionych w dostępnych aplikacjach portfela (w tym Portfela Google), aby łatwo udostępnić Google tylko swoją datę urodzenia bez ujawniania innych szczegółów tożsamości. Dzięki temu użytkownicy mogą w sposób zapewniający ochronę prywatności wykazać Google, że spełniają wymagania dotyczące wieku związane z kontem.

Wypróbuj

Aby wypróbować interfejs Digital Credentials API:

  1. Zainstaluj demonstracyjną aplikację portfela, postępując zgodnie z instrukcjami opisanymi na tej stronie.
  2. Uruchom aplikację IC Wallet i udostępnij przykładowe mobilne prawo jazdy (mDL).
    • Kliknij przycisk menu i wybierz Dodaj dokument samodzielnie podpisany.
  3. W przeglądarce Chrome 128 lub nowszej otwórz stronę https://digital-credentials.dev.
  4. Kliknij Poproś o dane logowania (OpenID4VP).

Zapoznaj się z wersją demonstracyjną, która używa https://digital-credentials.dev, witryny testowej, która umożliwia programistom generowanie próśb o dane logowania dla różnych atrybutów:

Oto jak działa tryb demo krok po kroku:

1. Użytkownik trafia na stronę podmiotu uzależnionego i prosi o przesłanie zweryfikowanego imienia i nazwiska oraz oświadczenia o wieku powyżej 21 lat.
.
2. Przeglądarka sprawdza, czy użytkownik zamierza udostępnić tej witrynie jakiekolwiek cyfrowe dane logowania.
3. System operacyjny wyświetla żądane informacje oraz odpowiednie dane logowania, które mogą pasować do prośby użytkownika o wybranie i zrealizowanie tego żądania.
.
4. Portfel uwierzytelnia użytkownika lokalnie za pomocą odblokowywania ekranu.

5. Żądane cyfrowe dokumenty uwierzytelniające są teraz przekazywane do witryny podmiotu uzależnionego.

Jak działa interfejs API

Interfejs Digital Credentials API został opracowany na podstawie interfejsu Credential Management API, ale korzysta z niezależnej platformy API: navigator.identity. Wywołując navigator.identity.get(), strona może poprosić o cyfrowe dane logowania przechowywane w aplikacji portfela cyfrowego. ,

// 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: {...}
      }
    }],
  }
});

Podstawowa platforma API jest podobna do navigator.credentials.get(), z tym że akceptuje tylko dane logowania typu "digital". W ramach typu cyfrowych danych logowania dodaj tablicę providers, która zawiera IdentityRequestProvider z tymi podstawowymi parametrami:

Przykładowy ładunek do typu cyfrowych danych logowania za pomocą OID4VP:

{
  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
            }
          ]
        }
      }],
    }
  }
}

Gdy to zrobisz, portfele z mDL na urządzeniu udostępnią możliwy do zweryfikowania zestaw danych logowania, który zawiera:

  • Nazwisko użytkownika.
  • Imię użytkownika.
  • Wartość logiczna wskazująca, czy użytkownik ma ukończone 21 lat.

Oto przykładowy ładunek odpowiedzi:

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

W tym przykładzie żądanie danych logowania zostało wysłane przy użyciu protokołu "openid4vp", a odpowiedź zawiera "vp_token" we właściwości data. Aby dowiedzieć się, jak analizować odpowiedź i zweryfikować dane uwierzytelniające, zapoznaj się ze specyfikacją OpenID for Verifiable Presentation (OID4VP) z specyfikacją W3C Digital Credentials API.

Interfejs Digital Credentials API jest obsługiwany w Chrome na urządzeniach z Androidem w ramach wersji próbnej origin. Chrome na komputery i iOS nie obsługuje obecnie tej funkcji. W przypadku innych przeglądarek aktywne rozmowy są organizowane przez grupę społeczności W3C Web Incubator (w języku angielskim).

Weź udział w testowaniu origin

Programista może włączyć interfejs Digital Credentials API lokalnie, włączając flagę Chrome chrome://flags#web-identity-digital-credentials w przeglądarce Chrome 128 lub nowszej.

Ta funkcja jest również dostępna w wersji próbnej origin. Wersje próbne origin pozwalają wypróbować nowe funkcje i podzielić się opinią na temat ich przydatności, praktyczności i skuteczności w społeczności zajmującej się standardami sieciowymi. Więcej informacji znajdziesz w artykule o pierwszych krokach z testami origin. Aby zarejestrować się w tej lub innej wersji próbnej origin, wejdź na stronę rejestracji.

  1. Poproś o token dla punktu początkowego.
  2. Dodaj token do swoich stron. Możesz to zrobić na 2 sposoby:
    • Dodaj tag origin-trial <meta> w nagłówku każdej strony. Na przykład może to wyglądać mniej więcej tak: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Jeśli masz możliwość skonfigurowania serwera, token możesz też dodać za pomocą nagłówka HTTP Origin-Trial. Otrzymany nagłówek odpowiedzi powinien wyglądać mniej więcej tak:Origin-Trial: TOKEN_GOES_HERE.
.

Podziel się opinią

Jeśli chcesz przesłać opinię na temat interfejsu Digital Credentials API, prześlij ją do specjalnego narzędzia do śledzenia problemów w Chromium.