Single Sign-On in der SAP BTP (SAP Cloud Platform)

Single Sign-On, auch SSO genannt erfüllt eine einfache Anforderung mit der Sie typischerweise im Unternehmensumfeld konfrontiert sind.
Bei Single Sign-On steht Ihnen ein zentralisierter Service für Benutzerauthentifizierung bereit, der es Ihnen ermöglicht, sich mit einem Satz von Anmeldedaten an verschiedensten Systemen anzumelden. Die Idee ist einfach aber auch genial. Sie werden an einer zentralen Stelle authentifiziert und können danach transparent auf Systeme zugreifen ohne sich jedes Mal erneut anmelden zu müssen. Vor eine weitere Herausforderung stellt Sie der personalisierte Zugriff auf Programmierschnittstellen, sogenannten APIs. Sie kennen bestimmt auch die Anmeldung mit Credentials aus Sozialen Medien und Services wie Facebook, Twitter, LinkedIn oder Google. Damit werden Sie vor weitere Herausforderungen gestellt.

Inhaltsverzeichnis Single Sign-On

  • Federated Identities
  • Wichtige Begriffe
    • Authentifizierung
    • Autorisierung
  • Protokolle
    • SAML 2.0
    • OAuth 2.0
    • OpenID Connect

Federated Identities

Das Ziel nach dem wir streben ist eine einfache Integration all diese Anforderungen und gleichzeitig die Sicherheit auf einem hohen Level zu halten. Die Lösung dafür trägt den Namen „Federated Identities“.
Aktuell gibt es drei Protokolle für Federated Identities, die wir in weiterer Folge betrachten:

  • SAML 2.0
  • OAuth
  • OpenID

Diese Protokolle sind auch im SAP Kontext von entscheidender Bedeutung – egal ob in der SAP Business Technology Platform, einem S/4 HANA System, eine SAP Business Suite oder SAP SaaS Lösungen wie SAP SuccessFactors.

Wichtige Begriffe für Single Sign-On

An dieser Stelle ist es wichtig, dass Sie zentral Begriff verstehen und richtig einordnen können. Die zwei wichtigsten sind Authentifizierung und Autorisierung. Sie werden mir bestimmt bestätigen dass diese häufig falsch verwendet werden. Beide Konzepte sind für Sicherheit und Zugriffsmanagement von fundamentaler Bedeutung.

Authentifizierung

Die Authentifizierung sorgt dafür, dass wir in der Rolle des Benutzers identifiziert werden. Dafür verwenden wir gerne eine Analogie aus dem täglichen Leben. Sie haben bestimmt einen Reisepass oder einen Personalausweise. Sie weisen bestimmte Sicherheitsmerkmale auf und beinhalten u.a. ein mehr oder weniger aktuelles Foto von Ihnen. Der Ausweis wird von einer zentralen und vertrauenswürdigen Stelle ausgestellt. Mit diesem Ausweis können Sie von dritten identifiziert werden. Genau das ist die Aufgabe der Authentifizierung.

Autorisierung

Die Autorisierung stellt ihr Berechtigung zur Nutzung bestimmter Funktionen oder Services dar. Auch hier bringen wir Ihnen dieses Konzept anhand eines gängigen Beispiels nahe. Sie wurden durch den Portier (=österreichischer Begriff für Pförtner) anhand Ihres Personalausweises authentifiziert. Er stellt Ihnen einen unternehmensinternen Ausweis aus, der Sie für den Zutritt in bestimmte Gebäudeteile berechtigt. Wenn Sie Mitarbeiter des Unternehmens sind, werden Sie umfangreicheren Zugang haben als Besucher. Die Autorisierung findet immer nach der Authentifizierung statt.

Protokolle für SSO

Wir gehen nun detailliert auf die zuvor erwähnten Protokolle für „Federated Identities“ ein.

SAML 2.0

Die Security Assertion Markup Language, auch SAML genannt, ist ein offener Standard den Sie für Single Sign-on verwenden könne. Er basiert auf XML. Der SAML 2.0 Standard wurde im März 2005 veröffentlicht. und wird von OASIS verwaltet. Details finden Sie unter Link.
Sie können SAML für die Authentifizierung und Autorisierung verwenden. Im SAML Standard finden Sie zwei Rolle, den Identity Provider und den Service Provider.

Identity Provider

Der Identity Provider stellt die zentrale Stelle dar, der alle beteiligten Systeme vertrauen. Er authentifiziert Sie als Benutzer. Dabei können Sie je nach Ausprägung unterschiedliche Verfahren wie beispielsweise Benutzername / Passwort oder Client Zertifikate verwenden. Im Kontext der SAP Cloud Platform steht Ihnen ein Identity Provider zur Verfügung. Dabei handelt es sich um den Identity Authentication Service, der Ihnen von SAP mit der Bereitstellung der SAP BTP zur Verfügung gestellt wird. Damit können Sie Ihre Benutzerbasis entweder direkt verwalten oder ihn als Proxy zu anderen Identity Providern, wie AzureAD, oder zu Corporate Identity Providern, wie einem Active Directory, verwenden.

Service Provider

Der Service Provider stellt das System dar, auf das Sie zugreifen möchten. Er authentifiziert Ihren Benutzer nicht selbst, sondern delegiert die Authentifizierung an den Identity Provider.
Zwischen dem Service Provider und dem Identity Provider muss eine Vertrauensbeziehung hergestellt werden. Der Identity Provider kennt dabei alle Service Provider, die Service Provider müssen sich untereinander jedoch nicht kennen.

Beispiel

Identity Provider (IdP): SAP Identity Authentication Service
Service Provider (SP): SAP Successfactors
Sie versuchen, sich von einem Browser aus an Ihrer SAP Successfactors-Instanz anzumelden.
SAP Successfactors antwortet mit der Generierung einer SAML-Anfrage. Der Browser leitet Sie zu einer SSO-URL, dem SAP IAS um. Er analysiert die SAML-Anfrage, authentifiziert Sie und erzeugt eine SAML-Antwort. Der SAP IAS sendet die verschlüsselte SAML-Antwort erneut an den Browser. Dieser leitet Sie mit der SAML-Antwort im Gepäck an SAP Successfactors weiter. Wenn SAP Successfactors Ihrem SAML-Antwort erfolgreich verifiziert hat, wird Ihr Benutzer an der Anwendung angemeldet und erhält Zugriff auf alle verschiedenen Ressourcen.

OAuth 2.0

OAuth 2.0 wurde von der IETF im RFC 6749 veröffentlicht. OAuth führt eine Autorisierungsschicht ein, die die Rolle des Clients von der des Ressourcenbesitzers trennt. Bei der Verwendung von OAuth fordert der Client den Zugriff auf Ressourcen an, die vom Ressourceneigentümer kontrolliert und vom Ressourcenserver gehostet werden, und erhält einen anderen Satz von Anmeldeinformationen als die des Ressourceneigentümers.

Rollen

OAuth 2.0 definiert vier Rollen:

  • Resource Owner
  • Resource Server
  • Client
  • Authorization Server
Resource Owner

Er ist eine Entität, die in der Lage ist, Ihnen Zugriff auf eine geschützte Ressource zu gewähren. Wenn der Eigentümer der Ressource eine Person ist, wird sie als Endbenutzer bezeichnet.

Resource Server

Der Resource Server stellt den Server dar, der die geschützten Ressourcen auf die Sie zugreifen möchten hostet und in der Lage ist, Anfragen nach geschützten Ressourcen unter Verwendung von Zugriffstokens anzunehmen und zu beantworten.

Client

Es ist eine Anwendung, die im Namen des Eigentümers der Ressource und mit dessen Autorisierung Anforderungen an geschützte Ressourcen stellt.

Authorization Server

Der Authorization Server gibt Zugriffstoken an den Client aus, nachdem er den Eigentümer der Ressource erfolgreich authentifiziert und die Autorisierung erhalten hat.

OAuth Authorization Grants

Ein Authorization Grant ist ein Berechtigungsnachweis, der die Berechtigung des Ressourceneigentümers darstellt und vom Client verwendet wird, um ein Zugriffstoken zu erhalten. Die Spezifikation definiert vier Grant Types:

  • Authorization Code
  • Implicit
  • Resource Owner Password Credentials
  • Client Credentials
Authorization Code

Er wird durch die Verwendung eines Authorization Server als Vermittler zwischen dem Client und dem Resource Owner ausgestellt. Anstatt die Autorisierung direkt vom Resource Owner anzufordern, leitet der Client den Resource Owner an einen Authorization Server weiter, der wiederum den Resource Owner mit dem Authorization Code zurück an den Client leitet.

Implicit

Dem Client wird statt eines Authorization Code direkt ein Zugriffstoken ausgestellt. Dieser Grant-Typ ist implizit, da keine intermediate Credentials ausgegeben werden.

Resource Owner Password Credentials

Die Anmeldeinformationen des Ressourceneigentümers (d. h. Benutzername und Passwort) können direkt als Authorization Grant verwendet werden, um ein Zugriffstoken zu erhalten. Sie sollten Ihn nur verwenden, wenn ein hohes Maß an Vertrauen zwischen dem Ressourceneigentümer und dem Client besteht und wenn andere Authorization Grants nicht verfügbar sind.

Client Credentials

Die Anmeldedaten des Clients können als Authorization Grant verwendet werden, wenn der Autorisierungsumfang (Authorization Scope) auf die geschützten Ressourcen unter der Kontrolle des Clients oder auf geschützte Ressourcen, die zuvor mit dem Authorization Server vereinbart wurden, beschränkt ist.

Beispiel

  • Netflix möchte von Ihrem Facebook-Konto auf Ihre Freundesliste
    zugreifen.
  • Sie werden von Neetflix an den Autorisierungsserver (in diesem Fall
    Facebook) weitergeleitet.
  • Wenn Sie den Zugriff autorisieren, sendet der Autorisierungsserver in der Callback-Antwort einen Autorisierungscode an den Client
    (Netflix).
  • Dieser Code wird dann zwischen Facebook und Netflix gegen ein
    Access-Token ausgetauscht.
  • Nun kann Netflix mit diesem Zugriffstoken den Ressourcen-Server
    (Facebook) abfragen und Ihre Freundesliste abrufen.

OpenID Connect

OpenID Connect ist eine einfache Identitätsschicht die auf dem OAuth 2.0-Protokoll aufsetzt. Sie erweitert OAuth 2.0 um eine „Federated Authentication“ zu ermöglichen. Der Flow von OpenID Connect sieht genauso aus wie bei OAuth. Die einzigen Unterschiede sind, dass in der initialen Anfrage ein bestimmter Scope von openid verwendet wird und dass der Client beim finalen Austausch sowohl ein Access Token als auch ein ID Token erhält.

Über den Autor

Martin Koch

Martin Koch

Managing Director

Ich bin SAP Cloud Berater, Architekt und Entwickler der ersten Stunde. Neben der SAP Cloud Platform entwickle ich seit dem allerersten Release SAPUI5 und SAP Fiori Apps. Für SAP bin ich erfolgreich als Trainer im Bereich neue Technologien (Cloud, Integration, SAPUI5, Fiori, Mobile, SAP HANA, Security) im Einsatz. Seit 2021 bin ich SAP Press Autor im Bereich der SAP Business Technology Platform.

SAP Business Technology Platform (SAP BTP)

SAP Business Technology Platform (SAP BTP)

SAP BTP – Nur ein Rebranding der SAP Cloud Platform (SAP CP) oder doch mehr ?

SAP hat mit der Ankündigung den Begriff SAP Cloud Platform nicht weiter zu verwenden für Verwirrung gesorgt. Die neue Platform ist die SAP Business Technology Platform, auch als SAP BTP abgekürzt. Die Marketingexperten und 3-Letter Abkürzungsgeneratoren in Walldorf haben also wieder zugeschlagen.

Was kann bzw. konnte die SAP Cloud Platform ?

Die SAP Cloud Platform ist (war) das Platform-as-a-Service Angebot aus dem Hause SAP. Sie war ursprünglich eine Sammlung verschiedenster Services die Kunden bei den folgenden Use-Cases helfen sollte:

  • Innovate – Entwicklung neuer state-of-the-art Applikationen
  • Extend – Erweitern bestehender SAP Cloud (SaaS) Produkte
  • Integrate– Integration von Cloud- mit Cloud-, oder Cloud- mit OnPremise-Produkten

Im Jahr 2019 wurden die Begriffe Extension Suite und Integration Suite ins Leben gerufen. Diese fassen die erwähnten Use-Cases perfekt zusammen. Wir sind der Meinung dass es schon lange an der Zeit war, Ordnung in die vielen Services zu bringen. Darin sind neben den Core-Services auch alle sogenannten Backing-Services enthalten die eine Entwicklung und den Betrieb moderner Applikationen zulässt.

SAP Cloud Platform Umgebungen vor und nach der SAP BTP

Die SAP Cloud Platform war ursprünglich ausschließlich auf SAP eigener Infrastruktur verfügbar. Man sprach von der sogenannten Neo-Umgebung. Nachdem SAP in der Cloud zu einer Zeit gestartet hat, als noch kein einheitlicher Standard in Sicht war, waren es für SAP schwer, die Services auf anderer Infrastruktur laufen zu lassen.

Diese Tatsache hat sich mit der Cloud Foundry-Umgebung geändert. Cloud Foundry ist das Bestreben aller namhaften Cloud Anbieter, einen einheitlichen Standard zu definieren. Das Spektrum reicht von Infrastruktur- über Service- bis hin zu Consulting-Anbietern. Cloud Foundry hat es ermöglicht das SAP noch schneller neue geografische Regionen zu erschließen. SAP kümmert sich dabei um das PaaS-Angebot, die Infrastruktur (IaaS) wird von den sogenannten Hyperscalern bezogen. Dabei handelt es sich um die Big Four – Amazon (AWS), Microsoft (Azure), Google (GCP) und Alibaba (Alibaba Cloud). SAP muss sich somit nicht mehr um den Betrieb der Rechenzentren kümmern. Doch die Vorteile überwiegen nicht nur seitens SAP. Auch Kunden kommen nun in den Genuss, dass Sie sich für eine beliebiges Rechenzentrum entscheiden können.

Als weitere Umgebung bietet SAP die  ABAP Cloud-Umgebung an. Dabei wird auf das neue Restful ABAP Programming Model (RAP) gesetzt. Das RAP kann neben der Cloud auch in S/4HANA OnPremise Systemen laufen. Als Kunde und Partner bekommt man somit die Möglichkeit mit einer Sourcecode-Basis sowohl die Cloud- als auch die moderne OnPremise-Landschaft abzudecken.

Zusätzlich wir auch noch die Kyma-Umgebung angeboten.

Die verschiedenen Umgebungen wird es auch mit der SAP BTP weiterhin geben. Wir hoffen dass SAP es schafft die Kunden mittelfristig alle Kunden für den Wechsel zu Cloud Foundry zu motivieren damit die Neo-Umgebung abgelöst werden kann.

Was kann die SAP Business Technology Platform ?

SAP bezeichnet die SAP BTP als DIE Platform für das intelligente Unternehmen. Sie bildet das Fundament für die Intelligent Suite und die Industry Cloud. Neben der Integration Suite und der Extension Suite gibt es mit dem Data Management / Analytics einen weiteren zentralen Baustein.

Aus unserer Sicht spielt die SAP HANA Cloud eine zentrale Rolle. Darin können Kunden neben den Hot- und Warm-Data mit der Datalake-Edition auch ihre Cold-Data in der Cloud ablegen und beispielsweise aus der SAP Analytics Cloud nutzen.

Im Zuge der Einführung der SAP BTB wird der Begriff Cloud Platform aus vielen Produktbezeichnungen verschwinden. Die bekannte und bewährte Funktionalität der Produkte wird aber weiterhin vorhanden sein und von SAP auch weiterentwickelt werden. Wir empfehlen an dieser Stelle einen Blick in die Roadmaps.

Fazit zur SAP BTP

Wir sind der Meinung, dass die SAP Business Technology Platform keine technische Revolution ist. SAP hat damit aber den nächsten logischen Schritt gemacht, um ihren Kunden die Nutzung der Cloud noch attraktiver zu machen. Bleibt nur zu hoffen, dass zukünftig auch alle SAP Cloud Lösungen wie Successfactors, Fieldglass, Concur, Ariba usw. auch auf die SAP BTP setzen und dorthin migriert werden. Damit kann SAP auch den Beweis antreten dass man selbst den Glauben an den Erfolg der Cloud noch nicht verloren hat. Nachdem wir als Beratungshaus schon mit den Begriffen SAP Netweaver Cloud, HANA Cloud Platform und SAP Cloud Platform konfrontiert waren, sind wir gespannt ob der Begriff SAP BTP das Ultima Ratio ist.

Offizielle Infos zur SAP Business Technology Platform (SAP BTP)

SAP Community BTP

OSAP BTP Produktinformation

Über den Autor

Martin Koch

Martin Koch

Managing Director

Ich bin SAP Cloud Berater, Architekt und Entwickler der ersten Stunde. Neben der SAP Cloud Platform entwickle ich seit dem allerersten Release SAPUI5 und SAP Fiori Apps. Für SAP bin ich erfolgreich als Trainer im Bereich neue Technologien (Cloud, Integration, SAPUI5, Fiori, Mobile, SAP HANA, Security) im Einsatz. Seit 2021 bin ich SAP Press Autor im Bereich der SAP Business Technology Platform.