Saltar para o conteúdo principal

Credential Offer

Um Credential Offer é a mensagem que um emissor envia a uma carteira para iniciar a emissão ao abrigo do OpenID4VCI: identifica o emissor, indica que credenciais estão a ser oferecidas e diz à carteira como lhe é permitido recolhê-las.

Na prática, o Credential Offer é o que está por trás do código QR numa página de emissão ou da ligação num e-mail ou aplicação. Pode ser entregue por valor, incorporado diretamente numa ligação profunda openid-credential-offer:// ou num código QR, ou por referência, como um URL que a carteira obtém para recuperar o mesmo conteúdo, o que mantém o código curto quando o oferta nomeia várias credenciais ou transporta um issuer state longo. Digitalizá-lo ou abri-lo entrega à carteira o URL do emissor e um ou mais identificadores de configuração de credencial, mais um grant que decide o resto do fluxo: um authorization code grant envia o titular primeiro através do próprio login do emissor, útil quando a oferta foi gerada num dispositivo diferente daquele que completa o fluxo, enquanto um pre-authorized code grant é usado quando o titular já foi autenticado onde a oferta foi criada, por exemplo imediatamente após iniciar sessão num portal governamental, opcionalmente protegido por um transaction code mostrado nesse mesmo canal, para que um código intercetado em trânsito não possa ser resgatado por outra pessoa. A partir daí, a carteira lê os metadados do emissor para saber o que as credenciais nomeadas realmente contêm, troca o grant por um token de acesso no token endpoint do emissor, e chama o credential endpoint para recolher o que foi oferecido, uma credencial ou um lote de cada vez, consoante o que o emissor suporte.

Por que motivo alguns Credential Offers pedem um transaction code e outros não?

Um transaction code é exigido sempre que a oferta usa um pre-authorized code grant, uma vez que o titular já foi autenticado noutro canal e o código prova que a pessoa que digitaliza a oferta é a mesma pessoa que esse canal autenticou. Um authorization code grant, em vez disso, envia o titular através do próprio login do emissor como parte do fluxo, pelo que não há um canal separado para vincular nem código necessário.

Voltar ao glossário