Was ist Hauptvermehrung?
Mit Principal Propagation haben Sie die Möglichkeit, den angemeldeten Benutzer von SAP BTP in eine App zu propagieren, die Sie mit Simplifier erstellt haben.
Die folgenden Schritte sind erforderlich, um die Prinzipalweitergabe 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 herstellen
- 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 verwenden, wobei der neue Parameter UsePrincipalPropagation auf true festgelegt ist
- Sie müssen Ihre App für die Bereitstellung in BTP und Principal Propagation vorbereiten
Benötige ich den SAP Cloud Connector?
Je nachdem, wie Simplifier bereitgestellt wird, müssen Sie den SAP Cloud Connector verwenden, um die Apps, die Sie mit Simplifier erstellt haben, auf SAP BTP zu verwenden.
- Wenn Simplifier nicht öffentlich erreichbar ist, müssen Sie SAP Cloud Connect verwenden
- Wenn Sie von überall im Internet auf Simplifier zugreifen können, müssen Sie SAP Cloud Connect nicht verwenden
Im folgenden Diagramm finden Sie zwei Beispiele.
Diese Dokumentation behandelt beide Fälle – mit und ohne Verwendung von SAP Cloud Connector.
Wenn Sie bereits SAP BTP mit IAS und einem Corporate Identity Provider verwenden, haben Sie möglicherweise bereits Vertrauen 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 richtig eingerichtet ist.
Einrichten des Corporate Identity-Anbieters
In dieser Dokumentation wird die Vertrauensstellung zwischen einer Microsoft EntraID und SAP Cloud Identity Services eingerichtet.
Für andere Corporate Identity Provider als EntraID konsultieren Sie bitte deren Dokumentation.
In EntraID müssen Sie SAP Cloud Identity Services als Unternehmensanwendung 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 for BTP)
- Wählen Sie “Verwalten”
- Wählen Sie “Single Sign-On”
- Wählen Sie “SAML”
- Wählen Sie “Attribute & Ansprüche”
- Am Ende benötigen wir die Attribute und Claims, wie im unteren Screenshot gezeigt
- Es ist wichtig, dass die Claim-Namen korrekt sind (Gruppen, E-Mail, given_name, family_name) und ohne Namensraum (dies gilt für jeden Corporate Identity Provider – nicht nur für EntraID)
Wenn Sie bereits SAP BTP verwenden, haben Sie möglicherweise bereits Vertrauen zwischen SAP Cloud Identity Service und SAP BTP aufgebaut – bitte lesen Sie dieses Kapitel trotzdem durch, um sicherzustellen, dass alles richtig eingerichtet ist.
Einrichten von IAS und BTP
Folgen Sie diesem Tutorial, wie Sie Vertrauen zwischen SAP Cloud Identity Services und Ihrem SAP BTP-Unterkonto herstellen können: https://developers.sap.com/tutorials/abap-custom-ui-trust-cf..html Jetzt haben Sie in SAP Cloud Identity Services eine neue Anwendung, z.B. mit dem Namen “SAP BTP subaccout”.
Für diese Anwendung müssen Sie auf “Bedingte Authentifizierung” gehen und im Abschnitt “Default Authenticating Identity Provider” den zuvor etablierten Corporate Identity Provider (in unserem Fall EntraID) als Default Identity Provider auswählen.
Einrichten von SAP Cloud Identity Service als oAuth in Simplifier
Bitte befolgen Sie diese Dokumentation: https://community.simplifier.io/doc/installation-instructions/setup-external-identity-provider/configure-btp-identity-services-via-openid-connect/ Wahrscheinlich haben Sie bereits ein Abonnement für SAP Cloud Identity Services, 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 Switch für Principal Propagation
- Als nächstes müssen wir den Domainnamen nachschlagen, der für die Hauptverbreitung verwendet wird.
- Gehen Sie in SAP Cloud Identity Services zu
- Anwendungen & Ressourcen
- Wählen Sie die Anwendung aus, die für das SAP-BTP-Unterkonto angelegt wurde (etwas mit “XSUAA_…”)
- Wählen Sie “OpenID Connect Configuration” aus.
- Als “Redirect URI” sollte es so etwas wie “https:// <YOUR_INSTANCE.authentication.eu10.hana.ondemand.com/login/callback/sap.custom>” geben 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 in die Simplifier-Einstellungen für die Authentifizierung und in die “Mechanismus-Einstellungen” von “sapbtp”
- Als “Propagation JKU” eintragen: “https:// <YOUR_INSTANCE.authentication.eu10.hana.ondemand.com/token_keys>“
- Geben Sie als “Propagation Profile URL” Folgendes ein: “https:// <YOUR_INSTANCE.authentication.eu10.hana.ondemand.com/userinfo>“
- “Propagation Profile Path” und “Propagation Profile Verb” sollten bei den Standardwerten “/” und “GET” bleiben.
Zuordnen von Benutzerdetails und -gruppen
- Gehen Sie zum Unterreiter “Benutzerdetails”
- Ausfüllen:
- Vorname: “given_name”
- Nachname: “family_name”
- E-Mail-Adresse: “email”
- Gehen Sie zum Unterreiter “Benutzergruppen”
- Je nachdem, ob sich der Benutzer über oAuth am Simplifier Admin UI anmeldet (Fall
1) oder über eine Simplifier App von BTP über Principal Propagation (Case
2) Die Gruppen müssen aus verschiedenen Pfaden aus dem extrahierten Benutzerprofil zugeordnet werden.
Für jede Gruppe, die wir in einem Mapping verwenden möchten, müssen wir also zwei Einträge erstellen – hier ist ein Beispiel: - Wir wollen die Gruppe mit der ID “123-ABC” der in Simplifier definierten Gruppe “Sales” zuordnen
- Füllen Sie die beiden Regeln für “Verkäufe” 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” sollte
- 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” sollte
- Je nachdem, ob sich der Benutzer über oAuth am Simplifier Admin UI anmeldet (Fall
App erstellen
Eine App, die Principle Propagation verwendet, muss die Anmeldeaktion mit dem vorbereiteten oAuth-Authentifizierungsanbieter verwenden.
Hier ist ein Beispiel, wie man das macht:
- Sie bearbeiten Ihre App in der Simplifier-Admin-Benutzeroberfläche
- Erstellen Sie im Prozessdesigner eine Story und nennen Sie sie “Login”
- Ziehen Sie in der linken Symbolleiste das Shape, um ein Ereignis zu abonnieren
- Wählen Sie z.B. “Screen Events” -> “onBeforeFirstShow” des ersten Bildschirms, der in Ihrer App erscheint
- Ziehen Sie von der linken Symbolleiste die Form zu “Serveraktion”
- Verbinden beider Shapes
- Wählen Sie erneut die Form “Login Action” und wählen Sie in der rechten Detailansicht “oAuth 2.0”
- Doppelklicken Sie auf die Form “Anmeldeaktion” und ziehen Sie alle Parameter von rechts ein
- setzen Sie den “Service” auf den Namen des erstellten oAuth Authentication Providers, für den wir die Principal Propagation aktiviert haben – in unserem Fall ist es “sapbtp”
- Legen Sie “UsePrinciplePropagation” auf true fest.
- Klicken Sie auf “Übernehmen”
- Sie sollten auch die Ausgabepunkte der Form “Erfolg”, “Bereits angemeldet” und “Fehler” wie bei jeder anderen “Login-Aktion” verbinden
Einrichten des SAP Cloud Connectors
Sie müssen SAP Cloud Connector nur für den Fall einrichten, dass Ihr Simplifier nicht über das Internet erreichbar ist.
Nachdem SAP Cloud Connector installiert wurde und Sie sich beim Cloud Connector anmelden 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 Ihr Unterkonto.
Wählen Sie “Konnektivität” und klicken Sie auf “Cloud Connectors”.
Hier können Sie “Authentifizierungsdaten herunterladen”.
Melden Sie sich danach bei SAPCC an.
Klicken Sie auf “+ Unterkonto hinzufügen” und wählen Sie “Mit Authentifizierungsdaten aus der Datei konfigurieren”.
Führen Sie die Schritte aus, bis das Unterkonto mit dem SAPCC verbunden ist.
Systemzuordnung hinzufügen:
Wählen Sie nun das verbundene Unterkonto in SAPCC aus und klicken Sie auf “Cloud to On-Premise”.
Fügen Sie auf dem Reiter “ACCESS CONTROL” eine neue Systemzuordnung hinzu.
- Schritt
- Backend-Typ: Wählen Sie “Nicht-SAP-System”
- Schritt
- Protokoll: HTTP
- Schritt
- Interner Host: Wählen Sie den Namen des Hosts, unter dem das SAPCC das Simplifier-Backend erreichen kann
- Interner Port: Wählen Sie den Port aus, unter dem das SAPCC das Simplifier-Backend erreichen kann
- Schritt
- Virtueller 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”)
- Virtueller Port: Wählen Sie den Port für das Simplifier-Backend, der später von der SAP BTP-Destination verwendet wird (kann mit dem internen Port identisch sein)
- Schritt
- Entfernen Sie das Häkchen bei “Allow Principal Propagation” (da wir einen anderen Typ von Principal Propagation verwenden werden)
- Schritt
- Wählen Sie “Virtuellen Host verwenden” als Host im Anforderungsheader
- Schritt
- Geben Sie eine Beschreibung, wenn Sie möchten
- Schritt
- Beenden Sie die Systemzuordnung
Ressource hinzufügen:
Als nächstes müssen wir eine Ressource für das zugeordnete System hinzufügen.
Nachdem Sie auf das “+” geklickt haben, fügen Sie bitte diese Daten hinzu:
- Der URL-Pfad sollte “/” sein.
- “Aktiv” sollte aktiviert sein
- “Websocket” sollte aktiviert sein
- “Zugriffsrichtlinie” sollte “Pfad und alle Unterpfade” lauten.
Das vollständige Ergebnis kann nun so aussehen:
Vorbereiten der App für BTP und Principal-Propagation
Führen Sie die Schritte aus, die in der allgemeinen Dokumentation zum Bereitstellen einer Simplifier-App auf BTP beschrieben sind – nach Schritt 7 finden Sie weitere Informationen weiter unten: https://community.simplifier.io/doc/current-release/deploy/deploy-to-sap-btp/ 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" }
-
- Aufmerksamkeit: Wichtig ist die Reihenfolge der Einträge in xs-app.json!
Der hinzugefügte Eintrag muss vor dem Catch-All-Eintrag mit der “source”: “^(.*)$” stehen.
Andernfalls bemerken Sie den 404-Fehler “Datei nicht gefunden”, wenn Sie versuchen, sich über Principal Propagation anzumelden.
- Aufmerksamkeit: Wichtig ist die Reihenfolge der Einträge in xs-app.json!
- Füllen Sie die Variable aus:
- <PROVIDER:> der Name des Authentifizierungsanbieters, den Sie im Simplifier konfiguriert haben – z.B. “sapbtp”
Wenn Sie mit SAP Cloud Connector arbeiten
- Nach “Schritt 7” müssen wir ein bestehendes Ziel ändern:
- destination.json Ändern Sie die SharedInstance entsprechend wie folgt
{ "Name": "SharedInstance", "Description": "", "Authentication": "NoAuthentication", "ProxyType": "OnPremise", "Type": "HTTP", "URL": "https://<VIRTUAL_HOST>:<VIRTUAL_PORT>", "HTML5.DynamicDestination": true, "tokenServiceURLType": "Dedicated", "CloudConnectorLocationId": "<CLOUD_CONNECTOR_LOCATION_ID>" }
- und wir müssen das SharedInstancePropagateToken-Ziel ändern:
- in destination.json
{ "Name": "SharedInstancePropagateToken", "Description": "", "Authentication": "OAuth2JWTBearer", "ProxyType": "OnPremise", "Type": "HTTP", "URL": "https://<VIRTUAL_HOST>:<VIRTUAL_PORT>", "tokenServiceURL": "https://<virtual-host>:<virtual-port>/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" }
-
- Aufmerksamkeit: Wichtig ist die Reihenfolge der Einträge in xs-app.json!
Der hinzugefügte Eintrag muss vor dem Catch-All-Eintrag mit der “source”: “^(.*)$” stehen.
Andernfalls bemerken Sie den 404-Fehler “Datei nicht gefunden”, wenn Sie versuchen, sich über Principal Propagation anzumelden.
- Aufmerksamkeit: Wichtig ist die Reihenfolge der Einträge in xs-app.json!
- 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 Authentifizierungsanbieters, den Sie im Simplifier konfiguriert haben – z.B. “sapbtp”
- <CLOUD_CONNECTOR_LOCATION_ID>: Wenn Sie eine LocationId für Ihre SAPCC definiert haben
- <> OWN_CLIENT_ID und <OWN_CLIENT_SECRET> können vom Authentifizierungsanbieter in Simplifier nachgeschlagen werden – siehe Screenshot unten
Hinweise, die für beide Fälle (mit und ohne SAPCC) gemeinsam sind
- Hinweis für “Schritt 8” – wenn “cf login” bei Ihnen nicht funktioniert, können Sie auch “cf login –sso” ausprobieren.
- Der API-Endpunkt, der in “Schritt 8” benötigt wird, kann in der “Übersicht” -> “Allgemein” -> “Cloud Foundry Umgebung” Ihres Unterkontos hier nachgeschlagen werden: https://emea.cockpit.btp.cloud.sap/cockpit/