Open stiiin opened 2 years ago
Merk overigens op dat openid.net ook verwijst naar de specificatie "JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)" van de Financial-grade API working group. In deze specificatie wordt onder andere de response mode form_post.jwt
gedefiniëerd. Ik weet te weinig van deze specificatie af, maar zie wel dat van de bovengenoemde implementaties alleen Keycloak ondersteuning lijkt te bieden.
Om te voorkomen dat authorization codes uitlekken via de browsergeschiedenis en/of Referer headers, adviseert de huidige IETF draft voor "OAuth 2.0 Security Best Current Practice" het volgende:
De onderliggende specificaties bestaan al enige tijd (de specificatie voor response modes in 2014 is gefinaliseerd, de specificatie van de
form_post
response mode in 2015). Een korte zoektocht wekt het vermoeden datform_post
breed wordt ondersteund (Auth0, Azure AD, Keycloak, Okta).Het lijkt me daarom niet vreemd om op termijn deze response mode ook verplicht te stellen voor een v2.0 van het profiel. Hierbij de suggestie om het in ieder geval op te nemen in het profiel als aanbeveling.
De secties 2.3.1, 3.1.5 en 3.3 (refererend aan de huidige v1.0 van het profiel) moeten hiervoor worden aangepast.
Voor zover ik begrijp (maar ik laat me graag corrigeren) isquery
effectief de verstekwaarde voorresponse_mode
. Een implementatie die alléén deze response mode ondersteunt is nog compliant met het huidige profiel, waardoor het verplichten vanform_post
een breaking change zou zijn. Omdat ik niet bekend genoeg ben met het standaardiseringsproces, heb ik zowel mijn inschatting gegeven voor een backwards compatible change van het profiel (v1.1) en een breaking change van het profiel (v2.0): * Vul de sectie _2.3.1 Requests to the Authorization Endpoint_ aan met de parameter `response_mode`. * v1.1: Vereis het gebruik van de waarde `form_data`. * v2.0: Geef aan dat de parameter optioneel is. Raad het gebruik van de waarde `form_data` aan. (Sta niet expliciet de waarde `query` toe, gezien de aanwijzing in ["OAuth 2.0 Multiple Response Type Encoding Practices"](https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#ResponseModes).) * Vul de sectie _3.1.5 Discovery_ aan met [het optionele veld `response_modes_supported`](https://datatracker.ietf.org/doc/html/rfc8414#page-5). * v1.1: Vereis dat, wanneer dit veld is ingevuld, tenminste `form_data` wordt ondersteund. * v2.0: Vereis dat, wanneer dit veld is ingevuld, tenminste `form_data` en `query` worden ondersteund. * Wat betreft sectie _3.3 Response to Authorization Requests_: * v1.1: wijzig de sectie zo, dat de `form_data` response modes wordt gedefiniëerd. * v2.0: vul de sectie aan met een definitie van tenminste de `form_data` en `query` response modes.