Zum Hauptinhalt springen

5.2. Passing a Request Object by Reference (Anfrageobjekt per Referenz)

5.2. Passing a Request Object by Reference (Anfrageobjekt per Referenz)

Der Autorisierungsanfrageparameter request_uri ermöglicht es, eine OAuth-Autorisierungsanfrage per Referenz statt per Wert zu übermitteln. Die Verwendung entspricht der des Parameters request, außer dass der Wert des Request Object von der durch die angegebene URI identifizierten Ressource abgerufen wird, anstatt per Wert übergeben zu werden.

Die gesamte Request-URI SOLLTE 512 ASCII-Zeichen nicht überschreiten. Es gibt zwei Gründe für diese Einschränkung:

  1. Zum Zeitpunkt der Abfassung können viele Mobiltelefone auf dem Markt keine großen Nutzdaten akzeptieren; die Grenze liegt typischerweise bei 512 oder 1024 ASCII-Zeichen.

  2. Bei langsamen Verbindungen wie 2G verursachen große URLs langsame Antworten; aus Sicht der Benutzererfahrung sind sie unerwünscht.

Sofern die URI dem Client nicht vom Autorisierungsserver bereitgestellt wird, MUSS der Inhalt der durch request_uri referenzierten Ressource ein Request Object sein, und der Autorisierungsserver MUSS darauf zugreifen können. Im ersten Fall MUSS request_uri eine https-URI gemäß [RFC7230], Abschnitt 2.7.2, sein. Im zweiten Fall MUSS es eine URN gemäß [RFC8141] sein.

Das folgende Beispiel zeigt den Inhalt einer Request-Object-Ressource, auf die durch request_uri verwiesen werden kann (Zeilenumbrüche innerhalb von Werten nur zur Darstellung):

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

Siehe 5.2.1. URI Referencing the Request Object (URI mit Verweis auf das Anfrageobjekt), 5.2.2. Request Using the "request_uri" Request Parameter (Anfrage mit dem Parameter request_uri) und 5.2.3. Authorization Server Fetches Request Object (Autorisierungsserver holt das Anfrageobjekt).