Credential Offer
Ein Credential Offer ist die Nachricht, mit der ein Aussteller unter OpenID4VCI die Ausstellung an eine Wallet startet: Sie nennt den Aussteller, sagt, welche Credentials angeboten werden, und teilt der Wallet mit, wie sie diese abholen darf.
In der Praxis steckt das Offer hinter dem QR-Code auf einer Ausstellungsseite oder dem Link in einer E-Mail oder App. Es kann per Wert übermittelt werden, direkt eingebettet in einen openid-credential-offer://-Deep-Link oder QR-Payload, oder per Referenz, als URL, die die Wallet abruft, um denselben Inhalt zu erhalten, was den Code kurz hält, wenn das Offer mehrere Credentials benennt oder einen langen Issuer-State trägt. Das Scannen oder Öffnen übergibt der Wallet die URL des Ausstellers und ein oder mehrere Credential-Konfigurationskennungen sowie einen Grant, der den Rest des Ablaufs bestimmt: Ein Authorization-Code-Grant schickt den Inhaber zunächst durch den eigenen Login des Ausstellers, nützlich, wenn das Offer auf einem anderen Gerät erzeugt wurde als dem, das den Ablauf abschließt, während ein Pre-Authorized-Code-Grant genutzt wird, wenn der Inhaber dort, wo das Offer erzeugt wurde, bereits authentifiziert war, zum Beispiel direkt nach dem Einloggen in ein Regierungsportal, optional geschützt durch einen auf demselben Kanal angezeigten Transaktionscode, sodass ein unterwegs abgefangener Code nicht von jemand anderem eingelöst werden kann. Von dort liest die Wallet die Metadaten des Ausstellers, um zu erfahren, was die genannten Credentials tatsächlich enthalten, tauscht den Grant an der Token-Endpunkt des Ausstellers gegen ein Access Token, und ruft den Credential-Endpunkt auf, um das Angebotene abzuholen, ein Credential oder ein Bündel auf einmal, je nachdem, was der Aussteller unterstützt.
Verwandte Begriffe
Warum verlangen manche Credential Offers einen Transaktionscode und andere nicht?
Ein Transaktionscode ist immer dann erforderlich, wenn das Offer einen Pre-Authorized-Code-Grant nutzt, denn der Inhaber wurde bereits auf einem anderen Kanal authentifiziert, und der Code belegt, dass die Person, die das Offer scannt, dieselbe Person ist, die auf jenem Kanal authentifiziert wurde. Ein Authorization-Code-Grant schickt den Inhaber stattdessen als Teil des Ablaufs durch den eigenen Login des Ausstellers, sodass es keinen separaten zu bindenden Kanal gibt und kein Code nötig ist.