Was ist Principal Propagation?
Mit Principal Propagation haben Sie die Möglichkeit, den angemeldeten Benutzer von SAP BTP an eine App zu übertragen, die Sie mit Simplifier erstellt haben.
Die folgenden Schritte sind erforderlich, um Principal Propagation in Ihrer App zu verwenden:
- Wenn Sie einen Corporate Identity Provider (z. B. Microsoft EntraID) verwenden möchten, müssen Sie eine Vertrauensstellung zwischen IAS und dem Corporate Identity Provider aufbauen.
- IAS (SAP Cloud Identity Services) muss BTP vertrauen und umgekehrt
- Sie müssen IAS als oAuth-Authentifizierungsanbieter in Simplifier einrichten.
- Ihre App muss die LoginAction für oAuth2.0 mit dem neuen Parameter UsePrincipalPropagation auf true gesetzt verwenden
- Sie müssen Ihre App für die Bereitstellung in BTP und Principal Propagation vorbereiten
Benötige ich den SAP Cloud Connector?
Abhängig davon, wie Simplifier bereitgestellt wird, müssen Sie SAP Cloud Connector verwenden, um die Apps, die Sie mit Simplifier erstellt haben, auf SAP BTP zu nutzen.
- Wenn Simplifier nicht öffentlich erreichbar ist, müssen Sie SAP Cloud Connect verwenden.
- Wenn Simplifier von überall im Internet aus erreichbar ist, müssen Sie SAP Cloud Connect nicht verwenden.
Einige Beispiele finden Sie im folgenden Diagramm.
Diese Dokumentation behandelt beide Fälle – mit und ohne die Verwendung von SAP Cloud Connector.
Wenn Sie SAP BTP bereits mit IAS und einem Corporate Identity Provider verwenden, haben Sie möglicherweise bereits eine Vertrauensstellung zwischen SAP Cloud Identity Services und Ihrem Corporate Identity Provider (z. B. Microsoft EntraID) aufgebaut – bitte lesen Sie dieses Kapitel trotzdem durch, um sicherzustellen, dass alles ordnungsgemäß eingerichtet ist.
Corporate Identity Provider einrichten
Diese Dokumentation stellt eine Vertrauensstellung zwischen einem Microsoft EntraID und SAP Cloud Identity Services her. Für andere Corporate Identity Provider als EntraID konsultieren Sie bitte deren Dokumentation.
In EntraID müssen Sie SAP Cloud Identity Services als Enterprise Application hinzufügen. In SAP Cloud Identity Services müssen Sie EntraID als Corporate Identity Provider hinzufügen. Bitte folgen Sie diesen Anweisungen, um dies einzurichten: https://learn.microsoft.com/en-us/entra/identity/saas-apps/sap-hana-cloud-platform-identity-authentication-tutorial
Damit E-Mail, Name und Gruppen des Benutzers korrekt von EntraID zu BTP übertragen werden, müssen wir die Claims & Attributes mit diesen Schritten anpassen:
- Gehen Sie in EntraID zu Ihrer neu erstellten Enterprise Application (z. B. SAP Cloud Identity Services für BTP)
- Wählen Sie “Manage”
- Wählen Sie “Single sign-on”
- Wählen Sie “SAML”
- Wählen Sie “Attributes & Claims”
- Am Ende benötigen wir die Attribute und Claims wie im unteren Screenshot gezeigt
- Es ist wichtig, dass die Claim-Namen korrekt sind (groups, email, given_name, family_name) und ohne Namespace (dies gilt für jeden Corporate Identity Provider – nicht nur für EntraID)
Wenn Sie SAP BTP bereits verwenden, haben Sie möglicherweise bereits eine Vertrauensstellung zwischen SAP Cloud Identity Service und SAP BTP aufgebaut – bitte lesen Sie dieses Kapitel trotzdem durch, um sicherzustellen, dass alles ordnungsgemäß eingerichtet ist.
IAS und BTP einrichten
Folgen Sie diesem Tutorial, wie eine Vertrauensstellung zwischen SAP Cloud Identity Services und Ihrem SAP BTP Subaccount hergestellt werden kann:
https://developers.sap.com/tutorials/abap-custom-ui-trust-cf..html
Nun haben Sie in SAP Cloud Identity Services eine neue Anwendung, z. B. “SAP BTP subaccout” genannt. Für diese Anwendung müssen Sie zu “Conditional Authentication” gehen und im Abschnitt “Default Authenticating Identity Provider” den zuvor eingerichteten Corporate Identity Provider (in unserem Fall EntraID) als Default Identity Provider auswählen.
Richten Sie SAP Cloud Identity Service als oAuth in Simplifier ein.
Bitte folgen Sie dieser Dokumentation: https://community.simplifier.io/doc/installation-instructions/setup-external-identity-provider/configure-btp-identity-services-via-openid-connect/
Wahrscheinlich haben Sie bereits ein SAP Cloud Identity Services-Abonnement, sodass Sie den ersten Schritt überspringen können.
Die nächsten Schritte sind:
- Bleiben Sie in den Simplifier-Einstellungen für die Authentifizierung und aktivieren Sie in den “Mechanismus-Einstellungen” von “sapbtp” den Schalter für Principal Propagation.
- Als Nächstes müssen wir den Domainnamen suchen, der für die Principal Propagation verwendet wird.
- Gehen Sie in SAP Cloud Identity Services zu
- Applications & Resources
- Wählen Sie die Anwendung aus, die für den SAP BTP Subaccount erstellt wurde (etwas mit “XSUAA_…”)
- Wählen Sie dessen “OpenID Connect Configuration” aus
- Als “Redirect URI” sollte so etwas wie “https://<YOUR_INSTANCE>.authentication.eu10.hana.ondemand.com/login/callback/sap.custom” vorhanden sein und “https://<YOUR_INSTANCE>.authentication.eu10.hana.ondemand.com” ist die URL, die wir suchen.
- Gehen Sie in SAP Cloud Identity Services zu
- Wechseln Sie nun zurück zu den Simplifier-Einstellungen für die Authentifizierung und in den “Mechanismus-Einstellungen” von “sapbtp”.
- Füllen Sie als “Propagation JKU” Folgendes aus: “https://<YOUR_INSTANCE>.authentication.eu10.hana.ondemand.com/token_keys”
- Füllen Sie als “Propagation Profile URL” Folgendes aus: “https://<YOUR_INSTANCE>.authentication.eu10.hana.ondemand.com/userinfo”
- “Propagation Profile Path” und “Propagation Profile Verb” sollten bei den Standardwerten “/” und “GET” bleiben
Benutzerdetails und Gruppen zuordnen
- Gehen Sie zum Unterregister “User Details”
- Füllen Sie Folgendes aus:
- Vorname: “given_name”
- Nachname: “family_name”
- E-Mail-Adresse: “email”
- Gehen Sie zum Unterregister “User Groups”
- Abhängig davon, ob sich der Benutzer über oAuth (Fall 1) oder über eine Simplifier App von BTP über Principal Propagation (Fall 2) in die Simplifier Admin UI einloggt, müssen die Gruppen von verschiedenen Pfaden aus dem extrahierten Benutzerprofil zugeordnet werden. Für jede Gruppe, die wir in einer Zuordnung verwenden möchten, müssen wir also zwei Einträge erstellen – hier ist ein Beispiel:
- Wir möchten die Gruppe mit der ID “123-ABC” der in Simplifier definierten Gruppe “Sales” zuordnen.
- Füllen Sie die beiden Regeln für “Sales” wie im Screenshot aus
- für (Fall 1) haben wir die Regel, dass der Pfad “groups” im extrahierten Profil die Gruppen-ID “123-ABC” “enthalten” soll
- für (Fall 2) haben wir die Regel, dass der Pfad “idTokenPayload/xs.system.attributes/xs.saml.groups” im extrahierten Profil die Gruppen-ID “123-ABC” “enthalten” soll
App erstellen
Eine App, die Principle Propagation verwendet, muss die Login-Aktion mit dem vorbereiteten oAuth Authentication Provider verwenden. Hier ist ein Beispiel, wie das geht:
- Sie bearbeiten Ihre App in der Simplifier Admin UI.
- Erstellen Sie im Process Designer eine Story und nennen Sie sie “Login”
- Ziehen Sie aus der linken Symbolleiste die Form zum Abonnieren eines Ereignisses hinein
- Wählen Sie z. B. “Screen Events” -> “onBeforeFirstShow” des ersten Bildschirms, der in Ihrer App angezeigt wird
- Ziehen Sie aus der linken Symbolleiste die Form zu “Server Action”
- Verbinden Sie beide Formen
- Wählen Sie erneut die Form “Login Action” und wählen Sie “oAuth 2.0” in der rechten Detailansicht
- Doppelklicken Sie auf die Form “Login Action” und ziehen Sie alle Parameter von rechts hinein
- Setzen Sie den “Service” auf den Namen des erstellten oAuth Authentication Provider, für den wir Principal Propagation aktiviert haben – in unserem Fall ist es “sapbtp”
- Setzen Sie “UsePrinciplePropagation” auf true
- Klicken Sie auf “Apply”
- Sie sollten auch die Ausgabepunkte der Form “Success”, “Already logged in” und “Error” wie für jede andere “Login Action” verbinden
SAP Cloud Connector einrichten
Sie müssen SAP Cloud Connector nur dann einrichten, wenn Ihr Simplifier nicht über das Internet erreichbar ist.
Nachdem SAP Cloud Connector installiert ist und Sie sich in den Cloud Connector einloggen können, können Sie SAPCC (SAP Cloud Connector) mit SAP BTP verbinden.
Loggen Sie sich in das SAP BTP Cockpit ein und gehen Sie in Ihren Subaccount. Wählen Sie “Connectivity” und klicken Sie auf “Cloud Connectors”. Hier können Sie “Download Authentication Data”.
Loggen Sie sich danach in SAPCC ein. Klicken Sie auf “+ Add Subaccount” und wählen Sie “Configure using authentication data from file”. Folgen Sie den Schritten, bis der Subaccount mit dem SAPCC verbunden ist.
System Mapping hinzufügen:
Wählen Sie nun den verbundenen Subaccount in SAPCC aus und klicken Sie auf “Cloud to On-Premise”. Fügen Sie auf der Registerkarte “ACCESS CONTROL” ein neues System Mapping hinzu.
- Schritt
- Back-end Type: wählen Sie “Non-SAP System”
- Schritt
- Protocol: HTTP
- Schritt
- Interner Host: Wählen Sie den Namen des Hosts, unter dem der SAPCC das Simplifier-Backend erreichen kann.
- Interner Port: Wählen Sie den Port, unter dem der SAPCC das Simplifier-Backend erreichen kann.
- Schritt
- Virtual Host: wählen Sie einen Namen für das Simplifier Backend, der später von der SAP BTP Destination verwendet wird (z. B. “p-on-prem-simplifier”)
- Virtual Port: wählen Sie den Port für das Simplifier Backend, der später von der SAP BTP Destination verwendet wird (kann derselbe wie der interne Port sein)
- Schritt
- Entfernen Sie das Häkchen für “Allow Principal Propagation” (da wir eine andere Art von Principal Propagation verwenden werden)
- Schritt
- Wählen Sie “Use Virtual Host” als Host im Request Header
- Schritt
- Geben Sie eine Beschreibung an, wenn Sie möchten
- Schritt
- Beenden Sie das System Mapping
Ressource hinzufügen:
Als Nächstes müssen wir eine Ressource für das zugeordnete System hinzufügen. Nach dem Klicken auf das “+” fügen Sie bitte diese Daten hinzu:
- URL Path sollte “/” sein
- “Active” sollte aktiviert sein
- “Websocket” sollte aktiviert sein
- “Access Policy” sollte “Path and all Sub-Paths” sein
Das vollständige Ergebnis kann nun so aussehen:
App für BTP und Principal Propagation vorbereiten
Folgen Sie den Schritten, die in der allgemeinen Dokumentation beschrieben sind, wie eine Simplifier App in BTP bereitgestellt wird – nach Schritt 7 finden Sie hier zusätzliche Informationen:
Führen Sie diese zusätzlichen Schritte aus:
Falls Sie SAP Cloud Connector nicht verwenden
-
- in xs-app.json
{ "authenticationType": "none", "csrfProtection": false, "source": "^/authentication/oauth/<PROVIDER>/propagation(.*)$", "destination": "SharedInstancePropagateToken" }
-
- Attention: Die Reihenfolge der Einträge in xs-app.json ist wichtig! Der hinzugefügte Eintrag muss vor dem Catch-All-Eintrag mit der “source”: “^(.*)$” stehen. Andernfalls werden Sie einen 404-Fehler “Datei nicht gefunden” feststellen, wenn Sie versuchen, sich über Principal Propagation anzumelden.
- Füllen Sie die Variable aus:
- <PROVIDER>: der Name des Authentication Providers, den Sie in Simplifier konfiguriert haben – z. B. “sapbtp”.
Falls Sie mit SAP Cloud Connector arbeiten
- Nach “Step 7” müssen wir eine bestehende Destination modifizieren:
- in destination.json
Ändern Sie die SharedInstance entsprechend dem Folgenden
- in destination.json
{
"Name": "SharedInstance",
"Description": "",
"Authentication": "NoAuthentication",
"ProxyType": "OnPremise",
"Type": "HTTP",
"URL": "http://<VIRTUAL_HOST>:<VIRTUAL_PORT>",
"HTML5.DynamicDestination": true,
"tokenServiceURLType": "Dedicated",
"CloudConnectorLocationId": "<CLOUD_CONNECTOR_LOCATION_ID>"
}
- und wir müssen die SharedInstancePropagateToken Destination ändern:
- in destination.json
{
"Name": "SharedInstancePropagateToken",
"Description": "",
"Authentication": "OAuth2JWTBearer",
"ProxyType": "OnPremise",
"Type": "HTTP",
"URL": "http://<VIRTUAL_HOST>:<VIRTUAL_PORT>",
"tokenServiceURL": "http://:/authentication/oauth/ <PROVIDER>/token",
"tokenServiceURLType": "Dedicated",
"clientSecret": "<OWN_CLIENT_SECRET>",
"clientId": "<OWN_CLIENT_ID>",
"HTML5.DynamicDestination": true,
"CloudConnectorLocationId": "<CLOUD_CONNECTOR_LOCATION_ID>"
}
-
- in xs-app.json
{ "authenticationType": "none", "csrfProtection": false, "source": "^/authentication/oauth/<PROVIDER>/propagation(.*)$", "destination": "SharedInstancePropagateToken" }
-
- Attention: Die Reihenfolge der Einträge in xs-app.json ist wichtig! Der hinzugefügte Eintrag muss vor dem Catch-All-Eintrag mit der “source”: “^(.*)$” stehen. Andernfalls werden Sie einen 404-Fehler “Datei nicht gefunden” feststellen, wenn Sie versuchen, sich über Principal Propagation anzumelden.
- Attention: Es ist wichtig, jede URL mit http und nicht mit https einzustellen, auch wenn die URL im SAP Cloud Connector anders konfiguriert ist
- Füllen Sie die Variablen aus:
- <VIRTUAL_HOST> und <VIRTUAL_PORT> sind die Werte, die Sie im SAP Cloud Connector definiert haben
- <PROVIDER>: der Name des Authentication Providers, den Sie in Simplifier konfiguriert haben – z. B. “sapbtp”.
- <CLOUD_CONNECTOR_LOCATION_ID>: wenn Sie eine LocationId für Ihren SAPCC definiert haben
- <OWN_CLIENT_ID> und <OWN_CLIENT_SECRET> können vom Authentication Provider in Simplifier abgerufen werden – siehe Screenshot unten
Hinweise, die für beide Fälle gelten (mit und ohne SAPCC)
- Hinweis für “Step 8” – wenn “cf login” für Sie nicht funktioniert, können Sie auch “cf login –sso” ausprobieren
- Der API-Endpunkt, der in “Step 8” benötigt wird, kann in der “Overview” -> “General” -> “Cloud Foundry Environment” Ihres Subaccounts hier abgerufen werden: https://emea.cockpit.btp.cloud.sap/cockpit/






















