Credential Offer
Ένα Credential Offer είναι το μήνυμα που στέλνει ένας εκδότης σε ένα πορτοφόλι για να ξεκινήσει η έκδοση βάσει του OpenID4VCI: κατονομάζει τον εκδότη, δηλώνει ποια διαπιστευτήρια προσφέρονται και ενημερώνει το πορτοφόλι με ποιον τρόπο επιτρέπεται να τα παραλάβει.
Στην πράξη, η προσφορά είναι αυτό που βρίσκεται πίσω από τον κωδικό QR σε μια σελίδα έκδοσης ή τον σύνδεσμο σε ένα email ή μια εφαρμογή. Μπορεί να παραδοθεί με τιμή (by value), ενσωματωμένη απευθείας σε έναν deep link ή QR payload openid-credential-offer://, ή με αναφορά (by reference), ως URL που ανακτά το πορτοφόλι για να λάβει το ίδιο περιεχόμενο, κάτι που κρατά τον κωδικό σύντομο όταν η προσφορά ονομάζει πολλά διαπιστευτήρια ή φέρει μια μεγάλη κατάσταση εκδότη (issuer state). Η σάρωση ή το άνοιγμά της παραδίδει στο πορτοφόλι το URL του εκδότη και ένα ή περισσότερα αναγνωριστικά διαμόρφωσης διαπιστευτηρίου, καθώς και ένα grant που καθορίζει το υπόλοιπο της ροής: ένα authorization code grant στέλνει πρώτα τον κάτοχο μέσα από τη δική του σύνδεση στον εκδότη, χρήσιμο όταν η προσφορά δημιουργήθηκε σε διαφορετική συσκευή από αυτή που ολοκληρώνει τη ροή, ενώ ένα pre-authorized code grant χρησιμοποιείται όταν ο κάτοχος είχε ήδη πιστοποιηθεί εκεί όπου δημιουργήθηκε η προσφορά, για παράδειγμα αμέσως μετά τη σύνδεση σε μια κρατική πύλη, προαιρετικά προστατευμένο με έναν κωδικό συναλλαγής που εμφανίζεται στο ίδιο κανάλι, ώστε ένας κωδικός που υποκλέπτεται κατά τη μεταφορά να μην μπορεί να εξαργυρωθεί από κάποιον άλλον. Από εκεί, το πορτοφόλι διαβάζει τα μεταδεδομένα του εκδότη για να μάθει τι πράγματι περιέχουν τα ονομαζόμενα διαπιστευτήρια, ανταλλάσσει το grant με ένα access token στο token endpoint του εκδότη, και καλεί το credential endpoint για να συλλέξει αυτό που προσφέρθηκε, ένα διαπιστευτήριο ή μια παρτίδα τη φορά, ανάλογα με το τι υποστηρίζει ο εκδότης.
Σχετικοί όροι
Γιατί ορισμένες Credential Offer ζητούν κωδικό συναλλαγής και άλλες όχι;
Ένας κωδικός συναλλαγής απαιτείται όποτε η προσφορά χρησιμοποιεί pre-authorized code grant, καθώς ο κάτοχος είχε ήδη πιστοποιηθεί σε άλλο κανάλι και ο κωδικός αποδεικνύει ότι το πρόσωπο που σαρώνει την προσφορά είναι το ίδιο πρόσωπο που πιστοποιήθηκε σε εκείνο το κανάλι. Ένα authorization code grant αντίθετα στέλνει τον κάτοχο μέσα από τη δική του σύνδεση στον εκδότη ως μέρος της ροής, οπότε δεν υπάρχει ξεχωριστό κανάλι προς σύνδεση και δεν χρειάζεται κωδικός.