5.2. Passing a Request Object by Reference
5.2. Passing a Request Object by Reference
Le paramètre de demande d'autorisation request_uri permet de transmettre une demande d'autorisation OAuth par référence plutôt que par valeur. Son usage est le même que celui du paramètre request, sauf que la valeur du Request Object est récupérée depuis la ressource identifiée par l'URI spécifiée plutôt que transmise par valeur.
L'URI de demande complète NE DEVRAIT PAS dépasser 512 caractères ASCII. Cette restriction tient à deux raisons :
-
Au moment de la rédaction, de nombreux téléphones sur le marché ne peuvent pas accepter de charges utiles volumineuses ; la limite est en général de 512 ou 1 024 caractères ASCII.
-
Sur des liaisons lentes comme la 2G, des URL longues ralentissent les réponses ; du point de vue de l'expérience utilisateur, elles sont indésirables.
Sauf si l'URI est fournie au client par le serveur d'autorisation, le contenu de la ressource référencée par request_uri DOIT être un Request Object, et le serveur d'autorisation DOIT pouvoir y accéder. Dans le premier cas, request_uri DOIT être une URI https telle que définie dans [RFC7230], section 2.7.2. Dans le second cas, ce DOIT être un URN tel que défini dans [RFC8141].
Voici un exemple de contenu de ressource Request Object pouvant être référencé par request_uri (coupures de ligne dans les valeurs pour l'affichage uniquement) :
eyJhbGciOiJSUzI1NiIsImtpZCI6ImsyYmRjIn0.ewogICAgImlzcyI6ICJzNkJoZF
JrcXQzIiwKICAgICJhdWQiOiAiaHR0cHM6Ly9zZXJ2ZXIuZXhhbXBsZS5jb20iLAog
ICAgInJlc3BvbnNlX3R5cGUiOiAiY29kZSBpZF90b2tlbiIsCiAgICAiY2xpZW50X2
lkIjogInM2QmhkUmtxdDMiLAogICAgInJlZGlyZWN0X3VyaSI6ICJodHRwczovL2Ns
aWVudC5leGFtcGxlLm9yZy9jYiIsCiAgICAic2NvcGUiOiAib3BlbmlkIiwKICAgIC
JzdGF0ZSI6ICJhZjBpZmpzbGRraiIsCiAgICAibm9uY2UiOiAibi0wUzZfV3pBMk1q
IiwKICAgICJtYXhfYWdlIjogODY0MDAKfQ.Nsxa_18VUElVaPjqW_ToI1yrEJ67BgK
b5xsuZRVqzGkfKrOIX7BCx0biSxYGmjK9KJPctH1OC0iQJwXu5YVY-vnW0_PLJb1C2
HG-ztVzcnKZC2gE4i0vgQcpkUOCpW3SEYXnyWnKzuKzqSb1wAZALo5f89B_p6QA6j6
JwBSRvdVsDPdulW8lKxGTbH82czCaQ50rLAg3EYLYaCb4ik4I1zGXE4fvim9FIMs8O
CMmzwIB5S-ujFfzwFjoyuPEV4hJnoVUmXR_W9typPf846lGwA8h9G9oNTIuX8Ft2jf
pnZdFmLg3_wr3Wa5q3a-lfbgF3S9H_8nN3j1i7tLR_5Nz-g
Voir 5.2.1. URI Referencing the Request Object, 5.2.2. Request Using the "request_uri" Request Parameter et 5.2.3. Authorization Server Fetches Request Object.