Show TOC

Berechtigungscode-Flow für den OAuth-2.0-ClientLocate this document in the navigation structure

Ein Reihe der von SAP ausgelieferten Service-Provider verwenden den Berechtigungscode-Flow, um dem OAuth-2.0-Client einen Zugriffstoken für einen Service-Provider zu erteilen.

Für den Zugriff auf einen durch OAuth 2.0 geschützten Service muss sich der OAuth-2.0-Client mit einem Zugriffstoken authentifizieren. Der Berechtigungscode-Flow wird zur Beschaffung eines initialen Zugriffstokens und eines Aktualisierungstokens von einem OAuth-2.0-Autorisierungsserver verwendet. Der OAuth-2.0-Client kann nun immer dann den Aktualisierungstoken zur selbstständigen Anforderung neuer Zugriffstoken verwenden, wenn ein Zugriffstoken abgelaufen ist.

Die Erteilungsart Berechtigungscode entspricht dem RFC-6749-Standard von IETF. Weitere Informationen finden Sie in den verwandten Links.

  1. Der OAuth-2.0-Client startet den Berechtigungscode-Flow. Er leitet den Browser des Ressourcenverantwortlichen zum Autorisierungsserver um, wo der OAuth-2.0-Client einen Berechtigungscode erhält.
  2. Bevor der Autorisierungsserver einen Berechtigungscode ausstellt, authentifiziert er den Ressourcenverantwortlichen und fragt nach einer Bestätigung der angeforderten OAuth-2.0-Scopes.
  3. Nach der Bestätigung der Scopes durch den Ressourcenverantwortlichen stellt der Autorisierungsserver einen temporären Berechtigungscode aus. Er gibt den Berechtigungscode an den OAuth-2.0-Client über eine Browser-Umleitung zurück.
  4. Anschließend fordert der OAuth-2.0-Client beim Autorisierungsserver im Tausch gegen den Berechtigungscode einen Zugriffstoken und einen Aktualisierungstoken an. Der OAuth-2.0-Client sendet die Anforderung direkt an den Autorisierungsserver (keine Browser-Umleitung).
  5. Der Autorisierungsserver antwortet schließlich auf die Anforderung des OAuth-2.0-Clients und stellt einen Zugriffstoken und/oder bei entsprechender Anforderung einen Aktualisierungstoken aus.

Um den Berechtigungscode-Flow zu starten, können Sie den Erteilungsendpunkt aufrufen oder Transaktion OA2C_GRANT verwenden (siehe den verwandten Link).