How to: SAP IDM mit CDC verbinden und profitieren

Du hast bereits ein On-Premises SAP Identity Management System (IDM) und möchtest Deine B2C/B2B Szenarien über SAP CDC (Customer Data Cloud) abbilden? Dann bist Du hier genau richtig!

 

Einige Unternehmen besitzen bereits ein On-Premises IDM und überlegen, wie sie B2C/B2B Login- und Registrierungsszenarien abbilden können. Dazu eignet sich die SAP CDC Lösung. CDC ist ein Customer Identity Access Management (CIAM) Tool. Das heißt, mit CDC können Kundendaten erfasst und einfach verwaltet werden. Es bietet viele Vorteile, wie vordefinierte Registrierungsabläufe, Single Sign-on (SSO), Identity Federation, openID Connect und Security Assertion Markup Language (SAML). Die Lösung war vorher auch als Gigya bekannt.

 

Wir erklären, wie man das SAP IDM und das CDC miteinander verbinden kann.

Warum IDM und CDC verbinden?

Beide Systeme bringen ihre eigenen Vorteile mit sich. Durch das Verbinden können diese Vorteile kombiniert werden. Zum Beispiel kann die SAP E-Commerce Plattform Hybris an CDC angeschlossen werden. Das ermöglicht Kundendaten zwischen Hybris über CDC mit dem IDM auszutauschen. Von hier aus können diese Daten an weitere an IDM angeschlossene Systeme weitergeleitet werden, um dort Zugriffe für die Kunden zu gewähren.

Abbildung 1: Synergie der Verbindung von IDM mit CDC

 

Es ist auch möglich, ein CDC in eine bestehende Systemlandschaft mit einem IDM zu integrieren. Mit einer Verbindung der beiden Systeme können User Daten einfach synchronisiert werden. Eine schnelle Integration von CDC ist somit umsetzbar.

Vorbereitungen im IDM

Um eine Provisionierung im IDM auszulösen ist es nötig, verschiedene Voraussetzungen zu erfüllen.

  1. Lege ein Privileg an, welches für CDC steht.
  2. Erstelle ein Account Attribut, in welchem die UID von CDC gespeichert wird, um User direkt in CDC finden zu können.
  3. Lege drei Provisioning Tasks an. Diese Tasks müssen zuständig sein für die Erstellung, Modifizierung und Löschung eines Users in CDC. In diesen Tasks werden die von CDC bereitgestellten REST-Endpunkte genutzt.

CDC Profile und Data Schema

CDC stellt ein schon vorgefertigtes Profilschema, mit den üblichen Feldern, wie z.B.: Vor- und Nachname oder E-Mail, bereit. Dafür gibt es das REST-Endpunkt accounts.set-Schema, welches z.B. Pflichtfelder markieren oder den Zugriff regeln kann.

 

Wenn Du Informationen zu einem Nutzer in CDC speichern willst und noch kein vordefiniertes Feld existiert, muss das Schema angepasst werden. Mit diesem Endpunkt ist es möglich, dem bestehenden Profil neue Datenfelder im Data Objekt hinzuzufügen. Diese können dann in der Registrierung und auch später mit anderen Endpunkten befüllt, gelesen und verändert werden.

Schnittstelle ansprechen

CDC stellt eine REST-Schnittstelle zur Verfügung. Mithilfe dieser Endpunkte können vom IDM aus User in CDC angelegt, verändert, gelesen und gelöscht werden. Die URL der Endpunkte setzt sich folgendermaßen zusammen:

 

https://accounts.<Data_Center>/accounts.<End_point>

 

Für <Data_Center> muss das entsprechende Datencenter eingesetzt werden. Befindet sich dieses beispielsweise in der EU (Europäischen Union) muss eu1.gigya.com eingesetzt werden. Für <End_point> muss der entsprechende Endpunkt eingesetzt werden. Infos über wichtige Endpunkte für das Verwalten von Usern liest Du im folgenden Abschnitt.

User in CDC registrieren

Einen User kann man mit drei Schritten in CDC registrieren. Das lässt sich auch auf zwei Schritte verkürzen, wenn keine weiteren Userdaten gesetzt werden sollen.

Registrierung anstoßen

  1. Rufe den Endpunkt accounts.initRegistration auf

= Dieser Aufruf gibt einen regToken zurück. Der regToken wird für alle weiteren Aufrufe bis zum Abschluss der Registrierung benötigt.

Registrierung durchführen

  1. Rufe accounts.register mit dem bekannten regToken auf.
  2. Setze die E-Mail, ein initiales Passwort und einen Username. Optional kannst Du auch noch weitere Informationen angeben. Alternativ kannst Du die Felder auch mit dem zusätzlichen Aufruf des Endpunktes accounts.setAccountInfo befüllen.

Info: Die mitgelieferten Informationen werden in dem Profil von CDC abgelegt. Wenn im Schema noch weitere Felder in Data Objekt hinzugefügt wurden, können mit diesem Call auch diese befüllt werden.

 

Hinweis: Werden mit dem Aufruf des Endpunkts accounts.register schon alle Pflichtfelder ausgefüllt, kann die Registrierung auch schon mit diesem Aufruf durch das Setzen des Parameters finalizeRegistration = true abgeschlossen werden. Somit wird ein zusätzlicher Schritt gespart.

Registrierung abschließen

  1. Setze den Parameter finalizeRegistration = true.

Info: Hier kann angegeben werden, ob die Verwendung von regTokens möglich sein soll. Der regToken wird von der Verlinkung der Accounts generiert.
Mehr Informationen findest du in der offiziellen CDC Dokumentation unter accounts.finalizeRegistration.

 

= Die Registrierung ist abgeschlossen.

Account-Informationen anpassen

Mit dem Endpunkt accounts.setAccountInfo ist es möglich, Daten des Profils oder des Datenobjekts abzuändern. Hierbei werden die Regeln des Schemas angewandt. So können keine Pflichtfelder gelöscht werden oder ungültige Werte eingetragen werden. Ist das Schema dynamisch, können hier auch neue Felder im Data Objekt angelegt werden, die bisher nicht definiert sind.

Account löschen

Verliert ein User im IDM das CDC Privileg, muss man diesen auch in CDC entfernen. Das funktioniert über den Endpunkt accounts.deleteAccount. Hierbei muss die entsprechende CDC-UID mitgegeben werden, welche im Account-Attribut im IDM gespeichert wurde. Allerdings können mehrere Accounts zu einem verlinkt sein. Deshalb muss geprüft werden, ob noch andere Accounts an der CDC-UID hängen, die nicht gelöscht werden sollen. In diesem Fall muss sichergestellt werden, dass nur Informationen in CDC gelöscht werden, die exklusiv für den User in IDM stehen. Wie zum Beispiel die E-Mail über das Attribut removeLoginEmails im Endpunkt accounts.setAccountInfo.

Account finden

Mit dem Endpunkt accounts.search können in CDC Accounts gesucht werden. Um festzustellen, ob ein Nutzer im System bereits existiert, kann man dies ebenfalls über diesen Endpunkt feststellen. Hierzu muss noch eine Query als Parameter angegeben werden. Im folgenden Fall, wird geprüft, ob ein User mit der E-Mail-Adresse [email protected] auf CDC schon existiert. Die folgende Query kannst Du dafür nutzen:

 

SELECT profile.firstName, profile.lastName FROM accounts WHERE profile.email=”[email protected]

Fazit

Mithilfe der REST-Schnittstelle lässt sich CDC kurzerhand mit dem IDM verbinden. Eine unkomplizierte Anbindung von CDC kann mit wenig Zeitaufwand umgesetzt werden. So ist es möglich, die Vorteile beider Systeme zu nutzen und von den zusätzlichen Funktionen zu profitieren. Außerdem ist es möglich, in CDC mehrere Accounts einer Person zu einem zusammenzufassen. Allerdings müssen hier beim Anlegen und Löschen eines Accounts zusätzliche Überprüfungen eingebaut werden. Damit wird verhindert, dass in CDC Accounts gelöscht werden, die von anderen Accounts in IDM noch referenziert werden.

 

Falls Du vor diesem Artikel noch gerätselt hast, ob sich die beiden Systeme einfach verbinden lassen, solltest Du jetzt einen groben Überblick haben. Falls du Starthilfe brauchst, um mit einem Proof of Concept starten zu können, dann kontaktiere uns gerne via Mail oder Anruf. Wir unterstützen dich gerne!

Related Articles

Getting Identities from Active Directory to Omada in a Nutshell 
Passwortloser Login mit Fido2 – The next level of authentication
Menü