Mein Icon

XSUAA-Service: Authentifizierung und Scopes in der SAP BTP

28. Juni 2025·5 Minuten zu lesen
xsuaa-app-authentifizierung-scopes

Einführung

Der XSUAA-Service (SAP Authorization and Trust Management Service) ist ein zentraler Bestandteil der SAP Business Technology Platform (BTP). Er ermöglicht die Authentifizierung von Anwendungen und die Verwaltung von Berechtigungen über sogenannte Scopes. In diesem Artikel erfahren Sie, wie Sie den XSUAA-Service konfigurieren, Service-Keys generieren und diese zur Authentifizierung Ihrer Anwendungen nutzen können.

Was ist der XSUAA-Service?

Der XSUAA-Service bietet OAuth 2.0-basierte Authentifizierung und Autorisierung für Anwendungen, die in der SAP BTP gehostet werden. Er ermöglicht die Definition von Rollen, Scopes und Berechtigungen, die dann über Service-Keys oder andere Mechanismen in Anwendungen integriert werden können.

Konfiguration des XSUAA-Services

Die Konfiguration des XSUAA-Services erfolgt über eine JSON-Datei, die die Rollen, Scopes und Berechtigungen definiert. Ein Beispiel für eine solche Konfiguration sieht wie folgt aus:

{
  "xsappname": "my-xsuaa-service",
  "tenant-mode": "dedicated",
  "oauth2-configuration": {
    "credential-types": ["binding-secret"],
    "redirect-uris": ["https://my-app.cfapps.eu10.hana.ondemand.com/**"]
  },
  "scopes": [
    {
      "name": "$XSAPPNAME.read",
      "grant-as-authority-to-apps": [
        "$XSAPPNAME(application,my-xsuaa-client-read)"
      ]
    },
    {
      "name": "$XSAPPNAME.edit",
      "grant-as-authority-to-apps": [
        "$XSAPPNAME(application,my-xsuaa-client-edit)"
      ]
    }
  ],
  "role-templates": [
    {
      "name": "Reader",
      "default-role-name": "Reader",
      "description": "Leseberechtigung",
      "scope-references": ["$XSAPPNAME.read"]
    },
    {
      "name": "Editor",
      "default-role-name": "Editor",
      "description": "Schreibberechtigung",
      "scope-references": ["$XSAPPNAME.edit"]
    }
  ]
}

Zusätzlich können Sie spezifische Konfigurationen für Clients definieren, wie in den Dateien xs-security-client-read.json und xs-security-client-edit.json. Diese Dateien enthalten die Berechtigungen für spezifische Anwendungen oder Benutzergruppen.

Beispiel: xs-security-client-read.json

{
  "xsappname": "my-xsuaa-client-read",
  "tenant-mode": "dedicated",
  "oauth2-configuration": {
    "credential-types": ["binding-secret"]
  },
  "authorities": [
    "$XSAPPNAME(application,my-xsuaa-service).read"
  ]
}

Beispiel: xs-security-client-edit.json

{
  "xsappname": "my-xsuaa-client-edit",
  "tenant-mode": "dedicated",
  "oauth2-configuration": {
    "credential-types": ["binding-secret"]
  },
  "authorities": [
    "$XSAPPNAME(application,my-xsuaa-service).edit"
  ]
}

Diese Dateien definieren, welche Scopes (read oder edit) den jeweiligen Clients zugewiesen werden. Sie sind besonders nützlich, wenn Sie unterschiedliche Berechtigungen für verschiedene Anwendungen oder Benutzergruppen benötigen.

Wichtige Bestandteile der Konfiguration

  1. xsappname: Der Name der XSUAA-Instanz. Dieser wird in Scopes und Rollenreferenzen verwendet.
  2. tenant-mode: Gibt an, ob die Anwendung mandantenfähig ist (shared) oder dediziert (dedicated).
  3. oauth2-configuration: Enthält Einstellungen für die OAuth 2.0-Authentifizierung, wie z. B. unterstützte Anmeldetypen und Redirect-URIs.
  4. scopes: Definieren die Berechtigungen, die einer Anwendung zugewiesen werden können. Diese können auch an andere Anwendungen delegiert werden.
  5. role-templates: Rollen, die auf Basis der Scopes erstellt werden und Benutzern zugewiesen werden können.

Service-Keys generieren

Nach der Bereitstellung des XSUAA-Services können Sie Service-Keys generieren, um Anwendungen zu authentifizieren. Dies erfolgt über die Cloud Foundry CLI:

cf create-service xsuaa application my-xsuaa-service -c xs-security.json
cf create-service-key my-xsuaa-service my-xsuaa-key
cf service-key my-xsuaa-service my-xsuaa-key

Der generierte Service-Key enthält die notwendigen Informationen, wie Client-ID, Client-Secret und Token-URL, um die Anwendung zu authentifizieren. Diese Informationen werden in der Regel in der Anwendung verwendet, um Zugriffstoken zu generieren und API-Aufrufe zu authentifizieren.

Verwendung der Scopes in Anwendungen

Scopes werden in der Anwendung genutzt, um Zugriffsrechte zu überprüfen. Zum Beispiel kann eine Anwendung prüfen, ob ein Benutzer die Berechtigung read besitzt, bevor eine Ressource abgerufen wird. Dies erfolgt in der Regel durch Middleware oder Bibliotheken wie @sap/xssec. Ein typischer Ablauf sieht wie folgt aus:

  1. Authentifizierung: Die Anwendung überprüft das JWT-Token, das vom Client gesendet wird.
  2. Scope-Prüfung: Die Anwendung prüft, ob das Token die erforderlichen Scopes enthält.
  3. Zugriff gewähren oder verweigern: Basierend auf den Scopes wird der Zugriff auf die gewünschte Ressource gewährt oder verweigert.

Fazit

Der XSUAA-Service ist ein leistungsstarkes Werkzeug zur Authentifizierung und Autorisierung in der SAP BTP. Durch die Konfiguration von Scopes und Rollen können Sie sicherstellen, dass Ihre Anwendungen nur die notwendigen Berechtigungen erhalten. Mit Service-Keys können Sie die Authentifizierung nahtlos in Ihre Anwendungen integrieren.

Nutzen Sie den XSUAA-Service, um Ihre Anwendungen sicher und flexibel zu gestalten!

© Felix Stiffel 2025 | Alle Rechte vorbehalten