OAuth2 Clients verwalten

OAuth2 · RFC 6749 · Client Credentials

OAuth2 Clients

Erstellen und verwalten Sie OAuth2 Clients für den API-Zugriff. Jeder Client erhält individuelle Scopes (Berechtigungen) und kann Token mit 1 Stunde Gültigkeit generieren.

POST /oauth/token
grant_type=client_credentials

Client Credentials Flow

Der OAuth2 Client Credentials Grant (RFC 6749 Section 4.4) für Machine-to-Machine Authentifizierung

1

Client erstellen

Im Backend unter Tools → xoPort OAuth2 Clients einen neuen Client mit gewünschten Scopes anlegen.

2

Token anfordern

Mit Client-ID und Secret ein Access-Token vom /oauth/token Endpoint anfordern.

3

API nutzen

Das Token im Authorization: Bearer Header für alle API-Requests verwenden.

Token anfordern

curl -X POST https://shop.de/xpanel/xoport/oauth/token 
  -H "Content-Type: application/x-www-form-urlencoded" 
  -d "grant_type=client_credentials" 
  -d "client_id=xoc_abc123..." 
  -d "client_secret=xos_def456..."

Response

{
  "access_token": "xoat_eyJhbGciOiJIUzI1NiIs...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "products:read products:write categories:read"
}

Verfügbare Scopes

Scope Beschreibung Operationen
products:read Produkte lesen GET
products:write Produkte erstellen/aktualisieren POST
products:delete Produkte löschen DELETE
categories:read Kategorien lesen GET
categories:write Kategorien erstellen/aktualisieren POST
categories:delete Kategorien löschen DELETE
customers:read Kunden lesen GET
customers:write Kunden erstellen/aktualisieren POST
customers:delete Kunden löschen DELETE
manufacturers:read Hersteller lesen GET
manufacturers:write Hersteller erstellen/aktualisieren POST
manufacturers:delete Hersteller löschen DELETE
orders:read Bestellungen lesen GET
news:read News-Artikel lesen GET
news:write News-Artikel erstellen/aktualisieren POST
news:delete News-Artikel löschen DELETE
newscategories:read News-Kategorien lesen GET
newscategories:write News-Kategorien erstellen/aktualisieren POST
newscategories:delete News-Kategorien löschen DELETE
faq:read FAQ lesen GET
faq:write FAQ erstellen/aktualisieren POST
faq:delete FAQ löschen DELETE
faqcategories:read FAQ-Kategorien lesen GET
faqcategories:write FAQ-Kategorien erstellen/aktualisieren POST
faqcategories:delete FAQ-Kategorien löschen DELETE

Scope-Introspection

Mit dem /me Endpoint können Sie die Scopes des aktuellen Tokens abfragen:

curl -X GET https://shop.de/xpanel/xoport/me 
  -H "Authorization: Bearer xoat_eyJhbGciOi..."

Response

{
  "success": true,
  "client_id": "xoc_abc123...",
  "client_name": "Mein API Client",
  "scopes": ["products:read", "products:write", "categories:read"],
  "token_expires_at": "2026-01-26T20:00:00+01:00"
}

IP-Einschränkung (optional)

Seit v2.119.0 Die REST-API verlangt immer einen OAuth2-Token, und es gelten dessen Scopes. Die IP-Freigabe der XML-Schnittstelle (XML_PORT_IP_FILTER) berechtigt nicht zur REST-API.

Zusätzlich können Sie den Zugriff auf feste Adressen beschränken. Ist die Einstellung XOPORT_REST_IP_LIST gefüllt, muss ein Aufruf von einer gelisteten Adresse kommen und einen gültigen Token tragen; die Liste ersetzt den Token nie. Aufrufe von anderen Adressen erhalten 403 mit reason: deny_ip_not_listed.

Sicherheitshinweis

Speichern Sie Client-Secret und Access-Token niemals im Frontend-Code oder in öffentlichen Repositories!