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.
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.
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:
- Zainstaluj demonstracyjną aplikację portfela, postępując zgodnie z instrukcjami opisanymi na tej stronie.
- Pobierz wersję demonstracyjną aplikacji portfela na swoje urządzenie z Androidem.
- Uruchom polecenie
adb install -t <path-to-apk>
, aby zainstalować aplikację.
- Uruchom aplikację IC Wallet i udostępnij przykładowe mobilne prawo jazdy (mDL).
- Kliknij przycisk menu i wybierz Dodaj dokument samodzielnie podpisany.
- W przeglądarce Chrome 128 lub nowszej otwórz stronę https://digital-credentials.dev.
- 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:
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:
protocol
: określ protokół wymiany za pomocą ciągu znaków. W momencie testowania origin tworzony główny protokół to"openid4vp"
.request
: podaj parametry akceptowane przez aplikacje cyfrowego portfela dla określonego protokołu. W przypadku"openid4vp"
parametry zostały zdefiniowane w dokumencie OpenID for Verifiable Presentation (OID4VP) na potrzeby specyfikacji interfejsu W3C Digital Credentials API.
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.
- Poproś o token dla punktu początkowego.
- 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.
- Dodaj tag
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.