Mein Icon

SAP BTP XSUAA Service einrichten und oAuth Token über Postman abfragen

28. Juni 2025·10 Minuten zu lesen
sap-btp-xsuaa-oauth-token-postman

Einführung

In diesem Beitrag zeige ich dir, wie du den SAP BTP XSUAA-Service (SAP Authorization and Trust Management) korrekt einrichtest und wie du über Postman ein Bearer Token abfragst – sowohl über Client Credentials als auch mit Benutzername und Passwort.


1. XSUAA-Service erstellen und konfigurieren

Zuerst musst du eine Service-Instanz des XSUAA-Service anlegen. Das geht z. B. über die SAP BTP CLI oder direkt im Cockpit.

Beispiel xs-security.json

{
  "xsappname": "mein-appname",
  "tenant-mode": "dedicated",
  "scopes": [
    {
      "name": "$XSAPPNAME.scope1",
      "description": "Zugriff auf Scope 1"
    }
  ],
  "roles": [
    {
      "name": "Viewer",
      "description": "Lesender Zugriff",
      "scope-references": [
        "$XSAPPNAME.scope1"
      ]
    }
  ]
}

Instanz erstellen

cf create-service xsuaa application meine-xsuaa-instanz -c xs-security.json

Hinweis: Stelle sicher, dass du das xs-security.json vorher validierst.
Außerdem musst du entweder den Service an eine Applikation binden oder Service Keys erstellen, um an die benötigten Client-Credentials zu gelangen.


2. Bearer Token über Postman abrufen

Variante 1: Client Credentials

  1. Öffne Postman
  2. Erstelle eine neue Anfrage
  3. Gehe auf Authorization und zum Punkt Configure New Token
  4. Gib folgende Informationen ein:
Key Value
Token Name beliebig
Grant Type Client Credentials
Access Token URL https://<your-region>.authentication.sap.hana.ondemand.com/oauth/token
Client ID <dein-client-id>
Client Secret <dein-client-secret>
Scope <XSAPPNAME>.<Scope>


Variante 2: Password Credentials

Damit können sich SAP ID User mit ihren Credentials einen Token ausstellen lassen.
Die SAP ID Credentials (nicht zu verwechseln mit dem Universal Account) können im SAP ID Service gepflegt werden. Denke daran, dass der User zuvor auf Subaccount Ebene die entsprechende Role Collection zugewiesen bekommen muss.

Key Value
Token Name beliebig
Grant Type Password Credentials
Client ID <client-id>
Client Secret <client-secret>
Username <email>
Password <sap-id-passwort>


3. Welche Client ID / Secret verwenden?

Je nach Szenario kommt eine andere XSUAA-Instanz zum Einsatz:

Szenario 1: App besitzt eigene XSUAA-Instanz (Consumer)

Die App verwendet ihre eigene client_id und client_secret, um Scopes zu nutzen, die direkt in ihrer XSUAA definiert sind.

Szenario 2: Zugriff auf zentrale Scopes aus einer Provider-Instanz

Wenn zentrale Rollen und Scopes in einer separaten (Provider-)Instanz verwaltet werden, kannst du:

  • grant-as-authority-to-apps in der XSUAA-Konfiguration des Providers setzen.
  • In der Consumer-App authorities auf die xsappname der Provider-App setzen.
  • Dann kannst du mit den Client-Credentials der Consumer-App Scopes der Provider-App anfordern.

Dadurch kann es mehrere XSUAA-Instanzen geben: eine verwaltet zentral Rollen (Provider), andere greifen darauf zu (Consumer).

Beispiel Konfiguration:

"authorities": [
  "provider-xsappname"
]
"role-templates": [
  {
    "name": "admin",
    "description": "Zentrale Admin-Rolle",
    "scope-references": [
      "provider-xsappname.admin"
    ]
  }
]

Hinweis: Benutzer benötigen die Rolle aus der zentralen Instanz, der Zugriff wird dann aber mit dem Token einer anderen App durchgeführt.

Mehr zu diesem Thema erfährst du hier.


Fazit

Der XSUAA-Service ist essenziell für die Authentifizierung und Autorisierung in der SAP BTP. Mit der richtigen Konfiguration und Tools wie Postman kannst du Tokens einfach testen und deine App sicher und modular aufbauen.

© Felix Stiffel 2025 | Alle Rechte vorbehalten