Ein Zugriffstoken (Access Token) ist in SAP Business One ein Berechtigungsnachweis, den eine Anwendung bei jeder Anfrage an den Service Layer mitschickt, statt sich per Login-Aufruf anzumelden. Der Authentication Server stellt das Zugriffstoken aus, und der Service Layer prüft es.
Ausstellung
Die Anwendung erhält das Zugriffstoken am Token-Endpunkt des Authentication Servers. Je nach Client-Typ nutzt sie dafür das Verfahren Authorization Code (mit PKCE) oder Client Credentials für Maschine-zu-Maschine-Dienste (Daemon). Die Antwort enthält neben dem Zugriffstoken unter anderem die Gültigkeitsdauer. Web- und Desktop-Anwendungen erhalten zusätzlich ein Refresh Token zum Erneuern. Im Daemon-Verfahren gibt es kein Refresh Token: Die Anwendung fordert nach einem Fehler 401 ein neues Zugriffstoken an.
Verwendung
Die Anwendung schickt das Zugriffstoken im Authorization-Header als Bearer-Token mit, zusammen mit der Mandanten-ID. Der Service Layer prüft das Token gegen den Authentication Server. Anschließend gleicht er Rollen und Berechtigungen des Tokens mit dem Berechtigungsmodell von SAP Business One ab. Ab Feature Package 2602 muss die Client-ID des Service Layers im Audience-Claim des Tokens stehen. Auch die DI API kann sich per Zugriffstoken verbinden, allerdings nicht für den Benutzer eines Daemon Service.
Fehlerbilder
Der Statuscode 401 bedeutet, dass die Authentifizierung fehlt oder ungültig ist. Mögliche Ursachen sind ein fehlerhaftes Token, eine fehlende Benutzerbindung oder ein Session-Timeout. Der Statuscode 403 bedeutet, dass die Identität bekannt ist, die Objektberechtigung aber fehlt. In diesem Fall prüft der Administrator die Berechtigungen des Endnutzers in SAP Business One.
Bezug zu SAP Business One
Zugriffstoken spielen auch bei Webhooks eine Rolle. Nutzt ein Webhook-Abonnement die Authentifizierungsart OAuth, trägt jede Benachrichtigung ein Zugriffstoken. Das Beispielprojekt für das Model Context Protocol aus Feature Package 2608 setzt ebenfalls auf Zugriffstoken. Verweigert der Service Layer den Zugriff, gibt der Beispielserver keine Daten zurück.
Abgrenzung
Das Zugriffstoken ersetzt auf diesem Weg den Login-Aufruf und das Session-Cookie. Das Refresh Token ist dagegen kein Zugriffstoken: Es dient dazu, ein neues Zugriffstoken zu erhalten.
Shopware 6 für SAP Business One
SAP Business One und DATEV – Synchron
DATEV und SAP Business One Export & Import
Elektronische Rechnungen an Behörden
SAP Business One Connect für Frachtführer

