7. Zugriff auf geschützte Ressourcen (Accessing Protected Resources)
Der Client (Client) greift auf geschützte Ressourcen zu, indem er das Zugangstoken (Access Token) dem Ressourcenserver (Resource Server) präsentiert. Der Ressourcenserver muss (MUST) das Zugangstoken validieren und sicherstellen, dass es nicht abgelaufen ist und dass sein Bereich (Scope) die angeforderte Ressource abdeckt. Die vom Ressourcenserver verwendeten Methoden zur Validierung des Zugangstokens (sowie alle Fehlerantworten) liegen außerhalb des Umfangs dieser Spezifikation, beinhalten jedoch im Allgemeinen eine Interaktion oder Koordination zwischen dem Ressourcenserver und dem Autorisierungsserver (Authorization Server).
Die Methode, mit der der Client das Zugangstoken zur Authentifizierung beim Ressourcenserver verwendet, hängt vom Typ des vom Autorisierungsserver ausgestellten Zugangstokens ab. Typischerweise beinhaltet dies die Verwendung des HTTP-„Authorization"-Anforderungsheaderfelds [RFC2617] mit einem Authentifizierungsschema, das durch die Spezifikation des verwendeten Zugangstoken-Typs definiert ist, wie z. B. [RFC6750].
7.1. Zugangstoken-Typen (Access Token Types)
Der Zugangstoken-Typ (Access Token Type) stellt dem Client die Informationen zur Verfügung, die erforderlich sind, um das Zugangstoken erfolgreich zu nutzen, um eine geschützte Ressourcenanforderung zu stellen (zusammen mit typspezifischen Attributen). Der Client darf (MUST NOT) ein Zugangstoken verwenden, wenn er den Token-Typ nicht versteht.
Beispielsweise wird der in [RFC6750] definierte „bearer"-Token-Typ verwendet, indem einfach die Zugangstoken-Zeichenfolge in die Anforderung eingefügt wird:
GET /resource/1 HTTP/1.1
Host: example.com
Authorization: Bearer mF_9.B5f-4.1JqM
Während der in [OAuth-HTTP-MAC] definierte „mac"-Token-Typ verwendet wird, indem ein Message Authentication Code (MAC)-Schlüssel zusammen mit dem Zugangstoken ausgegeben wird, der verwendet wird, um bestimmte Komponenten der HTTP-Anforderungen zu signieren:
GET /resource/1 HTTP/1.1
Host: example.com
Authorization: MAC id="h480djs93hd8",
nonce="274312:dj83hs9s",
mac="kDZvddkndxvhGRXZhvuDjEWhGeE="
Die obigen Beispiele dienen nur zur Veranschaulichung. Entwicklern wird empfohlen, die Spezifikationen [RFC6750] und [OAuth-HTTP-MAC] vor der Verwendung zu konsultieren.
Jede Zugangstoken-Typdefinition spezifiziert die zusätzlichen Attribute (falls vorhanden), die zusammen mit dem „access_token"-Antwortparameter an den Client gesendet werden. Sie definiert auch die HTTP-Authentifizierungsmethode, die verwendet wird, um das Zugangstoken beim Stellen einer geschützten Ressourcenanforderung einzuschließen.
7.2. Fehlerantwort (Error Response)
Wenn eine Ressourcenzugriffsanforderung fehlschlägt, sollte (SHOULD) der Ressourcenserver den Client über den Fehler informieren. Obwohl die Details solcher Fehlerantworten außerhalb des Umfangs dieser Spezifikation liegen, etabliert dieses Dokument ein gemeinsames Register in Abschnitt 11.4 für Fehlerwerte, die zwischen OAuth-Token-Authentifizierungsschemata geteilt werden sollen.
Neue Authentifizierungsschemata, die hauptsächlich für die OAuth-Token-Authentifizierung entwickelt wurden, sollten (SHOULD) einen Mechanismus definieren, um dem Client einen Fehlerstatuscode bereitzustellen, wobei die zulässigen Fehlerwerte im durch diese Spezifikation eingerichteten Fehlerregister registriert sind.
Solche Schemata können (MAY) den Satz gültiger Fehlercodes auf eine Teilmenge der registrierten Werte beschränken. Wenn der Fehlercode unter Verwendung eines benannten Parameters zurückgegeben wird, sollte (SHOULD) der Parametername „error" sein.
Andere Schemata, die für die OAuth-Token-Authentifizierung verwendet werden können, aber nicht hauptsächlich für diesen Zweck entwickelt wurden, können (MAY) ihre Fehlerwerte auf die gleiche Weise an das Register binden.
Neue Authentifizierungsschemata können (MAY) auch wählen, die Verwendung der Parameter „error_description" und „error_uri" zu spezifizieren, um Fehlerinformationen in einer Weise zurückzugeben, die parallel zu ihrer Verwendung in dieser Spezifikation ist.