Przejdź do głównej treści

Credential Offer

Credential Offer to komunikat, który wydawca wysyła do portfela, aby rozpocząć wydanie zgodnie z OpenID4VCI: wskazuje wydawcę, mówi, jakie poświadczenia są oferowane, i informuje portfel, w jaki sposób może je odebrać.

W praktyce Credential Offer to to, co kryje się za kodem QR na stronie wydania lub za linkiem w e-mailu bądź aplikacji. Może być dostarczony by value, osadzony bezpośrednio w deep linku openid-credential-offer:// lub w ładunku kodu QR, albo by reference, jako adres URL, który portfel pobiera, aby uzyskać tę samą treść, co utrzymuje kod krótki, gdy oferta obejmuje kilka poświadczeń lub niesie długi issuer state. Zeskanowanie lub otwarcie go przekazuje portfelowi adres URL wydawcy oraz jeden lub więcej identyfikatorów konfiguracji poświadczenia, a także grant decydujący o dalszym przebiegu procesu: authorization code grant przeprowadza posiadacza najpierw przez własne logowanie wydawcy, przydatne, gdy oferta została wygenerowana na innym urządzeniu niż to, które kończy proces, natomiast pre-authorized code grant jest używany, gdy posiadacz został już uwierzytelniony tam, gdzie oferta powstała, na przykład zaraz po zalogowaniu się do portalu rządowego, opcjonalnie chroniony przez transaction code pokazywany na tym samym kanale, tak aby kod przechwycony w trakcie transmisji nie mógł zostać zrealizowany przez kogoś innego. Stamtąd portfel odczytuje metadane wydawcy, aby poznać, co faktycznie zawierają nazwane poświadczenia, wymienia grant na token dostępu w token endpoint wydawcy, i wywołuje credential endpoint, aby odebrać to, co zostało zaoferowane, jedno poświadczenie lub partię naraz, w zależności od tego, co obsługuje wydawca.

Dlaczego niektóre Credential Offer proszą o transaction code, a inne nie?

Transaction code jest wymagany zawsze, gdy oferta używa pre-authorized code grant, ponieważ posiadacz został już uwierzytelniony na innym kanale, a kod dowodzi, że osoba skanująca ofertę jest tą samą osobą, którą uwierzytelnił ten kanał. Authorization code grant natomiast przeprowadza posiadacza przez własne logowanie wydawcy jako część procesu, więc nie ma odrębnego kanału do powiązania ani potrzeby kodu.

Powrót do słownika