The ServerMetadata and ClientMetadata define the following properties as required, however, they are optional by specification:
-
ServerMetadata https://www.rfc-editor.org/rfc/rfc8414.html
responseTypesSupported
grantTypesSupported
codeChallengeMethodsSupported
tokenEndpointAuthMethodsSupported
tokenEndpointAuthSigningAlgValuesSupported
scopesSupported
authorizationResponseIssParameterSupported
requirePushedAuthorizationRequests
pushedAuthorizationRequestEndpoint
dpopSigningAlgValuesSupported
requireRequestUriRegistration
clientIdMetadataDocumentSupported
-
ClientMetadata (I'm the co-author of CIMDs, technically all properties other than client_id are optional)
This could result in parsing errors from servers that are otherwise compliant.
This does create an issue in the Bluesky provider when building the TokenHandling as Bluesky (well, AT Protocol) requires Pushed Authorization Requests (PAR), however, for majority of OAuth servers, PAR isn't used. The tokenHandling method can't throw from what I can tell, so there's not really a good place to assert that PAR support is required.
The
ServerMetadataandClientMetadatadefine the following properties as required, however, they are optional by specification:ServerMetadatahttps://www.rfc-editor.org/rfc/rfc8414.htmlresponseTypesSupportedgrantTypesSupportedcodeChallengeMethodsSupportedtokenEndpointAuthMethodsSupportedtokenEndpointAuthSigningAlgValuesSupportedscopesSupportedauthorizationResponseIssParameterSupportedrequirePushedAuthorizationRequestspushedAuthorizationRequestEndpointdpopSigningAlgValuesSupportedrequireRequestUriRegistrationclientIdMetadataDocumentSupportedClientMetadata(I'm the co-author of CIMDs, technically all properties other thanclient_idare optional)dpopBoundAccessTokensThis could result in parsing errors from servers that are otherwise compliant.
This does create an issue in the Bluesky provider when building the
TokenHandlingas Bluesky (well, AT Protocol) requires Pushed Authorization Requests (PAR), however, for majority of OAuth servers, PAR isn't used. ThetokenHandlingmethod can't throw from what I can tell, so there's not really a good place to assert that PAR support is required.