Remember support for each server
04Capability discovery and response policy distinguish required rejection from recommendations and local choices.
Separate nonsupporting server sends no iss. A local policy MAY accept or reject this response. Acceptance here is only a policy gate; a multi-server client still needs another valid mix-up defense.
Source for this drawing: RFC 9207 · Read RFC section 3 ↗
New to this? Start hereA quick picture + helpful background
A key is different from permission.
An app, a person, and a server have different roles. Follow who asks, who grants permission, and who checks the credential. A key in the drawing is an analogy, not a literal protocol field.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Do not turn a missing required issuer into a silent downgrade.
- authorization_response_iss_parameter_supported is a boolean; omission defaults to false. Supporting servers publishing metadata MUST advertise true and the matching issuer.
- Clients using both supporting and nonsupporting servers MUST retain each server’s support state. A response without iss from a server configured as supporting MUST be rejected.
- Clients SHOULD discard a response containing iss from a server not indicating support. Legitimate unadvertised support is possible; local policy can allow it, while still validating the present iss as required.
- Clients MAY accept responses without iss from nonsupporting servers, or require iss everywhere. That local policy does not override the configured-support MUST. Clients not implementing this extension MUST ignore unrecognized iss under RFC 6749.
- Accepting a legacy response is not a complete mix-up defense. Later RFC 9700 §4.4.2 still requires a defense for clients using multiple servers; other countermeasures have their own conditions.
Metadata fragments omit unrelated required fields for readability; they are not complete discovery documents. A client that does not implement this extension ignores the unknown parameter; that behavior is not drawn as a supporting client’s bypass.
Read the RFC section ↗