Die Integration von SAP SuccessFactors mit anderen System wie bspw. dem SAP HCM oder anderen 3rd Party Payrolls gewinnt immer mehr an Bedeutung. Nur durch einen stetigen Datenaustausch lassen sich Prozesse ganzheitlich digitalisieren. Gerade bei Personaldaten ist es absolut notwendig, dass der Austausch sicher und vertraulich durchgeführt wird. Neben der Verschlüsselung der Daten muss man für eine geeignete Authentifizierung Sorge tragen. Vereinfacht gesagt, betrifft dies die Anmeldung von Benutzern. Bei Business-Usern, die über die Browseroberflächen in der SuccessFactors HXM Suite arbeiten, ist das in der Regel über SAML 2.0 Single Sign-on in Verbindung mit dem IAS/IPS idealtypisch umgesetzt. Wo wir in der Praxis oft Nachholbedarf entdecken, ist im Bereich der Schnittstellen. Bei den letztlich über HTTP kommunizierenden SuccessFactors APIs ist es oft so, dass die Authentifizierung über das veraltete BasicAuth Verfahren stattfindet. Warum und wie man dies durch OAuth auswechseln sollte, erklären wir in diesem Blog-Artikel.
Wo ist eigentlich das Problem bei BasicAuth für die SuccessFactors API?
BasicAuth existiert seit bereits 1996 und führt eine Anmeldung über die Kombination von Benutzername und Passwort durch. Einfach und alt muss nicht unbedingt schlecht sein, im Fall von BasicAuth ergeben sich bezogen auf die Sicherheit jedoch folgende Probleme:
- Ist die Verbindung nicht ausreichend abgesichert (bspw. über TLS), können Benutzername und Passwort leicht kompromittiert werden.
- Gibt es keine Multi-Faktor Authentifizierung, bietet BasicAuth keine weitere Sicherheitsebene. Bei automatisierten Schnittstellen ist MFA nicht realisierbar.
- Die Anmeldung ist für jeden und von überall möglich, der die Kombination von Benutzername und Passwort kennt.
- Wurde die Anmeldung durchgeführt, besteht grundsätzlich voller Zugriff auf die für Benutzer freigegeben Funktionen und Informationen.
Warum sollte ich als SuccessFactors Kunde über OAuth nachdenken?
Einen anderen Ansatz verfolgt das OAuth Protokoll (Open Authorisation). Hierbei melden sich Drittsysteme (Client) über einen Token in dem System an, von dem sie Daten abrufen oder eine Funktion ausführen wollen. Dieses System nennt man Ressource-Server und ist in unserem Fall die SuccessFactors Suite mit all ihren Modulen. Ausgestellt wird der Token vom so genannten Autorisierungsserver. Damit dies funktioniert, muss der Ressource-Server dem Autorisierungsserver vertrauen. Diese Vertrauensstellung wird bspw. über den Austausch von Zertifikaten hergestellt. Den Token erhält der Client vom Autorisierungsserver, in dem er seine Identität nachweist. Das kann bspw. über eine SAML 2.0 Bearer Assertion geschehen. Dieser digital-signierte Identitätsnachweis wird vom einem Identity Provider ausgestellt, gegenüber dem sich der Client authentifizieren muss.
OAuth ist also deutlich komplexer als BasicAuth, aber warum ist es auch sicherer?
- Die Authentifizierung der Benutzer findet zentral über den Identity Provider bzw. Autorisierungsserver statt. Diese Systeme können sich zentral auf die Verwaltung von Benutzern sowie die sichere Anmeldung konzentrieren. SuccessFactors als Ressource-Server muss sich hierum nicht mehr kümmern.
- Im Zusammenspiel der Systeme müssen keine Anmeldedaten hinterlegt werden. Dies erhöht die Vertraulichkeit. Ebenso besteht kein Bedarf die Anmeldedaten zu erneuern. Bei der Verwendung der Anmeldedaten ist ebenfalls keine Auditierung möglich, wo diese überall hinterlegt sind bzw. von wem diese benutzt werden.
- Der OAuth Token ist nur eine bestimmte Zeit gültig. Das reduziert das entstehende Risiko, falls ein Token kompromittiert werden sollte. Dennoch muss der Token geschützt werden, weshalb die Übertragung verschlüsselt werden muss. Ebenso kann der Token mit sofortiger Wirkung invalidiert werden.
- Neben der reinen Anmeldung eines Benutzers erlaubt OAuth auch die Vergabe von Berechtigungen. Über so genannte Scopes kann der Autorisierungsserver definieren, auf was der Benutzer mit dem Token überhaupt zugreifen darf.
Und was muss ich als SAP SuccessFactors Kunde bei der Integration beachten?
Neben der Bewertung der Sicherheitsaspekte sollten Kunden sich bewusst sein, dass SAP für die SuccessFactors API den BasicAuth Sunset angekündigt hat. Das heißt konkret, dass die Wartung für BasicAuth im Juni 2023 beendet wurde (ausgenommen dem Integration Add-on für das HCM) sowie BasicAuth komplett in 2026 abgeschaltet werden soll. Hieraus geben wir die Empfehlung, dass für die Nutzung der API in jedem Fall auf OAuth umgestellt werden sollte. Für die Replikation der Stammdaten ins HCM über das Integration Add-on, fällt die Empfehlung nicht ganz so leicht. Hintergrund ist, dass die Nutzung von OAuth ohne weiteres nur mit neueren Basis Releases möglich ist. Zudem müssen die iFlows in der SAP Integration Suite angepasst werden. Sind die Voraussetzungen hierzu gegeben, empfehlen wir den SuccessFactors Kunden OAuth auch für die Replikation der Stammdaten zu nutzen.
Wie kann OAuth für die Integration mit SuccessFactors umgesetzt werden?
In SuccessFactors lässt sich im API Center sehr eine OAuth Client Anwendung registrieren. Das Vorgehen ist z.B. in diesem SAP Blog beschrieben.
Das SAP HCM bietet mittlerweile einen speziellen OAuth Client für die SuccessFactors Integration. Die Einrichtung ist sogar im IMG hinterlegt.
Die eingerichteten OAuth Clients lassen sich bspw. im SOA-Manager für die Kommunikation mit den in der BTP deployten iFlows nutzen.
Aber auch in der Integration Suite ist es möglich, OAuth für die Authentifizierung zu nutzen.
Peter Gilberg arbeitet bei ORBIS People als Entwickler für die SAP Business Technology Plattform.