Ältere Plattform

Mashup-Sicherheit

Die API-Sicherheit ist für Sterling Store Engagementinaktiviert. Stattdessen wird eine ähnliche Funktion in der Mashup-Ebene implementiert.

Die Steuerung des Zugriffs von API-Aufrufen über den Client ist für eine Webanwendung unerlässlich. In Sterling Store Engagementwird die API-Sicherheit nicht direkt implementiert. Stattdessen wird der API-Zugriff auf Mashup-Ebene eingeschränkt. Im aktuellen Framework wird der folgende Prozess für API-Aufrufe von Clients verfügbar gemacht:
  • Jeder Mashup-Aufruf (API-Aufruf) erfolgt über eine URLdes Controllers (Initialisierung oder Verhalten).
  • Alle Controller-URLs durchlaufen eine allgemeine Struts-Aktion.
  • Als Teil der Eingabe für Controller-URLs werden alle Mashup-Eingaben gesendet.
  • Die Back-End-Controller-Implementierung verwendet alle Eingaben und ruft die entsprechenden Mashups in der Eingabe auf.
Da die API-Sicherheit für die Anwendung inaktiviert ist, werden API-Aufrufe wie folgt gesichert:
  • Jeder Mashup-Aufruf wird überprüft, um sicherzustellen, dass der aktuelle Benutzer über die erforderliche Berechtigung zum Aufrufen des Mashups verfügt.
  • Jede Mashup-Eingabe wird anhand der Eingabevorlage überprüft, die in der Mashup-Definition definiert ist, sodass unerwünschte Eingaben, die Sicherheitslücken verursachen können, nicht vom Kunden übergeben werden.
  • Die Ausgabe eines API-Aufrufs wird durch die Ausgabevorlage in der Mashup-Definition gesteuert, die vom Kunden nicht bearbeitet werden kann.
Um Sterling Store Engagement sicher zu machen, wird die Mashup-Sicherheitsfunktion implementiert:
  • Allen Mashup-Definitionen sind mehrere AternateResourceIdzugeordnet, die die Ressourcen definieren, die zum Aufrufen des aktuellen Mashups berechtigt sind.
    • Ein einzelnes Mashup kann von mehreren Anzeigen oder Modulen aufgerufen werden. Daher sind diesen Mashups mehrere AlternateResourceIdzugeordnet.
    • WSCSYS00001Allgemeine Mashups oder Datenanbieter-Mashups sind mit der Anwendung ResourceId verknüpft, für die allen Benutzern die Berechtigung erteilt wird.
  • Die Eingabevorlage für jeden API-Aufruf in der Mashup-Definition ist restriktiv und so gesteuert, dass nur die Attribute zugelassen werden, die als Eingabe an den aktuellen Mashup-Aufruf übergeben werden können.
    • Ein Szenario, in dem dasselbe Mashup von verschiedenen Anzeigen oder Modulen aufgerufen wird, die von der Berechtigung abhängig sind, muss mithilfe eines angepassten Mashups sorgfältig behandelt werden, um nur bestimmte Eingaben für ein bestimmtes Szenario zuzulassen, wenn der Benutzer nicht über die Berechtigung zum Anzeigen bestimmter Daten verfügt. Beispiel: Das Mashup, das in der Anzeige Produkte hinzufügen aufgerufen wird, um Produkte hinzuzufügen, wird auch zum Überschreiben des Preises aufgerufen. Die Überschreibungspreisfunktion ist jedoch berechtigungsgesteuert. Daher sollte ein angepasstes Mashup im Backend für dieses Szenario vorhanden sein, und diese Back-End-Klasse sollte prüfen, ob der Benutzer über die Berechtigung zum Überschreiben des Preises verfügt, und dann nur Attribute zum Überschreiben des Preises im API-Aufruf changeOrder zulassen.
Die Plattformklasse SCUIXAPIActionUtils (Methode validateMashupInput) ist für die Validierung der Eingabevorlage für Mashup-Aufrufe zuständig:
  • Die Eingabevorlage in der Mashup-Definition sollte mit der Vorlage übereinstimmen, die von der Mashup-Ebene an den API-Aufruf übergeben wird, einschließlich aller allgemeinen Attribute, die in der Mashup-Ebene hinzugefügt wurden.
  • Die Mashup-Sicherheitsfunktion zum Validieren von Eingaben verfügt über die folgenden Modi:
    • FEHLER (Standardwert): Jeder Verstoß wird als Fehler angezeigt.
    • DEBUG: Jeder Verstoß wird als Fehler in den Protokollen protokolliert, aber der Mashup-Aufruf läuft ab.
    • NONE: Für API-Aufrufe von Mashup-Ebene erfolgt keine Eingabevalidierung.
Der Kontextparameter scui-xapi-mashup-security-mode kann auf einen der Modi gesetzt werden. Der Standardmodus ist ERROR.

Die Plattform-Mashup-Helper-Klassen sind für die Autorisierung von Mashup-Aufrufen für die AlternateResourceId(s) verantwortlich, die in der Mashup-Definition definiert sind. Wenn einer der in der Mashup-Definition definierten resourceIds über Berechtigungen zum Aufrufen dieses Mashups verfügt, wird der Mashup-Aufruf ausgeführt.