Single Sign-On (SSO) in der SAP BTP einfach erklärt

Single Sign-On (SSO) in der SAP BTP einfach erklärt

Grundlagen Single Sign-On in der SAP BTP

-SSo in der SAP BTP-

Diesmal  beschäftigen wir uns mit dem Thema Single Sign-On, auch SSO genannt und beleuchten für sie viel interessanten Themen. Es 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. Dieser ermöglicht es Ihnen, 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. Nun müssen Sie sich nicht jedes Mal erneut anmelden. 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
Zum Schluss gibt es noch ein besonderes Schmankler, wir erklären Ihnen alles im über SSO im CloudDNA der Expert-Talk,

Warum Federated Identities?

Das Ziel nach dem wir streben ist eine einfache Integration all dieser Anforderungen. Gleichzeitig möchten wir dass die Sicherheit auf einem hohen Level gehalten wird. Die Lösung dafür, kann nur den Namen den „Federated Identities“ tragen.
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.

Welche wichtigen Begriffe für Single Sign-On gibt es?

An dieser Stelle ist es wichtig, dass Sie zentrale Begriffe 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. Da beide Konzepte sind für Sicherheit und Zugriffsmanagement von fundamentaler Bedeutung sind, erkläre ich ihnen im folgenden Blog alles darüber.

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. Diese 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. Wenn Sie  durch den Portier (=österreichischer Begriff für Pförtner) anhand Ihres Personalausweises authentifiziert werden. Wird er Ihnen einen unternehmensinternen Ausweis ausstellen, 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önnen. 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.
Sie müssen zwischen dem Service Provider und dem Identity Provider eine Vertrauensbeziehung herstellen. 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. Hier gehts zum BLOG IAS
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

Die Version 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. Wenn Sie OAuth verwenden fordert der Client den Zugriff auf Ressourcen an. Diese werden vom Ressourceneigentümer kontrolliert und vom Ressourcenserver gehostet , und erhält einen anderen Satz von Anmeldeinformationen als die des Ressourceneigentümers.

Welche Rollen können im OAuth festgelegt werden?

OAuth 2.0 definiert vier Rollen:

  • Resource Owner
  • Client
  • Authorization Server
  • Resource 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.

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.

Resource Server

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

OAuth Authorization Grants

Ein Authorization Grant ist ein Berechtigungsnachweis. Er stellt die Berechtigung des Ressourceneigentümers dar, der 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, gibt der Client den Resource Owner an einen Authorization Server weiter. Er leitet wiederum den Resource Owner mit dem Authorization Code zurück an den Client.

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

Alle 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, wird der Autorisierungsserver in der Callback-Antwort einen Autorisierungscode an den Client senden
    (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.

SAP SSO der Expert-Talk

Wie versprochen wird Ihnen Martin Koch alles zum Thema SSO am dem legendären Lightboard erklären

SAP Single Sign-on in der SAP BTP erklärt Euch die CloudDNA, wir besprechen SAML OAUTH und Open ID CONNECT

Über den Autor

Martin Koch

Martin Koch

SAP Cloud Veteran / SAP Alumni

Ich bin SAP Cloud Berater, Architekt und Entwickler der ersten Stunde - um es auf neudeutsch zu sagen ein "SAP Cloud Veteran". Neben der SAP Cloud Platform / SAP Business Technology Platform entwickle ich seit dem allerersten Release SAPUI5 und SAP Fiori Apps. Für SAP bin ich weltweit erfolgreich als Trainer im Bereich neue Technologien (Cloud, Integration, SAPUI5, Fiori, Mobile, SAP HANA, Security) im Einsatz. Besonders stolz bin ich darauf, zu den weltweit am besten bewertete Trainern zu gehören. Seit 2021 bin ich SAP Press Autor im Bereich der SAP Business Technology Platform. Hier gibt es voerst zwei Publikationen zum Themas Sicherheit und Berechtigungen sowie zu den SAP Mobile Services.

Git Tutorial | Git Grundlagen | So wirst du zum Git Profi

Git Tutorial | Git Grundlagen | So wirst du zum Git Profi

Das Git Tutorial – Die Git Grundlagen

Mit diesem Git Tutorial / Git Grundlagen werden Sie zum Git Profi!

Wir haben uns entschieden, einen mehrteiligen Blog zum Thema Git zu schreiben, beginnend bei den Git Grundlagen. Außerdem sind folgende Themen entstanden:

  • Einführung in die Welt von Git
  • Arbeiten mit Git und SAPUI5 Entwicklung mit Git

Sollten Sie Fragen zum Thema Git haben, hinterlassen Sie ganz einfach eine Nachricht!

In diesem Blog werden wir uns mit dem Thema Git beschäftigen und damit, warum das Arbeiten mit Git oder mit einem ähnlichen Tool für Entwickler fast schon unumgänglich ist.

Zielsetzung 

Unser Ziel ist es, dass Sie nach diesem Git Tutorial die unten stehende Grafik interpretieren und Ihre Entwicklungen mit Git optimieren können.

Wichtig

Seitdem GitHub die Namenskonventionen umgestellt hat, heißt der Strang, der automatisch angelegt wird, nicht mehr „master“ bzw. „origin/master“, sondern „main“ und „origin/main“. 

Inhaltsverzeichnis

Begrifflichkeiten:

  1. Repository
  2. Branch
  3. Commit
  4. Staging Area

Funktionen:

  1. Push
  2. Clone
  3. Fetch
  4. Merge
  5. Pull
  6. Best practice
  7. Rebase
  8. Reset (Hard Reset & Mixed Reset)

Über den Autor

Daniel Krancz

Daniel Krancz

SAP-Consultant / Software-Developer

Ich bin SAP-Berater und -Entwickler im SAPUI5/Fiori- und OData-Umfeld. Seit 2019 bin ich offiziell als externer Trainer bei SAP gelistet und halte Kurse (UX, S4, …) über SAP-Webentwicklungen und Cloud-Implementierungen im In- und Ausland. Seit 2021 bin ich SAP Press Autor beim Rheinwerk Verlag im Bereich SAP Mobile.

Welche Begriffe sind im Git Umfeld üblich?

Bei unserem Git Tutorial erklären wir die wichtigsten Begrifflichkeiten und gängigsten Funktionen im Git-Umfeld. Mehr über die Git Grundlagen erfährt ihr hier:

Repository

Ein Repository kann mit einem einfachen Verzeichnis verglichen werden, in welchem weitere Verzeichnisse und Dateien abgelegt werden können. Ein Repository beinhaltet normalerweise ein Projekt bzw. ein Programm.

Es gibt eine Unterscheidung zwischen einem Remote (am Server oder in der Cloud) und einem Local (in der IDE) Repository.

Branch

Ein Repository beinhaltet mindestens einen Entwicklungsstrang, kann aber auch in mehrere Entwicklungsstränge unterteilt werden. Diese Stränge nennt man Branches.

Branches benutzt man entweder um Systemlandschaften (z.B. DEV, QAS und PRD) oder Feature-Entwicklungen (z.B. eine neue Funktionalität für Kunden) abzubilden. Die Unterteilung in den Landschaften ist üblicherweise am Remote Repository vertreten.

Je nachdem wo die Branches liegen, redet man von Remote und Local Branches.

Wenn man ein Remote Repository erstellt, so wird automatisch auch der erste Branch mit dem Namen „origin/master“ angelegt. Bei einem Local Repository heißt der erste Branch nur „master“.

Commit

Einen Commit kann man mit einem Snapshot, sprich mit einer Momentaufnahme, vergleichen. Diese Momentaufnahme beinhaltet die gesamten Änderungen seit dem letzten Commit. Diese Commits werden mit bestimmten Daten (Description, ID, Author, Timestamp, …) versehen und abgespeichert.

Ein Commit ist somit die kleinste „Einheit“ im Git-Umfeld.

Staging Area

In der Staging Area befinden sich alle Files, die seit dem letzten Commit editiert wurden. Das heißt, die Staging Area ist ein Ort für das Zwischenspeichern der Änderungen. Zusätzlich kann man auswählen, welche Änderungen aus der Staging Area man beim nächsten Commit mitnehmen möchte.

So könnte man X Änderungen aus der Staging Area auf Y Commits aufteilen und so einen sauberen Entwicklungsstrang abbilden.

Welche Funktionen gibt es im Git Umfeld?

Natürlich gehören zu den Git Grunlagen die Git Funktionen, anbei gehen wir auf die gängigsten Funktionen ein, mit der man Repositories und Branches manipulieren kann. Wir werden uns nur die wichtigsten anschauen (Push, Fetch, Merge, Pull, Clone, Rebase), aber es gibt noch um einiges mehr (Cherry-Pick, Stashing, …).

Push

Wenn man in der IDE entwickelt und irgendwann einen Stand hat, den man mit anderen Entwicklern teilen möchte, dann muss man den letzten Commit mit einem Push in das Remote Repository bringen.

Da das Remote Repository am Anfang leer ist, kann der erste Entwickler, der z.B. das Rahmenprojekt aufgesetzt hat, seine Entwicklungen ohne Rücksicht pushen:

Später sollte vor jedem Push gecheckt werden, ob sich am Remote Repository etwas geändert hat. Wie das funktioniert, erfahren Sie weiter unten.

Clone

Es kann nur einen ersten bzw. initialen Push geben. Wenn also sich am Remote Repository bereits Daten befinden, dann muss ich das Ganze in meine lokale Umgebung bekommen.

Das funktioniert mit einem Clone:

Fetch

Mit einem Fetch kann ich die Änderungen, die seit meinem letzten Fetch gemacht wurden, in die lokale Umgebung laden. Einfacher ausgedrückt: Wir schauen nach, ob andere Entwickler was Neues gemacht haben.

Merge

Nur nachschauen, ob andere Entwickler etwas gemacht haben, reicht noch nicht ganz aus. Wir müssen die Datenstände zusammenführen und diesen Vorgang nennt man Merge.

Wir haben vorhin, als wir über Branches geredet haben, etwas verschwiegen. Die Namen für Branches sind nichts anderes wie Pointer bzw. Zeiger. Ein Zeiger auf den aktuellen Commit, sprich auf den letzten Snapshot.

Was bei einem Merge technisch passiert ist ganz einfach: Der Zeiger von meinem altem Commit, wird auf den neuen Commit gesetzt, welchen wir uns mit einem Fetch geladen haben. Dabei wird geschaut, ob sich Änderungen überschneiden. Wenn sich Änderungen überschneiden, gibt es Konflikte.

Auf Konflikte wird man immer hingewiesen und der Entwickler, der die Zusammenführung macht, kann entscheiden, welche Code-Passagen die Aktuellen sind. Ein Merge wird in einem eigenen Commit protokolliert.

Pull

Man sieht jetzt schon, dass man Fetch und Merge oft brauchen wird. Das haben sich auch die Entwickler von Git gedacht und deswegen die Funktion Pull ins Leben gerufen.

Pull führt zuerst einen Fetch und dann automatisch einen Merge aus:

Zu diesem Git Tutorial gehört natürlich auch Best practice

Einmalig:

  • Clone or Initial Commit and Push
    • wenn ich der erste bin = Push
    • App vom Remote Repository clonen

Wiederkehrend:

  1. Fetch: schauen ob sich was getan hat
  2. Merge: den Zeiger auf die aktuelle Version verschieben und die Datenstände zusammenführen (auf eventuelle Konflikte reagieren)
  3. Push: die aktuelle Version mit anderen Entwicklern teilen
  1. Pull: schauen ob sich was getan hat, den Zeiger auf die aktuelle Version verschieben und die Datenstände zusammenführen (auf eventuelle Konflikte reagieren)
  2. Push: die aktuelle Version mit anderen Entwicklern teilen

Wir kennen jetzt viele Begriffe und kennen auch schon die wichtigsten Funktionalitäten. Jetzt gehen wir nochmal auf die Branches ein und bringen all das Wissen mit, was wir gelernt haben.

Wir haben gesagt, dass auch am Remote Repository Branches erstellt werden können (z.B. P,Q,D), aber auch am Local Repository (z.B. Features).

Gehen wir von folgendem Beispiel aus: Es existiert bereits ein Repository und da wir jetzt auch im Entwicklerteam sind, können wir vom Remote Repository vom Entwicklungsbranch die aktuellen Stände clonen.

Wir machen sicherheitshalber einen Local Feature Branch wo wir einige Entwicklungen und auch Commits machen. Nach einigen Entwicklungstagen sind wir fertig und mergen lokal unsere Features mit dem lokalen Master.

Bevor wir unsere Änderungen mit anderen teilen können, müssen wir checken, ob andere Entwickler auch zwischenzeitlich gepusht haben und führen einen Fetch und danach Merge bzw. einen Pull aus.

Nachdem wir uns mit bei dem Git Tutorial mit einigen Konflikten beschäftigen durften, können wir nun endlich unsere Änderungen pushen und mit anderen Entwicklern teilen.

Unser Administrator nimmt nach eigenem Ermessen die Datenstände und macht einen Merge zwischen D und Q und signalisiert somit dem Testteam, dass sie testen können.

Wenn die Tests abgeschlossen sind, dann kann der Administrator zwischen Q und P einen Merge durchführen. Der P-Branch wird dann entweder exportiert oder der Administrator deployed ihn direkt auf das Kundensystem und der Kunde hat nun eine neue Version der Applikation.

Rebase

Wenn wir uns die obenstehende Grafik genauer anschauen, dann werden wir erkennen, dass durch einen Merge immer ein „unnötiger“ Commit entsteht.

Durch Rebase können wir auch dieses – oft von Entwicklern empfundene – Designproblem lösen und einen sauberen Entwicklungsstrang ohne „Merge-Commits“ aufbauen.

Nehmen wir an, wir haben lokal einen Feature Branch gemacht. Dort haben wir fleißig entwickelt und möchten jetzt unsere Änderungen wieder auf den Master Branch bekommen:

Wenn wir jetzt ein Rebase von unserem Feature auf den Master Branch machen, dann schauen unsere Commits wie folgt aus:

Nichtsdestotrotz müssen wir an dieser Stelle noch einen Merge machen, da passiert aber wiederum nichts anderes, als das der Zeiger von dem alten Commit auf den neuesten Commit bewegt wird, jedoch mit dem Unterschied, dass wir an dieser Stelle keinen zusätzlichen Commit für das Mergen erzeugen:

Jetzt schaut unser Master Branch sauber aus, wir haben einen sauberen Entwicklungsstrang und ein Außenstehender würde meinen, dass wir keinen Feature Branch – sprich keinen weiteren Branch – für die Entwicklung verwendet haben.

Git Grundlagen: Rebase mit Konflikten

Wenn es zu einem Konflikt kommt, so wird das nicht, wie bei einem Merge, in einem extra Commit verpackt, sondern die zwei Commits, die von den Änderungen betroffen sind, werden entweder fusioniert oder einer von den beiden Commits gewinnt. Entscheidungsträger ist hier wiederum der Entwickler, der gerade einen Rebase vornimmt.

 

Reset

Viele „Git-Neulinge“ verwechseln Reset mit Rebase. Oft glaubt man, dass Rebase irgendetwas mit dem Zurücksetzen der Änderungen zu tun hat, was aber nicht stimmt.

Mit Reset hat man zwei Möglichkeiten um das Zurücksetzen der Daten bzw. den Änderungen bis zu einem, in der Vergangenheit liegenden, bestimmten Commit zu erreichen:

Hard Reset

Gehen wir davon aus, dass wir einen Feature Branch eröffnet haben und dem Feature, welches ein Change Request vom Kunden war, eine Absage erteilt wird. Wir wissen schon, dass wir an einem weiteren Feature arbeiten werden, welches aber nichts mit unserem bisherigen Feature Entwicklungen zu tun hat.

In diesem Fall werden wir einen Hard Reset machen. Die bisherigen Entwicklungen am Feature Branch werden verworfen und der Feature Branch wird mit dem ausgewählten Branch, in unserem Fall dem Master Branch, gemerged um wieder auf dem gleichen Datenstand zu sein:

Mixed Reset

Bei einem Mixed Reset schaut das ganze fast gleich aus, mit dem Unterschied, dass wir nicht alles verwerfen, sondern einige Änderungen, die sich in der Staging Area befinden, mitgenommen werden können.

Möchten Sie noch mehr über Git erfahren, dann haben wir hier noch das eine oder andere Git Tutorial:

Sind Sie auf der Suche nach SAP Cloud Consulting oder ganz allgemein SAP Beratung in Österreich, Deutschland oder der Schweiz? Dann sind Sie bei uns genau richtig! Wir bringen Sie sicher in die Cloud – we deliver !

Verlieren Sie keine Zeit - kontaktieren Sie uns jetzt

Zögern Sie nicht uns zu kontaktieren. Mit Fragen zum SAP Cloud Connector, zur SAP BTP, zur SAP Cloud Platform, zur SAP CPI, zur SAP Integration Suite und anderen innovativen Themen sind Sie bei uns genau an der richtigen Adresse!

Ihre Nachricht an uns

13 + 4 =

Grundlagen des SAP Cloud Connector (SAP CC)

Grundlagen des SAP Cloud Connector (SAP CC)

SAP Cloud Connector (SAP CC)

Inhalt des CloudDNA Expert Talk

Lernen Sie in diesem Expert Talk die Grundlagen des SAP Cloud Connector (SAP CC) kennen und Sie werden sehen, dass er keine Weltraumwissenschaft ist.

Architektur des SAP Cloud Connector

Der SAP Cloud Connector ist ein zentraler Bestandteil hybrider SAP-Systemlandschaften. Er ermöglicht Ihnen eine sichere Integration der Services und Subskriptionen in der SAP Business Technology Platform (SAP BTP) in Ihre On-Premise-Landschaft. Daher ist ein gutes Verständnis der Grundlagen des SAP Cloud Connectors unerlässlich, damit Sie schnell und effizient starten können.

Was bedeutet On-Premise ?

Mit dieser Frage werden wir häufig konfrontiert und sie lässt sich sehr einfach beantworten. Unter On-Premise versteht man die bei Ihnen im Unternehmen bereitgestellten Systeme. Diese laufen entweder in Ihrem eigenen Rechenzentrum, bei Ihrem Hosting-Anbieter oder in der SAP HANA Enterprise Cloud (SAP HEC).  

Wie funktioniert der SAP Cloud Connector ?

Der SAP Cloud Connector ist eine Softwarekomponente, die in Ihrer On-Premise-Landschaft installiert wird und einen TLS (Transport Level Security) Tunnel in die SAP BTP (ehemals SAP Cloud Platform) herstellt. Um konkret zu sein: die Verbindung zum Subaccount hergestellt.

Der SAP Cloud Connector verwendet den Reverse Invoke Proxy Ansatz. D.h. er stellt Ihnen auf Ebene des Subaccount Endpunkte bereit, die von den Services (z.B. SAP Cloud Integration, SAP WebIDE, SAP Mobile Services oder SAP Cloud Portal) aufgerufen werden. Er nimmt Ihre Aufrufe aus der SAP BTP / SAP Cloud Platform entgegen und leitet Sie an die On-Premise-Systeme weiter.

Welche Voraussetzung bestehen für den Cloud Connector ?

Für den Betrieb des SAP CC benötigen Sie lediglich eine JVM in der Java Version 1.8. Eine wesentliche Voraussetzung, die Sie beachten müssen, ist die Netzwerkkonnektivität.

Der SAP CC muss einerseits unter Verwendung des HTTPS-Protokolls die Hosts der SAP Business Technology Platform ansprechen können und andererseits die gewünschten Backendsysteme technisch erreichen. Mit der Version 2.13 sind einige spannende Neuerung gekommen, vor allem mit Blick auf Principal Propagation in der Cloud Foundry Umgebung.

Verbindung mit der SAP Business Technology Platform

Der SAP Cloud Connector verbindet sich mit der Business Technology Platform auf Ebene des Subaccounts. Der SAP CC authentifiziert sich mit einem Benutzer der vom Platform Identity Provider (Platform IdP) verwaltet wird. Sie können entweder den SAP ID Service oder den SAP Identity Authentication Service (SAP IAS) als Platform IdP verwenden. Bei der erstmaligen Anmeldung wird für den Benutzer ein Client Zertifikat erstellt, das in weiterer Folge für die Authentifizierung benötigt wird. Dieses Zertifikat wird am im Cloud Connector gespeichert.

Anbindung der Backend-Systeme

Der SAP Cloud Connector stellt Ihre Backend-Systeme im Subaccount der SAP BTP / SAP Cloud Platform unter einem virtuellen Hostnamen und zugehörigem Port bereit. Diesen virtuellen Hostnamen müssen Sie in den Cloud Services auf Ebene des Subaccounts zwingend verwenden. Für die Verbindung kommt der sogenannte Connectivity Service zur Verwendung. Er stellt über den On-Premise-Proxy technisch die Verbindung zum Cloud Connector her.

Der Cloud Connector bildet den virtuellen Hostnamen auf den physischen Hostnamen ab. D.h. er führt ein Mapping durch. Zusätzlich muss im Cloud Connector definiert werden, welche Ressourcen im Backend angesprochen werden können. Dies entspricht im Falle eines SAP-ABAP-Systems den ICF-Knoten. Der Cloud Connector unterstützt folgende Protokolle:

  • HTTP / HTTPS
  • RFC / RFC (SNC)
  • TCP / TCPS
  • Mail (SMTP, POP3, IMAP)
  • LDAP / LDAPS
  • SFTP / FTP / FTPS

Wie schauen die Sicherheitsaspekte im Cloud Connector aus?

Es gibt eine Reihe an sicherheitsrelevanten Aspekten, die im Cloud Connector zu beachten sind. Dieser bringen wir Ihnen in einem anderen Artikel näher. Doch eines vorab, die Authentifizierung der Administratoren und anderen Benutzer gegen einen LDAP-Server ist essentiell. Sie sollten auch das selbstsignierte SSL-Zertifikat, mit dem der CC im Standard ausgeliefert wird, so schnell wie möglich ersetzen.

SAP HANA Cloud Connector

Sie werden in vielen Blogs und auf Webseiten noch vom HANA Cloud Connector lesen. Dieser wurde im Jahr 2017 auf den Namen SAP Cloud Connector umgetauft. Sollten Sie noch vom SAP HANA Cloud Connector oder der HANA Cloud Platform lesen, raten wir Ihnen sich aktuellere, zeitgemäße Blogs zu suchen. Die Zeitspanne von mehr als drei Jahren seit der Umbenennung sind im Cloud Zeitalter so, wie wenn Sie noch immer in der Bronzezeit leben und denken würden. 😉

Das Video zum Expert Talk

Im Video zeigen wir Ihnen Schritt für Schritt, wie der SAP Cloud Connector funktioniert. Wir hoffen Ihnen damit weiterhelfen zu können. Für Fragen und auch Unterstützung in Projekten stehen wir Ihnen gerne zur Verfügung.

Folgen Sie unserem Youtube Channel um keine Neuigkeiten zu verpassen. Wir veröffentlich in regelmäßigen Intervallen Videos zur SAP Cloud Platform / SAP Business Technology Platform.

CloudDNA Expert Talks zum SAP Cloud Connector

Sehen Sie sich auch unsere anderen Expert Talks zum SAP Cloud Connector an:

SAP Cloud Connector Location Identifier verstehen und richtig verwenden

Mit Fragen zum Cloud Connector, zu SAP Fiori, zur SAP BTP, SAP Cloud Identity Services, zur SAP Integration Suite und anderen innovativen Themen sind Sie bei uns genau an der richtigen Adresse! Haben Sie Fragen zu unseren Leistungen, Paketen oder Produkten? Kontaktieren Sie uns!

Ihre Nachricht an die CloudDNA:

SAP Cloud Connector Location Identifier richtig nutzen!

SAP Cloud Connector Location Identifier richtig nutzen!

Sie können den SAP Cloud Connector (CC) für unterschiedlichste Szenarien verwenden. Unter anderem auch um sich aus einer geografisch verteilten Systemlandschaft mit dem Subaccounts der SAP Business Technology Platform (SAP BTP). Damit können Sie unter Verwendung der SAP Cloud Platform Integration (CPI) bzw. der SAP Integration Suite Schnittstellen in die On-Premise-Landschaft umsetzen. Wir zeigen Ihnen wie der SAP Cloud Connector Location Identifier richtig verwendet wird. Der Artikel wurden von den Experten der CloudDNA GmbH aus Österreich auf deutsch veröffentlicht. Er soll als Begleittext zum unserem YouTube-Video dienen.

Inhalt des CloudDNA Expert Talks

In diesem CloudDNA Expert Talk geht es darum, wie Sie den SAP Cloud Connector (SAP CC) mit Location Identifier (Location ID) verwenden können. Wir zeigen Ihnen wie sich unterschiedliche SAP Cloud Connector Instanzen mit demselben Subaccount verbinden lassen kann.

SAP Cloud Integration Kommunikation über den SAP Cloud Connector

Gehen wir von folgender Annahme aus. Sie haben eine SAP CPI (Cloud Platform Integration) oder die SAP Integration Suite mit aktiver Cloud Integration Capability. Sie möchten aus der Cloud Integration heraus über den SAP Cloud Connector (CC) eine Verbindung zu einem System in der On-Premise-Landschaft herstellen. Der SAP Cloud Connector öffnet dazu einen TLS Tunnel (=Transport Level Security) zum Subaccount. Über diesen Tunnel läuft der gesamte Traffic aus der Cloud in die On-Premise-Systemlandschaft. Dies funktioniert sowohl bei SAP- als auch bei Non-SAP-Systemen.

Die SAP Cloud Connector LocationID

Wir gehen in unserer Annahme ein Schritt weiter. Sie müssen Gesellschaften in unterschiedlichen Ländern oder in unterschiedlichen geografischen Regionen über die SAP CPI integrieren. Sie können für dieses Szenario in jeder Region in der Sie ein Backendsystem integrieren möchten einen Cloud Connector installieren. Der Subaccount in der SAP BTP bzw. der SAP Cloud Platform könnte nun nicht mehr unterscheiden über welchen Cloud Connector die Nachrichten in die On-Premise-Landschaft gesendet werden. Auch dafür bietet der SAP CC eine Lösung. Es ist lediglich erforderlich, dass jede Cloud Connector Instanz beim Aufbau der Verbindung mit dem Subaccount eine Location-ID (LOC) verwendet.

Funktioniert in der Neo- und Cloud-Foundry-Umgebung

Die SAP Cloud Connector LocationID wird sowohl für die Neo- als auch für die Cloud-Foundry-Umgebung unterstützt. Die Kommunikation aus den Services und Subskriptionen auf Ebene des Subaccount erfolgt immer über den Connectivity Service. Dieser bedient sich der über den Destination Service angelegten Destinationen. Diese beinhalten die technische Konfiguration. In der Destination muss die Location-ID ebenfalls gepflegt werden. Sie haben jedoch auch die Möglichkeit, einen Cloud Connector als Default zu verwenden. Dazu dürfen Sie keine Location-ID anführen.

Unsere Empfehlung

Wir verwenden in unseren Projekten SAP Cloud Connector Location Identifier die an die IATA 3-Letter-Codes in der Luftfahrt angelehnt sind. Die Begründung dafür ist recht einfach. Ich bin ausgebildeter Linienpilot und Fluglotse. Ich habe erkannt hat dass die Standardisierung und Normierung in der Luftfahrt absolut gewinnbringen in der IT verwendet werden kann. Folgende Beispiele für Location-IDs können wir Ihnen als Inspiration geben:

  • Wien (VIE)
  • Berlin (BER) – mittlerweile ja fertiggestellt…
  • Frankfurt (FRA)
  • New York (NYC)
  • Sydney (SYD)
  • Dubai (DUB)

Das Video zum Expert Talk

Im Video bauen wir diese Szenario Schritt für Schritt auf. Wir hoffen Ihnen damit weiterhelfen zu können. Für Fragen und auch Unterstützung in Projekten stehen wir Ihnen gerne zur Verfügung.

Folgen Sie unserem Youtube Channel um keine Neuigkeiten zu verpassen. Wir veröffentlich in regelmässigen Intervallen Videos zur SAP Cloud Platform.

CloudDNA Expert Talks zum SAP Cloud Connector

Sehen Sie sich auch unsere anderen Expert Talks zum SAP Cloud Connector an:

Grundlagen des SAP Cloud Connector

Mit Fragen zum Cloud Connector, zu SAP Fiori, zur SAP BTP, SAP Cloud Identity Services, zur SAP Integration Suite und anderen innovativen Themen sind Sie bei uns genau an der richtigen Adresse! Haben Sie Fragen zu unseren Leistungen, Paketen oder Produkten? Kontaktieren Sie uns!

Ihre Nachricht an die CloudDNA: