6. Aktualisierung eines Zugangstokens (Refreshing an Access Token)
Wenn der Autorisierungsserver (Authorization Server) dem Client ein Aktualisierungstoken (Refresh Token) ausgestellt hat, stellt der Client eine Aktualisierungsanforderung an den Token-Endpunkt (Token Endpoint), indem er die folgenden Parameter unter Verwendung des Formats application/x-www-form-urlencoded gemäß Anhang B mit UTF-8-Zeichenkodierung im HTTP-Anforderungsentitätskörper hinzufügt.
grant_type
Erforderlich (REQUIRED). Der Wert muss (MUST) auf „refresh_token" gesetzt werden.
refresh_token
Erforderlich (REQUIRED). Das dem Client ausgestellte Aktualisierungstoken.
scope
Optional (OPTIONAL). Der Bereich (Scope) der Zugriffsanforderung, wie in Abschnitt 3.3 beschrieben. Der angeforderte Bereich darf (MUST NOT) keinen Bereich enthalten, der nicht ursprünglich vom Ressourcenbesitzer (Resource Owner) gewährt wurde. Wenn weggelassen, wird er als gleich dem ursprünglich vom Ressourcenbesitzer gewährten Bereich behandelt.
Da Aktualisierungstokens in der Regel langlebige Anmeldeinformationen sind, die zum Anfordern zusätzlicher Zugangstokens (Access Token) verwendet werden, ist das Aktualisierungstoken an den Client gebunden, dem es ausgestellt wurde. Wenn der Client-Typ vertraulich (Confidential) ist oder dem Client Client-Anmeldeinformationen ausgestellt wurden (oder andere Authentifizierungsanforderungen zugewiesen wurden), muss (MUST) sich der Client beim Autorisierungsserver authentifizieren, wie in Abschnitt 3.2.1 beschrieben.
Beispielsweise stellt der Client die folgende HTTP-Anforderung unter Verwendung von Transport Layer Security (TLS) (mit zusätzlichen Zeilenumbrüchen nur zu Anzeigezwecken):
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA
Der Autorisierungsserver muss (MUST):
- Client-Authentifizierung für vertrauliche Clients (Confidential Client) oder für jeden Client erfordern, dem Client-Anmeldeinformationen ausgestellt wurden (oder mit anderen Authentifizierungsanforderungen)
- Den Client authentifizieren, wenn die Client-Authentifizierung eingeschlossen ist, und sicherstellen, dass das Aktualisierungstoken dem authentifizierten Client ausgestellt wurde
- Das Aktualisierungstoken validieren
Wenn gültig und autorisiert, stellt der Autorisierungsserver ein Zugangstoken (Access Token) aus, wie in Abschnitt 5.1 beschrieben. Wenn die Anforderung die Überprüfung nicht bestanden hat oder ungültig ist, gibt der Autorisierungsserver eine Fehlerantwort zurück, wie in Abschnitt 5.2 beschrieben.
Der Autorisierungsserver kann (MAY) ein neues Aktualisierungstoken (Refresh Token) ausstellen. In diesem Fall muss (MUST) der Client das alte Aktualisierungstoken verwerfen und durch das neue Aktualisierungstoken ersetzen. Der Autorisierungsserver kann (MAY) das alte Aktualisierungstoken widerrufen oder das alte Aktualisierungstoken beibehalten, nachdem er dem Client ein neues Aktualisierungstoken ausgestellt hat. Wenn ein neues Aktualisierungstoken ausgestellt wird, muss (MUST) der Bereich des Aktualisierungstokens mit dem Bereich identisch sein, den der Client in die Aktualisierungstokenanforderung eingeschlossen hat.