You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Possible Use of Metadata Parameters by Wallet Entities
This non-normative appendix speculates about metadata parameters that might be used
by the Entity Types defined by this specification.
Some of these are already defined by other specifications.
Some are yet to be defined, and may be defined in the future by other specifications.
Some are likely to change.
Please read this illustrative content with these caveats in mind.
Possible OpenID Wallet Provider Metadata Usage
Possible metadata parameters that could be used by
OpenID Wallet Providers with the openid_wallet_provider Entity Type Identifier
are listed in the table below.
The table and examples below use metadata parameters defined by
[@!OpenID.Federation], [@!RFC8414], and [@!OpenID4VP].
Metadata Parameter
Status
Description
Reference
jwks
REQUIRED
A JSON Web Key Set (JWKS) that represents the Wallet Provider's public keys
Section 5.2.1 of [@!OpenID.Federation] and JWK [@!RFC7517]
authorization_endpoint
REQUIRED
Endpoint for obtaining the authorization for the issuance of the Wallet Attestation
Section 2 of [@!RFC8414]
token_endpoint
REQUIRED
Endpoint for obtaining the Wallet Attestation
Section 2 of [@!RFC8414]
aal_values_supported
OPTIONAL
List of supported values for the Authenticator Assurance Level, as defined in NIST Special Publication 800-63B. These values specify the security level of the app. Values are trust framework specific
this specification
grant_types_supported
REQUIRED
Grant types supported by the token endpoint
Section 2 of [@!RFC8414]
token_endpoint_auth_methods_supported
REQUIRED
Supported authentication methods for the token endpoint
Section 2 of [@!RFC8414]
token_endpoint_auth_signing_alg_values_supported
REQUIRED
Supported signature algorithms for the token endpoint
Section 2 of [@!RFC8414]
Below is a non-normative example of openid_wallet_provider metadata:
Possible metadata parameters that could be used by
OpenID Credential Issuers with the openid_credential_issuer Entity Type Identifier
are listed in the table below.
The table and examples below use metadata parameters defined by
[@!OpenID.Federation], [@!RFC8414]], [@!RFC9126], [@!OpenID.Discovery], and [@!OpenID4VCI].
The usage described below is intended to enable
the cryptographic material used for the Credential issuance operation be consistent
and verifiable using the Trust Chain.
Metadata Parameter
Status
Description
Reference
jwks
REQUIRED
JSON Web Key Set directly embeds the public keys used by the Credential Issuer for its signature operations, such as signing Digital Credentials
Section 5.2.1 of [@!OpenID.Federation] and JWK [@!RFC7517]
Below is a non-normative example of a payload of an Credential Issuer Entity Configuration:
Possible OpenID Credential Verifier Metadata Usage
Possible metadata parameters that could be used by
OpenID Wallet Credential Verifiers with the openid_credential_verifier Entity Type Identifier
are listed in the table below.
The table and examples below use metadata parameters defined by
[@!OpenID.Federation], [@!RFC7591], [@!OpenID.Registration], [@!OAuth.JARM], and [@!OpenID4VP].
Metadata Parameter
Status
Description
Reference
client_id
REQUIRED
It MUST contain an HTTPS URL that uniquely identifies the Credential Verifier
Section 3.2.1 of [@!RFC7591] and Section 3.2 of [@!OpenID.Registration]
client_name
REQUIRED
Human-readable string name of the Credential Verifier used for representing the Credential Verifier to the User
Section 2 of [@!RFC7591]
request_uris
OPTIONAL
JSON Array of request_uri values that are pre-registered by the Credential Verifier. These URLs MUST use the https scheme.
Section 2 of [@!OpenID.Registration]
response_uris_supported
OPTIONAL
JSON Array of response_uri strings, as specified by [@!OpenID4VP], to which the Wallet Instance MAY send the Authorization Response using an HTTP POST request
this specification
authorization_signed_response_alg
OPTIONAL
String identifying the JWS algorithm that MUST be used for signing authorization responses. The algorithm none MUST NOT be used.
[@!RFC7515] and Section 3 of [@!OAuth.JARM]
vp_formats
OPTIONAL
JSON object defining the formats and proof types of Verifiable Presentations and Verifiable Credentials the Credential Verifier supports
Section 7.2.7 of [@!OpenID4VC-HAIP] and Section 9.1 of [@!OpenID4VP]
presentation_definitions_supported
OPTIONAL
JSON Array of supported presentation_definition objects
this specification, Section 5 of [@!DIF.PresentationExchange], and Section 7.2.8 of [@!OpenID4VC-HAIP]
jwks
REQUIRED
JSON Web Key Set document, passed by value, containing the protocol specific keys for the Credential Verifier
Section 5.2.1 of [@!OpenID.Federation] and JWK [@!RFC7517]
Below is a non-normative example of the payload of a Credential Verifier Entity Configuration:
Security Considerations about the Parameters request_uris and response_uris_supported
There are scenarios where the Credential Verifier's endpoints are attested by a trusted third party, such as a registration service owned by a federation Intermediate. This Intermediate attests to the Credential Verifier's metadata and ensures its integrity and authenticity by utilizing metadata and the metadata_policy in the Subordinate Statement about that Credential Verifier, as defined in the OpenID Federation specification.
In these cases, the Credential Verifier is restricted from altering its endpoint URIs due to the registration requirements, unless it utilizes URI fragments as permitted under the OpenID Connect Core 1.0 specification.
To enhance the security of implementations, it is generally recommended that Credential Verifiers randomize their endpoints. This strategy involves appending random fragments to the URIs, such as https://verifier.example.org/request-uri#random-value. Such randomization can help mitigate certain types of attacks by making it more difficult for attackers to predict or reuse fixed endpoint URLs, that could be victim of abuse, such as the one caused by the issuance of many signed responses that may facilitate resource consuptions attacks.
For this reason, the parameters metadata or metadata_policy SHOULD fix the supported URIs to prevent wallet hijacks to fraudolent endpoints and at the same time allow URI randomization using fragments.
Security Considerations about the End-User's Data Protection Using presentation_definitions_supported
The presentation_definitions_supported enhance the End-User data protection within wallet trust frameworks. By defining the specific presentation definitions that a Credential Verifier is authorized to use, this parameter limits the amount of personal data that can be requested. This constraint prevents the over-asking of personal data, aligning with the principles of data minimization and purpose limitation under privacy regulations.
The metadata and metadata_policy parameters can be used in the Federation Subordinate Statements, issued by the Trust Anchor and its Intermediates, to configure these limitations. They ensure that only the necessary data as defined by the federation's policy is requested and processed by the Credential Verifier. This approach protects End-User privacy and endures that all data collection practices are transparent and compliant with established policies.
Authentic Sources
An Authentic Source is a designated authority or system responsible for providing verified and reliable data. It is up to the implementers to decide if the Authentic Source should be implemented using the OAuth 2.0 framework, which offers security protocols and extensive support for diverse authentication scenarios. In these cases, the Authentice Sources represent an OAuth 2.0 Resource Server and therefore the metadata type used is oauth_protected_resource, as defined in OAuth 2.0 Protected Resource Metadata.
This section provides some common configurations for ...
non-normative example 1
non-normative example 2
The text was updated successfully, but these errors were encountered:
We discussed this on the 16-Jan-25 working group call. To make this actionable, we should create separate issues for each of the potential spec additions recorded in this rather large issue. Then this one can be closed.
The following records text formerly in the specification about possible use of metadata parameters in Wallet ecosystems.
This partially addresses #21.
Possible Use of Metadata Parameters by Wallet Entities
This non-normative appendix speculates about metadata parameters that might be used
by the Entity Types defined by this specification.
Some of these are already defined by other specifications.
Some are yet to be defined, and may be defined in the future by other specifications.
Some are likely to change.
Please read this illustrative content with these caveats in mind.
Possible OpenID Wallet Provider Metadata Usage
Possible metadata parameters that could be used by
OpenID Wallet Providers with the
openid_wallet_provider
Entity Type Identifierare listed in the table below.
The table and examples below use metadata parameters defined by
[@!OpenID.Federation], [@!RFC8414], and [@!OpenID4VP].
Below is a non-normative example of
openid_wallet_provider
metadata:Possible OpenID Credential Issuer Metadata Usage
Possible metadata parameters that could be used by
OpenID Credential Issuers with the
openid_credential_issuer
Entity Type Identifierare listed in the table below.
The table and examples below use metadata parameters defined by
[@!OpenID.Federation], [@!RFC8414]], [@!RFC9126], [@!OpenID.Discovery], and [@!OpenID4VCI].
The usage described below is intended to enable
the cryptographic material used for the Credential issuance operation be consistent
and verifiable using the Trust Chain.
Below is a non-normative example of a payload of an Credential Issuer Entity Configuration:
Possible OpenID Credential Verifier Metadata Usage
Possible metadata parameters that could be used by
OpenID Wallet Credential Verifiers with the
openid_credential_verifier
Entity Type Identifierare listed in the table below.
The table and examples below use metadata parameters defined by
[@!OpenID.Federation], [@!RFC7591], [@!OpenID.Registration], [@!OAuth.JARM], and [@!OpenID4VP].
request_uri
values that are pre-registered by the Credential Verifier. These URLs MUST use thehttps
scheme.response_uri
strings, as specified by [@!OpenID4VP], to which the Wallet Instance MAY send the Authorization Response using an HTTP POST requestnone
MUST NOT be used.presentation_definition
objectsBelow is a non-normative example of the payload of a Credential Verifier Entity Configuration:
Security Considerations about the Parameters
request_uris
andresponse_uris_supported
There are scenarios where the Credential Verifier's endpoints are attested by a trusted third party, such as a registration service owned by a federation Intermediate. This Intermediate attests to the Credential Verifier's metadata and ensures its integrity and authenticity by utilizing
metadata
and themetadata_policy
in the Subordinate Statement about that Credential Verifier, as defined in the OpenID Federation specification.In these cases, the Credential Verifier is restricted from altering its endpoint URIs due to the registration requirements, unless it utilizes URI fragments as permitted under the OpenID Connect Core 1.0 specification.
To enhance the security of implementations, it is generally recommended that Credential Verifiers randomize their endpoints. This strategy involves appending random fragments to the URIs, such as https://verifier.example.org/request-uri#random-value. Such randomization can help mitigate certain types of attacks by making it more difficult for attackers to predict or reuse fixed endpoint URLs, that could be victim of abuse, such as the one caused by the issuance of many signed responses that may facilitate resource consuptions attacks.
For this reason, the parameters
metadata
ormetadata_policy
SHOULD fix the supported URIs to prevent wallet hijacks to fraudolent endpoints and at the same time allow URI randomization using fragments.Security Considerations about the End-User's Data Protection Using
presentation_definitions_supported
The
presentation_definitions_supported
enhance the End-User data protection within wallet trust frameworks. By defining the specific presentation definitions that a Credential Verifier is authorized to use, this parameter limits the amount of personal data that can be requested. This constraint prevents the over-asking of personal data, aligning with the principles of data minimization and purpose limitation under privacy regulations.The
metadata
andmetadata_policy
parameters can be used in the Federation Subordinate Statements, issued by the Trust Anchor and its Intermediates, to configure these limitations. They ensure that only the necessary data as defined by the federation's policy is requested and processed by the Credential Verifier. This approach protects End-User privacy and endures that all data collection practices are transparent and compliant with established policies.Authentic Sources
An Authentic Source is a designated authority or system responsible for providing verified and reliable data. It is up to the implementers to decide if the Authentic Source should be implemented using the OAuth 2.0 framework, which offers security protocols and extensive support for diverse authentication scenarios. In these cases, the Authentice Sources represent an OAuth 2.0 Resource Server and therefore the metadata type used is
oauth_protected_resource
, as defined in OAuth 2.0 Protected Resource Metadata.This section provides some common configurations for ...
The text was updated successfully, but these errors were encountered: