Przedstawiamy wersję próbną interfejsu Digital Credentials API

Data publikacji: 4 września 2024 r., ostatnia aktualizacja: 16 października 2024 r.

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

Tożsamość cyfrowa staje się rzeczywistością, ponieważ wiele podmiotów publicznych i prywatnych zaczęło wydawać cyfrowe dokumenty tożsamości powiązane z urządzeniem. Na przykład w wybranych stanach w Stanach Zjednoczonych (np. Arizonie, Kalifornii, Kolorado, Georgii i Marylandzie) można teraz skonfigurować mobilne prawo jazdy i identyfikatory w aplikacji cyfrowego portfela, takiej jak Portfel Google, na urządzeniach mobilnych. Pojawiają się też przepisy dotyczące akceptacji cyfrowych dokumentów tożsamości w przypadku niektórych weryfikacji online, np. eIDAS 2.0.

Cyfrowe prawo jazdy w Portfelu Google
Cyfrowe prawo jazdy w Portfelu Google.

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

  • Zwiększone bezpieczeństwo i prywatność: zaawansowane szyfrowanie i mocne metody uwierzytelniania pomagają chronić dane wrażliwe i zapewnić 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 można udostępnić informację, że użytkownik ma więcej niż 18 lat, bez ujawniania jego daty urodzenia.
  • 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.
  • Weryfikowalność: udostępnione dane uwierzytelniające są podpisywane cyfrowo przez wystawcę; RP może zweryfikować ten podpis, aby potwierdzić autentyczność danych.

Ze względu na to, że cyfrowe dokumenty tożsamości można zweryfikować, mogą one umożliwiać takie zastosowania jak:

  • Weryfikacja wieku: poproś o potwierdzenie wieku, aby zweryfikować wiek użytkownika przed wyświetleniem treści z ograniczeniem wiekowym lub zakupem produktów z ograniczeniem wiekowym.
  • Weryfikacja tożsamości: prośba o imię, nazwisko i adres w celu weryfikacji tożsamości osoby w związku z wymogami prawnymi lub zapobieganiem oszustwom.
  • Sprawdzanie uprawnień do kierowania pojazdem: weryfikacja uprawnień do kierowania pojazdem (np. podczas wynajmu samochodu).

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

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

Interfejs API jest niezależny od protokołu, co pozwala RP określić protokół na podstawie swoich wymagań. 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 uwierzytelniające.

Diagram komunikacji między przeglądarką, portfelem i podmiotem polegającym na usłudze.

Na początku Chrome będzie obsługiwać interfejs API w Chrome na Androidzie, aby żądać 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.

W momencie wprowadzenia Portfel Google zostanie zintegrowany z interfejsem API cyfrowych danych logowania, co umożliwi wybranym firmom i organizacjom inicjowanie żądania przedstawienia przez użytkowników dokumentu tożsamości online za pomocą Chrome na Androidzie oraz weryfikowanie autentyczności przesyłanych danych przez sprawdzenie podpisu kryptograficznego. Aby skorzystać z tej funkcji, wypełnij ten formularz i wyraź zainteresowanie akceptacją cyfrowych dokumentów tożsamości z Portfela Google.

Interfejs API będzie też wkrótce używany przez konta Google do weryfikacji daty urodzenia niektórych użytkowników. Użytkownicy mieszkający w obsługiwanym stanie w Stanach Zjednoczonych będą mogli użyć stanowego dowodu tożsamości lub prawa jazdy udostępnionego w dostępnych aplikacjach portfela (w tym w Portfelu Google), aby bezproblemowo udostępnić Google tylko datę urodzenia, bez podawania innych danych 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

Wymagania:

  • Usługi Google Play w wersji 23.40 lub nowszej
  • Chrome 128 lub nowsza
  • Włącz flagę na poziomie chrome://flags#web-identity-digital-credentials

Aby wypróbować interfejs Digital Credentials API:

  1. Zainstaluj aplikację demo portfela, postępując zgodnie z instrukcjami.
  2. Uruchom aplikację IC Wallet i udostępnij przykładowe mobilne prawo jazdy (mDL).
    • Kliknij przycisk menu i wybierz Dodaj własnoręcznie podpisany dokument.
  3. Otwórz stronę https://digital-credentials.dev w Chrome w wersji 128 lub nowszej.
  4. Kliknij Request Credentials (OpenID4VP) (Poproś o dane logowania (OpenID4VP)).

Zapoznaj się z wersją demonstracyjną, która korzysta z witryny https://digital-credentials.dev, aby deweloperzy mogli generować żądania danych logowania dla różnych atrybutów:

Demo działa w ten sposób:

1. Użytkownik trafia na stronę podmiotu ufującego i musi podać swoje imię i nazwisko oraz imię i nazwisko rodzica, a także potwierdzić, że ma ukończone 21 lat.
2. Przeglądarka potwierdza, czy użytkownik chce udostępnić witrynie jakiekolwiek cyfrowe dane uwierzytelniające.
3. System operacyjny wyświetla żądane informacje i odpowiednie dane logowania, które mogą pasować do żądania, aby użytkownik mógł je wybrać i wypełnić.
4. Portfel lokalnie uwierzytelnia użytkownika za pomocą odblokowania ekranu.

5. Żądany dokument tożsamości cyfrowej jest teraz przekazywany do witryny strony korzystającej.

Jak działa interfejs API

Interfejs Digital Credentials API opiera się na interfejsie Credential Management API, ale korzysta z niezależnej platformy API: navigator.identity. Po wywołaniu funkcji navigator.identity.get() witryna może poprosić o cyfrowe dane logowania zapisane w aplikacji mobilnego portfela.

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

Interfejs podstawowego interfejsu API jest podobny do interfejsu navigator.credentials.get(), ale obsługuje tylko typ danych "digital". W ramach typu cyfrowych danych logowania dodaj tablicę providers, która zawiera IdentityRequestProvider z tymi podstawowymi parametrami:

Przykład ładunku do typu dokumentu cyfrowego 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 przesłane za pomocą protokołu "openid4vp", a w odpowiedzi w właściwości data znajduje się wartość "vp_token". Aby dowiedzieć się, jak zanalizować odpowiedź i zweryfikować dane logowania, zapoznaj się ze specyfikacją OpenID for Verifiable Presentation (OID4VP) for the W3C Digital Credentials API.

Interfejs API cyfrowych danych logowania jest obsługiwany w Chrome na Androida w ramach testowania origin. Chrome na komputerach i iOS nie obsługuje tej funkcji w tej chwili. W przypadku innych silników przeglądarek aktywne rozmowy są prowadzone w ramach grupy społecznościowej W3C Web Incubator.

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 Chrome w wersji 128 lub nowszej.

Ta funkcja jest też dostępna jako próbna wersja źródłowa. Wersje próbne origin umożliwiają wypróbowanie nowych funkcji i przekazanie opinii o ich użyteczności, praktyczności i skuteczności społeczności standardów internetowych. Więcej informacji znajdziesz w artykule Pierwsze kroki z testami pochodzenia. Aby zarejestrować się w ramach tego lub innego okresu próbnego, wejdź na stronę rejestracji.

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

Podziel się opinią

Jeśli masz uwagi na temat interfejsu Digital Credentials API, prześlij je za pomocą dedykowanego śledzika problemów Chromium.