Skip to content

Commit 8d148e9

Browse files
committed
feat: add client metadata
1 parent 565a092 commit 8d148e9

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

draft-ietf-oauth-attestation-based-client-auth.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,20 @@ The Authorization Server or Resource Server SHOULD communicate supported algorit
600600

601601
The Authorization Server or Resource Server MAY signal that it requires a Client Attestation as an additional security signal as described in [](#additional-security-signal). The Authorization Server includes the `client_attestation_pop_methods_supported` metadata parameter, containing a JSON array of the Proof of Possession methods it accepts, in its metadata as defined in {{RFC8414}}. The Resource Server uses the same `client_attestation_pop_methods_supported` parameter in its metadata as defined in {{RFC9728}}. The Proof of Possession method values are registered in the "OAuth Client Attestation Proof-of-Possession Methods" registry established by this specification (see [](#pop-methods)).
602602

603+
# Client Metadata {#client-metadata}
604+
605+
This section defines client metadata parameters for use with attestation-based client authentication. As described in {{RFC7591}}, client metadata defines a general data model for Clients that is useful even when the Dynamic Client Registration Protocol is not being used. A Client MAY use these values to compare its own capabilities against the Authorization Server or Resource Server metadata defined in [](#as-metadata) to determine whether it can interoperate with a given server prior to attempting authentication.
606+
607+
A Client that supports attestation-based client authentication as defined in this specification indicates this by using the value `attest_jwt_client_auth` or `attest_jwt_client_auth_dpop` in the `token_endpoint_auth_method` client metadata parameter defined in {{RFC7591}}.
608+
609+
In addition, the following client metadata parameters are defined:
610+
611+
* `client_attestation_signing_alg_values_supported`: OPTIONAL. JSON array containing a list of the JWS `alg` values (as defined in {{IANA.JOSE.ALGS}}) supported by the Client for signing the Client Attestation JWT. The values `none` and any symmetric algorithms MUST NOT be present.
612+
* `client_attestation_pop_signing_alg_values_supported`: OPTIONAL. JSON array containing a list of the JWS `alg` values (as defined in {{IANA.JOSE.ALGS}}) supported by the Client for signing the Client Attestation PoP JWT. The values `none` and any symmetric algorithms MUST NOT be present.
613+
* `client_attestation_pop_methods_supported`: OPTIONAL. JSON array of case-sensitive strings, each identifying a Proof of Possession method supported by the Client, as registered in the "OAuth Client Attestation Proof-of-Possession Methods" registry established by this specification (see [](#pop-methods)).
614+
615+
These client metadata values are advertisements of Client capability. The Authorization Server or Resource Server enforces its own accepted algorithm and Proof of Possession method policies independently, and is not required to consult these values when validating an incoming request.
616+
603617
# Implementation Considerations
604618

605619
## DPoP Combined Mode Considerations
@@ -781,6 +795,29 @@ This specification requests registration of the following value in the IANA "OAu
781795
* Change Controller: IETF
782796
* Reference: [](#additional-security-signal) of this specification
783797

798+
## OAuth Dynamic Client Registration Metadata Registration
799+
800+
This specification requests registration of the following values in the IANA "OAuth Dynamic Client Registration Metadata" registry of {{IANA.OAuth.Params}} established by {{RFC7591}}.
801+
802+
* Metadata Name: client_attestation_signing_alg_values_supported
803+
* Metadata Description: JSON array containing a list of the JWS signing algorithms supported by the Client for signing the Client Attestation JWT.
804+
* Change Controller: IETF
805+
* Reference: [](#client-metadata) of this specification
806+
807+
<br/>
808+
809+
* Metadata Name: client_attestation_pop_signing_alg_values_supported
810+
* Metadata Description: JSON array containing a list of the JWS signing algorithms supported by the Client for signing the Client Attestation PoP JWT.
811+
* Change Controller: IETF
812+
* Reference: [](#client-metadata) of this specification
813+
814+
<br/>
815+
816+
* Metadata Name: client_attestation_pop_methods_supported
817+
* Metadata Description: JSON array of strings, each identifying a Proof of Possession method supported by the Client.
818+
* Change Controller: IETF
819+
* Reference: [](#client-metadata) of this specification
820+
784821
## OAuth Client Attestation Proof-of-Possession Methods Registry {#pop-methods}
785822

786823
This specification establishes the IANA "OAuth Client Attestation Proof-of-Possession Methods" registry. This registry lists the Proof of Possession methods that a Client may use to demonstrate possession of the Client Instance Key, referenced by the `client_attestation_pop_methods_supported` metadata parameter defined in [](#additional-security-signal).
@@ -873,6 +910,11 @@ This section requests registration of the following scheme in the "Hypertext Tra
873910

874911
# Document History
875912

913+
-11
914+
915+
* add Client Metadata section defining `client_attestation_signing_alg_values_supported`, `client_attestation_pop_signing_alg_values_supported`, and `client_attestation_pop_methods_supported` for use by Clients (addresses #170)
916+
* register the new client metadata parameters in the "OAuth Dynamic Client Registration Metadata" IANA registry
917+
876918
-10
877919

878920
* add `client_attestation_pop_methods_supported` Authorization Server and Resource Server metadata

0 commit comments

Comments
 (0)