Im zweiten Artikel der Reihe über die Entwicklung von Anwendungen auf der SAP Cloud Platform in der Neo-Umgebung werden wir einen der wichtigsten Aspekte behandeln - Autorisierung und Verwaltung der Benutzerauthentifizierung.
In diesem Artikel wird gezeigt, wie eine Verbindung zwischen der SAP Cloud Platform und dem Identitätsanbieter (IDP) des imaginären ABC PetroCorp-Clients hergestellt und Benutzer zum IDP hinzugefügt werden. Als Nächstes wird untersucht, wie Rollen für Benutzer des Clientunternehmens in einer bestimmten Anwendung (von IDP) zugewiesen werden und wie SAML-Attribute für die Übertragung von IDP an die Anwendung der Cloud-Plattform SCP konfiguriert werden.
Im Unterkonto des fiktiven ABC PetroCorp-Clients
aus dem ersten Artikel ist bereits ein Abonnement für SCP-Anwendungen zur Überwachung der Umweltverschmutzung installiert, die von ITeLO Consulting bereitgestellt werden. Jetzt muss der ABC PetroCorp-Mitarbeiter diese Anwendung anderen Kollegen zur Verfügung stellen.
Ein Benutzer der SAP Cloud Platform kann seinen Unternehmens-IDP mit der Cloud-Plattform verbinden und das Sicherheits- und Authentifizierungsmanagement für seine in SCP geladene Anwendung konfigurieren.
ABC PetroCorp hat den Identitätsauthentifizierungsdienst der SAP Cloud Platform aktiviert, der den Zugriff auf Geschäftsprozesse, Anwendungen und Daten ermöglicht. Dieser Dienst stellt einen SCI-Mandanten bereit, in dem sich eine Anwendungskonfiguration und eine Benutzerautorisierungsverwaltung befinden.
Emily, die imaginäre Heldin aus dem ersten Artikel, hat Zugriff auf diesen SCI-Mandanten - sie ist seine Administratorin und kann die Benutzerberechtigung in einer bestimmten Anwendung konfigurieren. Sie möchte herausfinden, wie diese Konfigurationen mithilfe des Identitätsauthentifizierungsdienstes erstellt werden.
Anforderungen:
- Ein produktives globales SCP-Konto (keine Testversion) mit dem damit verbundenen Identitätsauthentifizierungsdienst (als IDP für das ABC PetroCorp-Unterkonto);
- Der Benutzer des Unterkontos des Clients muss der Administrator des SCI-Mandanten sein, damit er Zugriff auf die Administrationskonsole des Identitätsauthentifizierungsdienstes hat.
Emily muss die folgenden Schritte in der Administrationskonsole des Identitätsauthentifizierungsdienstes und im SCP-Kontrollfeld ausführen, um die Anwendung in der Cloud-Plattform anderen ABC PetroCorp-Mitarbeitern zur Verfügung zu stellen:
Schritt 1: Stellen Sie eine Vertrauensbeziehung zwischen dem SCI-Mandanten und dem SCP-Unterkonto her.
Schritt 2: Importieren Sie Benutzer in den SCI-Mandanten und aktualisieren (fügen) Sie die erforderlichen Attribute hinzu.
Schritt 3: Weisen Sie Benutzern auf Anwendungsebene in SCP Rollen zu.
Schritt 4: Konfigurieren Sie die Attribute im SCI-Mandanten- und SCP-Kontrollfeld, um sie an die Anwendung zu übertragen.
Schritt 5: Überprüfen Sie die Einstellungen.Schritt 1: Stellen Sie eine Vertrauensstellung zwischen dem SCI-Mandanten und dem SCP-Unterkonto her
Emily ist die Administratorin des ABC PetroCorp-Unterkontos und des SCI-Mandanten. Dadurch kann sie die erforderlichen Einstellungen vornehmen, um den SCI-Mandanten als „Benutzer-Repository“ für die vom ITeLO Consulting-Anbieter bereitgestellte mandantenfähige Anwendung zu verwenden.
Zunächst muss Emily eine vertrauensvolle Beziehung zwischen dem SCI-Mandanten und dem SCP-Unterkonto des ABC PetroCorp-Kunden herstellen.
Wir rufen die Administrationskonsole des Identitätsauthentifizierungsdienstes über den Link "https: //.accounts.ondemand.com/admin" auf, in dem sich die Kennung des SCI-Mandanten befindet. Dieser Link befindet sich im Registrierungsschreiben an den Administrator des Mandanten des Identitätsauthentifizierungsdienstes. Dort wird auch die Mieter-ID angegeben.
Die Administrationskonsole des Identitätsauthentifizierungsdienstes lautet wie folgt:

Öffnen Sie auf einer anderen Browser-Registerkarte die Systemsteuerung für das Client-Unterkonto "ABC PetroCorp" und wechseln Sie zur Registerkarte "Sicherheit" -> "Vertrauen".

Wechseln Sie im daraufhin geöffneten Menü "Vertrauensverwaltung" zur Registerkarte "Lokaler Dienstanbieter" und klicken Sie auf "Bearbeiten".

Dann führen wir die folgenden Schritte aus:
- Ändern Sie im Feld "Konfigurationstyp" den Typ in "Benutzerdefiniert".
- Klicken Sie auf "Schlüsselpaar generieren", um einen Schlüssel und ein Zertifikat für das Konto zu erstellen.
- Ändern Sie den Wert im Feld "Hauptausbreitung" in "Aktivieren".
- Klicken Sie auf "Speichern".

Klicken Sie auf "Metadaten abrufen", um die Metadatendatei im "XML" -Format herunterzuladen, das die zuvor beschriebenen Konfigurationen enthält. Es wird verwendet, um Vertrauen mit dem SCI-Mandanten aufzubauen.
Kehren wir zur Administrationskonsole des Identitätsauthentifizierungsdienstes zurück und gehen Sie im Menü links zur Registerkarte "Anwendungen und Ressourcen" -> "Anwendungen". Klicken Sie im Bereich "Anwendungen" auf die Schaltfläche "Hinzufügen", um eine neue Anwendung anzugeben, die im Unterkonto "ABC PetroCorp" bereitgestellt wird.

Geben Sie im angezeigten Fenster den Namen der Anwendung ein (z. B. ABC_PetroCorp_IDP) und klicken Sie auf "Speichern". Danach wird im Mandanten ein neuer Punkt für unsere Anwendung erstellt.
Wechseln Sie in der erstellten Anwendung zur Registerkarte "Vertrauenswürdig" und wählen Sie den Parameter "SAML 2.0-Konfiguration" aus.

Klicken Sie im Abschnitt "Aus Metadaten definieren" auf "Durchsuchen" und wählen Sie die Metadatendatei im "XML" -Format aus, das wir zuvor beim Einrichten der Vertrauenswürdigkeit in das SCP-Unterkonto heruntergeladen haben. Details zur SAML 2.0-Konfiguration werden nach dem Herunterladen der Datei automatisch ausgefüllt. Klicken Sie auf "Speichern" - jetzt wird die SAML 2.0-Konfiguration für diese Anwendung erstellt und gespeichert.

Kehren Sie im Mandanten zum Anwendungspunkt ABC_PetroCorp_IDP zurück, klicken Sie auf "Home URL" und geben Sie eine URL wie "https: // Pollutionmonitoringui- <Unterkontoname> .dispatcher. <Region_host>" ein.
Diese URL finden Sie in der Beschreibung der HTML5-Anwendung, für die der Client abonniert ist (Unterkonto "ABC PetroCorp"). Gehen Sie dazu zum Unterkonto des Kunden auf der Registerkarte "Anwendungen" -> "Abonnements" und wählen Sie die signierte HTML5-Anwendung aus.

Auf der Registerkarte "Übersicht" befindet sich die URL, die wir benötigen.

Anschließend kehren wir zum Anwendungspunkt im SCI-Mandanten zurück, geben die Anwendungs-URL in der „Home-URL“ an und klicken auf „Speichern“.

Gehen Sie nun in der Administrationskonsole des Identitätsauthentifizierungsdienstes zur Registerkarte „Anwendungen & Ressourcen“ -> „Mandanteneinstellungen“. Wählen Sie auf der Seite mit den Mandanteneinstellungen die Option „SAML 2.0-Konfiguration“ aus.

Klicken Sie im folgenden Fenster auf "Metadatendatei herunterladen", um die XML-Datei mit den SCI-Mandantenkonfigurationen herunterzuladen. Es wird in Zukunft verwendet, um Vertrauen in das Unterkonto des Kunden in SCP aufzubauen.
Gehen Sie zurück zum Unterkonto "ABC PetroCorp" und gehen Sie zum Menü "Sicherheit" -> "Vertrauen". Wählen Sie im folgenden Fenster die Registerkarte "Application Identity Provider". Klicken Sie auf "Vertrauenswürdigen Identitätsanbieter hinzufügen", um Details zum SCI-Mandanten hinzuzufügen.

Klicken Sie auf der Registerkarte "Allgemein" auf "Durchsuchen" und wählen Sie die Metadatendatei im Format "XML" aus, das von der Administrationskonsole des Identitätsauthentifizierungsdienstes heruntergeladen wurde. Konfigurationsdetails werden nach dem Herunterladen der Datei automatisch ausgefüllt. Deaktivieren Sie das Kontrollkästchen "Nur für IDP-initiiertes SSO" und klicken Sie auf "Speichern".

Jetzt wurde die Vertrauensbeziehung zwischen dem Unterkonto des ABC PetroCorp-Kunden und seinem SCI-Mandanten erfolgreich hergestellt. Die gleichen Einstellungen können auf Unterkonten anderer Clients angewendet werden (z. B. für den XYZ EnergyCorp-Client).
Schritt 2: Importieren Sie Benutzer in den SCI-Mandanten und aktualisieren (fügen) Sie die erforderlichen Attribute hinzu
Emily muss sicherstellen, dass Anwendungsbenutzer beim Unternehmens-IDP von ABC PetroCorp registriert sind.
Im Idealfall enthält ein Unternehmens-IDP (in unserem Fall ein SCI-Mandant) bereits eine Liste aller Benutzer im Unternehmen. Aus Gründen der Übersichtlichkeit importieren wir einige Benutzer in den SCI-Mandanten. Anschließend erhalten sie die entsprechenden Berechtigungen für den Zugriff auf die Anwendung.
Demos für die Anwendung werden in einer CSV-Datei auf Github -
auf Github gespeichert.
Laden Sie die "CSV" -Datei für "ABC PetroCorp" von GitHub herunter. In der CSV-Datei sind zwei Benutzer angegeben:
- ABCPlantSupervisor: Dieser Benutzer ist der Manager einer bestimmten ABC PetroCorp-Anlage und kann nur Daten zu seiner Anlage anzeigen.
- ABCAreaManager: Dieser Benutzer ist der Manager eines gesamten Bereichs, der mehrere ABC PetroCorp-Werke umfassen kann. Er kann Daten zu allen Pflanzen in seiner Umgebung anzeigen.

Die CSV-Datei für ABC PetroCorp enthält fiktive Benutzer-E-Mail-Adressen. Sie müssen durch echte ersetzt werden, da dann Briefe an sie kommen, um Konten zu aktivieren. Wenn Ihre echte E-Mail beispielsweise "john.smith@sap.com" lautet, müssen Sie die Bezeichnung <> durch "john.smith" und << Ihr_Unternehmen >> durch "sap" ersetzen.

Gehen Sie zur Administrationskonsole des Identitätsauthentifizierungsdienstes und wählen Sie die Registerkarte "Benutzer & Berechtigungen" -> "Benutzer importieren". Wählen Sie den zuvor erstellten Anwendungspunkt "ABC_PetroCorp_IDP" aus und klicken Sie auf "Durchsuchen". Wählen Sie dann die Datei "ABCPetroCorp.csv" aus, die unsere Demo-Benutzer beschreibt, und klicken Sie auf die Schaltfläche "Importieren".

Benutzer müssen ihr Konto aktivieren. Um eine E-Mail mit einem Aktivierungslink zu erhalten, müssen Sie im Fenster "E-Mails senden" auf "Senden" klicken.
Bevor Sie den Benutzer aktivieren, müssen Sie einige Konfigurationen ändern.
Gehen Sie zur Registerkarte "Benutzer & Berechtigungen" -> "Benutzerverwaltung". In den Benutzerlisten wurden zwei Benutzer angezeigt: "Area Manager" und "Plant Supervisor". Ihnen werden automatisch Kennungen zugewiesen: P000011 und P000010. Diese Kennungen können als Anmeldungen zur Eingabe des Mandanten verwendet werden (und in die Anwendung, wenn alle erforderlichen Einstellungen vorgenommen wurden).

Gehen wir zum Benutzer P000011 oder "Area Manager" und fügen einen Namen hinzu, der auch als Login für die Eingabe verwendet werden kann. Klicken Sie dazu auf das Bearbeitungssymbol im Feld "Persönliche Informationen" und geben Sie den "Anmeldenamen" ein (in unserem Fall ist es Johan).

Klicken Sie dann auf "Speichern".
Machen wir dasselbe mit dem Benutzer P000010 oder dem Plant Supervisor, aber nennen wir ihn Smith.

Der Benutzer des Werksleiters sollte nur Informationen zu seiner Anlage anzeigen können. In dem Abschnitt mit Informationen zur Firma muss dann die Firmenkennung angegeben werden (wie diese Kennung verwendet wird, wird in Schritt 4 erläutert).
Gehen Sie dazu zum Abschnitt "Unternehmensinformationen" und geben Sie die Werkskennung "101" in das Feld "Unternehmen" ein.
Jetzt wurden die Informationen über unsere Benutzer geändert. Um sie zu aktivieren, gehen Sie zu den in der CSV-Datei angegebenen Postfächern und klicken Sie auf den Aktivierungslink oder klicken Sie auf "Klicken Sie hier, um Ihr Konto zu aktivieren".

Daher haben wir Benutzer erfolgreich in den SCI-Mandanten importiert, Informationen über sie aktualisiert und aktiviert.
Schritt 3: Zuweisen von Rollen zu Benutzern auf Anwendungsebene in der SAP Cloud Platform
Die mandantenfähige Pollution Monitoring-Anwendung, die von Robert von ITeLO Consulting erstellt wurde, bietet zwei vordefinierte Rollen, PlantSupervisor und AreaManager, die die Benutzerberechtigung in der Anwendung steuern und bestimmen, was der Endbenutzer sieht.
- PlantSupervisor-Rolle: Benutzer, denen diese Rolle zugewiesen ist, können nur Daten aus dem Werk anzeigen, die in den Unternehmensinformationen im SCI-Mandanten angegeben sind.
- Rolle "AreaManager": Benutzer, denen diese Rolle zugewiesen ist, können Daten von allen Werken in ihrem Gebiet anzeigen.
Mal sehen, wie die Rollentrennung auf Projektcode-Ebene erreicht wird.
Fahren wir mit der Datei web.xml fort, die sich entlang des Pfads / der Überwachung der Umweltverschmutzung befindet
/src/main/webapp/WEB-INF/web.xml ”im Projektordner.
Öffnen Sie die Datei und stellen Sie sicher, dass die beiden oben genannten Rollen in der Anwendung definiert sind.

Gehen wir nun zur Datei "PollutionDataService.java" im Pfad "/pollutionmonitoring/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/PollutionDataService.java" des Projekts und öffnen Sie sie.
Die Methode "getCompanyPollutionData ()" ist in dieser Datei angegeben. Hier können Sie überprüfen, ob der Benutzer ein Administrator (Manager) ist. Wenn ja, zeigt die Anwendung Daten für alle Anlagen an. Wenn nicht, werden die Daten nach der Anlagen-ID (plant_id) gefiltert. Außerdem zeigt die Anwendung nur Informationen für diejenigen Anlagen an, deren Kennungen den in den Benutzerinformationen angegebenen entsprechen.

Der Übersichtlichkeit halber können Sie auf die Methode isUserAdmin () verweisen, mit der Sie anhand der Rolle bestimmen können, ob ein Benutzer ein Administrator (Manager) ist oder nicht.

Ein ähnlicher Algorithmus wird verwendet, um Anlagendaten aus lokalen Systemen zu extrahieren.

Jetzt muss Emily als Mitarbeiterin von ABC PetroCorp Gebietsleiter und Werksleiter identifizieren, indem sie ihnen die entsprechenden Rollen (ABCPlantSupervisor und ABCAreaManager) in der Anwendung in SCP zuweisen.
Wir gehen zum Unterkonto des ABC PetroCorp-Clients und wählen die vom ITeLO Consulting-Anbieter bereitgestellte Java-Anwendung zur Überwachung der Umweltverschmutzung aus (sie befindet sich auf der Registerkarte Anwendungen -> Registerkarte Abonnements).

Wechseln Sie als Nächstes zur Registerkarte „Rollen“ (auf Anwendungsebene).
In dem sich öffnenden Fenster wird eine Liste der in der Anwendung angegebenen Rollen angezeigt. Wählen Sie die Rolle "PlantSupervisor" und klicken Sie auf "Zuweisen". Geben Sie im angezeigten Fenster die Benutzer-ID ein, die im SCI-Mandanten als "ABCPlantSupervisor" angegeben ist. In unserem Fall lautet die Kennung eines solchen Benutzers P000010.
Wählen Sie dann die Rolle "AreaManager" und klicken Sie auf "Zuweisen". Geben Sie im angezeigten Fenster die im SCI-Mandanten als "ABCAreaManager" angegebene Benutzerkennung ein (in unserem Fall lautet die Kennung eines solchen Benutzers P000011).

Daher haben wir die Rollen der Anwendung erfolgreich mit den entsprechenden Benutzern von ABC PetroCorp vom SCI-Mandanten verglichen.
Die gleichen Einstellungen können im Unterkonto eines anderen Kunden angewendet werden (z. B. „XYZ EnergyCorp“).
Schritt 4: Konfigurieren von Attributen in der SCI-Mandanten- und SCP-Systemsteuerung für die Übertragung an die Anwendung
Robert von ITeLO Consulting hat die mandantenfähige Anwendung so programmiert, dass er die PlantSupervisor-Benutzer-ID an die Anlage übergeben muss, damit die Anlagendaten in der Anwendung für diese bestimmte Anlagen-ID herausgefiltert werden können.
In den vorherigen Schritten haben wir dem Benutzer "PlantSupervisor" im SCI-Mandanten im Feld "Unternehmensinformationen" die Anlagenkennung hinzugefügt, die wir nun in die mandantenfähige Anwendung übertragen müssen. Es kann dann in einer Anwendung verwendet werden, um Daten anzuzeigen, die sich auf eine bestimmte Anlage beziehen. Der AreaManager-Benutzer ist im Wesentlichen ein Administrator, der Daten aus allen Werken anzeigen kann.
Mal sehen, wie dies auf der Ebene des Anwendungscodes organisiert ist.
Öffnen Sie die Datei "PollutionDataService.java" im Pfad "/pollutionmonitoring/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/PollutionDataService.java" im Projekt.
Diese Datei beschreibt die Methode getPlantId (). Diese Methode beschreibt das Abrufen des Benutzernamens und das Überprüfen des Attributs „PLANT_ID“, mit dem Verschmutzungsdaten und Anlagendaten gefiltert werden.

Wir können Benutzerattribute vom SCI-Mandanten über die SAML-Assertionsattribute an die Anwendung übertragen. Dies ist erforderlich, damit das Benutzerattribut des SCI-Mandanten, das Unternehmensinformationen enthält, zum Zeitpunkt der Anmeldung des Benutzers von SCP gelesen wird. Das für den Benutzer definierte sogenannte „Assertion Attribute“ (Genehmigungsattribut) muss in die Anwendung zur Überwachung der Umweltverschmutzung übertragen werden.
Erstellen Sie dazu zunächst im SCI-Mandanten ein "Assertion-Attribut" und dann - das Genehmigungsattribut im Hauptattribut ("Principal Attribute") im Unterkonto "ABC PetroCorp", das wie oben gezeigt vom Anwendungscode gelesen werden kann.
Gehen Sie zur Administrationskonsole des Identitätsauthentifizierungsdienstes und wählen Sie die Registerkarte "Anwendungen & Ressourcen" -> "Anwendungen". Wählen Sie die gewünschte Anwendung aus (ABC_PetroCorp_IDP) und klicken Sie auf der Registerkarte "Trust" auf "Assertion Attributes".

Eine Liste der vorhandenen Attribute wird angezeigt. Wir benötigen eine weitere. Klicken Sie dazu auf die Schaltfläche „Hinzufügen“ und wählen Sie das Attribut „Firma“.
Dann fügen wir dem Attributwert "plant_id" (Groß- und Kleinschreibung beachten) hinzu und klicken auf "Speichern".

Gehen Sie nun in SCP zum Unterkonto "ABC PetroCorp" und gehen Sie zur Registerkarte "Sicherheit" -> "Vertrauen". Wechseln Sie im Fenster "Trust Management" zur Registerkarte "Application Identity Provider" und wählen Sie den dem Unterkonto zugeordneten IdP aus.

Wechseln Sie im folgenden Fenster zur Registerkarte "Attribute" und klicken Sie auf "Assertionsbasiertes Attribut hinzufügen". Im Feld "Assertion Attribute" geben wir den Wert "plant_id" ein (wie im SCI-Mandanten) und im Feld "Principal Attribute" geben wir "PLANT_ID" ein (dieser Wert wird als Anlagencode an die Anwendung übertragen) - und klicken auf "Save".
Daher haben wir die Attribute im SCI-Mandanten und in der SCP-Systemsteuerung erfolgreich konfiguriert, um sie an die Anwendung zu übertragen.
Schritt 5: Überprüfen Sie die Einstellungen
Emily kann jetzt überprüfen, ob die Einstellungen für den SCI-Mandanten (IdP) für das Unterkonto "ABC PetroCorp" in SCP und für die vom Anbieter bereitgestellte Anwendung korrekt definiert sind.
Gehen Sie dazu zum Unterkonto "ABC PetroCorp" und wenden Sie sich an die HTML5-Anwendung "Pollutionmonitoringui" (diese befindet sich auf der Registerkarte "Anwendungen" -> "Abonnements").

Kopieren Sie den Link zur Anwendung. Öffnen Sie im Inkognito-Modus eine neue Registerkarte im Browser und fügen Sie einen Link zur HTML5-Anwendung ein. Zur Eingabe der Anwendung wird ein Fenster angezeigt, in dem der im SCI-Mandanten angegebene Name angezeigt wird.
Wenn alles korrekt eingerichtet ist, sollten Sie in der Lage sein, die Anwendung unter den Benutzern von "AreaManager" und "PlantSupervisor" einzugeben, die im SCI-Mandanten angegeben sind.
In unserem Fall ist der Manager der Region Benutzer Johan (P000011) und der Leiter der Anlage ist Smith (P000010). Sie können die Anwendung unter diesen Benutzern eingeben, indem Sie entweder den Benutzernamen oder dessen Kennung als Login verwenden.
Hinweis: Wenn Sie zu diesem Zeitpunkt die Anwendung eingeben, werden keine Daten angezeigt. Dies ist normal, da die Konfiguration noch nicht abgeschlossen ist und das lokale System nicht verbunden ist.
Daher haben wir eine IDP-Verbindung (Identity Provider) mit unserer SCP-Anwendung zur Überwachung der Umweltverschmutzung eingerichtet. Wir haben auch Benutzer importiert und ihnen die richtigen Rollen für den Zugriff auf die Anwendung zugewiesen, um sicherzustellen, dass die richtigen Anlageninformationen an die Anwendung übertragen wurden.