Omówienie cyfrowych dokumentów tożsamości

Dane uwierzytelniające w formie cyfrowej to dokumenty, które można zweryfikować za pomocą kryptografii. Można ich używać do uwierzytelniania, autoryzowania lub przekazywania informacji o użytkowniku. Zwykle są to dokumenty takie jak prawo jazdy, paszporty cyfrowe czy karty pokładowe. Przechowywane są w kontenerach wirtualnych zwanych cyfrowymi portfelami i są częścią standardu W3C, który określa sposób ich uzyskiwania i odczytywania. Ten standard jest implementowany w przypadku zastosowań internetowych za pomocą interfejsu W3C Credential Management API oraz na Androidzie za pomocą interfejsu DigitalCredential API menedżera danych logowania.

Dane logowania do usługi cyfrowej

W świecie rzeczywistym osoba może przechowywać dokument tożsamości w portfelu i przedstawić go stronie, która go poprosi:

Obraz przedstawiający proces zwykłej interakcji z Portfelem
Rysunek 1. Proces realizacji prośby o dokumenty w świecie rzeczywistym. Osoba wysyłająca żądanie prosi użytkownika o określone dane uwierzytelniające. Następnie użytkownik wybiera kartę i wyjmuje ją z fizycznego portfela. Na koniec użytkownik przekazuje dane uwierzytelniające osobie, która wysłała żądanie.

W takim przypadku użytkownik ma zwykle jeden portfel i pobiera z niego żądane dane logowania, aby je przekazać. Portfele są w dużej mierze wymienne i zazwyczaj można w nich przechowywać te same rzeczy.

Dane uwierzytelniające w formie cyfrowej mają kilka głównych różnic:

  1. Użytkownicy powinni mieć wiele portfeli, które mogą zawierać różne dane logowania. Portfele określają, które dane logowania mogą być w nich przechowywane.
  2. Osoba przesyłająca prośbę to teraz aplikacja, a nie prawdziwa osoba. Jest ona nazywana weryfikatorem.
  3. Prezentacja danych logowania odbywa się w oprogramowaniu, co oznacza, że interfejs API pobiera i prezentuje dane logowania. W Androidzie jest to menedżer danych logowania.

W związku z tym Menedżer danych logowania pełni kilka ról, które wcześniej były obsługiwane przez użytkownika:

  1. Na Androidzie portfele muszą zarejestrować metadane swoich danych logowania w Menedżerze danych logowania, aby były one widoczne w interfejsie Menedżera danych logowania.
  2. Menedżer danych logowania dopasowuje dane logowania w różnych portfelach na podstawie żądania i prezentuje listę, z której użytkownik może wybrać dane.
  3. Gdy użytkownik wybierze dane logowania na liście, menedżer danych logowania wywołuje portfel, który przeprowadzi pozostałą część transakcji (np. wyświetla interfejs użytkownika) i zwróci dane logowania do aplikacji.

Oto ten proces:

Obraz przedstawiający proces interakcji z cyfrowymi danymi logowania
Rysunek 2. Model interakcji służący do weryfikacji cyfrowych danych logowania. Menedżer danych logowania korzysta z wcześniej zarejestrowanych metadanych danych logowania w portfelach użytkownika, aby dopasować żądanie weryfikatora, i prosi użytkownika o wybranie danych logowania. Menedżer danych uwierzytelniających kieruje następnie przepływ aktywności do odpowiedniego portfela, który obsługuje pozostałą część transakcji i zwraca dane uwierzytelniające weryfikatorowi. Uwaga: weryfikator musi obsłużyć i zweryfikować odpowiedź z uprawnieniami po jej zwróceniu.

Interfejs użytkownika

Jak widać w przypadku Androida, użytkownik musi tylko raz wejść w interakcję z interfejsem menedżera danych logowania, aby wybrać odpowiednie dane. Oto przykład tego, jak wygląda selektor:

Obraz pokazujący interfejs cyfrowych poświadczeń w Menedżerze poświadczeń
Rysunek 3. Interfejs cyfrowych dokumentów tożsamości.

Standardy

Żądania dotyczące cyfrowych danych logowania są tworzone zgodnie ze standardem OpenID4VP. Przykładowe żądania znajdziesz na stronie z przykładami dokumentów cyfrowych.

Odpowiedzi dotyczące cyfrowych danych logowania są zwykle zwracane w ustandaryzowanym formacie. Są one obsługiwane przez różne organy standaryzacyjne i obejmują weryfikowalne dane logowania W3C, tokeny JWT oraz dokumenty mdoc.

Możliwe jest też użycie protokołów niestandardowych, ale zalecamy użycie w aplikacji jednego ze standardowych protokołów.

Wypróbuj

Możesz przetestować proces logowania na różnych platformach za pomocą portfela na Androida i weryfikatora internetowego:

  1. Zainstaluj na telefonie z Androidem publiczny przykład CMWallet. Aby to zrobić, pobierz z repozytorium i zainstaluj bezpośrednio z Android Studio lub otwórz stronę https://github.com/digitalcredentialsdev/CMWallet/actions i wybierz najnowszą wersję, aby uzyskać dostęp do najnowszego pliku app-debug.apk.
  2. Otwórz CMWallet, aby zarejestrować metadane w Menedżerze danych logowania. Sprawdź, czy Bluetooth jest włączony, aby umożliwić połączenie urządzeń.
  3. Otwórz stronę https://digital-credentials.dev/ i kliknij Request Credentials (OpenID4VP).
  4. Zaakceptuj ostrzeżenia i zeskanuj kod QR telefonem, a następnie wybierz „Użyj klucza dostępu” i kliknij potwierdzenie, aby wyświetlić dostępne dane logowania.
  5. Wybierz dane logowania z CMWallet, aby wrócić do przeglądarki. Przeglądarka powinna wyświetlić zwrócone dane uwierzytelniające.

Zobacz również

  • Więcej informacji o używaniu Menedżera danych logowania do żądania danych logowania cyfrowych w aplikacji znajdziesz na stronie Credential Verifier API (w języku angielskim).
  • Więcej informacji o tworzeniu portfela cyfrowego za pomocą Menedżera danych logowania znajdziesz na stronie Credential Holder API.