Description
According to RFC7521 this draft aims to give specification about how to get authenticated with an AS, as we read in the introductory text
[RFC7521] defines a way for a client to include an assertion in a token request to an authorization server for the purposes of client authentication. This specification uses this framework to define a new assertion type that provides a way for a client instance to authenticate itself with the authorization server through an assertion that is bound to a public key (for proof of possession).
If the usefulness and purpose of this draft is clear, at the same time we perceive a great potential that could also be useful in other contexts.
Lately there has been a lot of talk about the use of the nonce as a definitive prevention against replay attacks, and the importance of the nonce endpoint for issuing these is often discussed.
In the background we have the emerging wallet ecosystem which proposes reversed roles at different times, where the wallet is a client in the issuance phase towards a credential issuer which is an AS, while it is a sort of AS in the presentation phase towards the Relying Party.
This draft could enable the authentication of a client (wallet) to a third party (either this AS or RP) before obtaining the nonce.
the possible nonce endpoint could present itself as a protected endpoint, the nonce should only be issued to authenticated parties.
This generalization would require greater flexibility compared to the current purposes of the draft, which envisages its use only when the audience is an AS, while it could also be an RP, where the wallet instance attestation with PoP can be provided before any kind of transaction takes place (allowing the RP to discover the wallet capabilities before issuing the signed request object).