Skip to content

Metadata fields are defined as required when they are actually optional #37

@ThisIsMissEm

Description

@ThisIsMissEm

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)

    • dpopBoundAccessTokens

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions