10.5. Downgrade Attack
10.5. Downgrade Attack
Unless the protocol used by the client and the server is locked down to use an OAuth JWT-Secured Authorization Request (JAR), it is possible for an attacker to use RFC 6749 requests to bypass all the protection provided by this specification.
To prevent this kind of attack, this specification defines new client metadata and server metadata values, both named require_signed_request_object, whose values are both booleans.
When the value of it as client metadata is true, then the server MUST reject the authorization request from the client that does not conform to this specification. It MUST also reject the request if the Request Object uses an alg value of none when this server metadata value is true. If omitted, the default value is false.
When the value of it as server metadata is true, then the server MUST reject the authorization request from any client that does not conform to this specification. It MUST also reject the request if the Request Object uses an alg value of none. If omitted, the default value is false.
Note that even if require_signed_request_object metadata values are not present, the client MAY use signed Request Objects, provided that there are signing algorithms mutually supported by the client and the server. Use of signing algorithm metadata is described in Section 4.