Skip to content

using credential_configuration_id in the credential request when scopes are used in the authorization request #132

@Sakurann

Description

@Sakurann

Currently, Credential Request has two options to specify which credential is being requested: credential_identifier or combination of format and credential format specific credential_definition.

We (Microsoft) are currently implementing VCI and we use scopes and cannot return credential_identifier from the token endpoint (because of the limitations of a big AS we are using), but we found that the performance (especially for the wallet) is better when identifier in the credential_configurations_supported issuer metadata is used in the credential request instead of format/type combination: it saves from comparing the combination of format and type (that is mapped to an identifier anyway) and helps prevent errors. (I think this is also what @pmhsfelix suggested at IIW)

The flow would look like:

  • the wallet receives credential offer with an identifier.
  • the wallet uses that identifier to look up an entry in credential_configurations_supported issuer metadata
  • the wallet uses a scope value in the authorization request
  • the wallet uses the same identifier in the credential request

The parameter name should probably be credential_configuration_id which is what is used in RAR. I don't think credential_identifier should be reused because that one has a distinct meaning and purpose.

Credential Request will look pretty simple:

  • credential_condifuration_id: REQUIRED. String that identifies a Credential that is being requested to be issued. When credential_identifier was returned from the Token Response, it MUST match the value of this string. Otherwise, it MUST match the value of an identifier in the credentials_supported issuer metadata that the wallet used to look credential being requested within the issuer metadata.

  • proof: OPTIONAL. Object containing the proof of possession of the cryptographic key material the issued Credential would be bound to. The proof object MUST contain a following claim:

    • proof_type: REQUIRED. String denoting the key proof type. The value of this claim determines other claims in the key proof object and its respective processing rules. Key proof types defined in this specification can be found in Section 7.2.1.
  • encryption related parameters

(mandating to return credential_identifier from the token response is not an option because some ASs cannot make breaking changes and cannot return credential_identifiers in the Token Endpoint.)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions