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

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
- Öffne Postman
- Erstelle eine neue Anfrage
- Gehe auf Authorization und zum Punkt Configure New Token
- 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 diexsappname
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.