Eine benutzerdefinierte Verschlüsselungsregel definieren
Es kann notwendig sein, sensible Informationen in HTTP-Anforderungen auf dem Weg zu Ihrer Instanz zu identifizieren und zu verschlüsseln. Sie können Verschlüsselungsregeln schreiben, um Daten in solchen Anforderungen zu identifizieren, zu interpretieren und zu verschlüsseln, und Felder in der Anforderung zu Tabellenfeldnamen in Ihrer Instanz zuordnen.
Was ist eine Verschlüsselungsregel?
Wann werden benutzerdefinierte Regeln verwendet?
Ein Satz von Verschlüsselungsregeln ist im Edge Encryption Plugin enthalten. Diese Regeln behandeln viele Anwendungsfälle der Core-Plattform, z. B.:
- Bearbeiten eines Felds über das Listenbearbeitungsformular
- Aktualisieren eines Datensatzes aus dem Datensatzformular
- Direkter Webservice verwalten
- Daten aus der REST Application Program Interface (API) werden verarbeitet
Anwendungen, die mit Standardformularen und -listen erstellt wurden, sollten ohne benutzerdefinierte Verschlüsselungsregeln funktionieren.
Wenn Sie Skripts entwickeln, die Daten enthalten, die verschlüsselt werden sollen, erstellen Sie Verschlüsselungsregeln, um diese Daten zu finden und Glide-Tabellenfeldnamen zuzuordnen. Zum Beispiel:
- Geskriptete Prozessoren
- Geskriptete Webservices
- Geskriptete REST-APIs, UIs oder Ajax-Skripts
Format einer Verschlüsselungsregel
- Bedingung: Gibt die Art der Anforderung an.
- Aktion: Ordnet Felder in der Anforderung Feldern in einer Tabelle zu und verschlüsselt Werte, die Feldern mit definierten Verschlüsselungskonfigurationen zugeordnet sind.
- Reihenfolge: Priorität der Regel. Die Regel mit der niedrigsten Priorität mit einer erfüllten Bedingung ist die einzige ausgeführte Regel. Wie Business Rules laufen die Regeln vom niedrigsten zum höchsten.
Mit Ausnahme von Anhangsanforderungen werden HTTP-Anforderungen von ausgewertet Edge Encryption Proxy-Server. Die Edge Encryption Der Proxy-Server wertet alle Verschlüsselungsregelbedingungen in Prioritätsreihenfolge aus, bis entweder alle Bedingungen „falsch“ oder eine Bedingung „wahr“ zurückgibt. Wenn eine Bedingung „wahr“ zurückgibt, wird die Aktion für die Anforderung ausgeführt, und das Ergebnis wird an die Instanz weitergeleitet. Andere Bedingungen werden nicht bewertet. Daher sollten die Bedingungen für die Verschlüsselungsregeln so genau wie möglich sein. Eine generische Regel kann für eine Anforderung, die von einer anderen Regel verarbeitet werden soll, als „Wahr“ bewertet werden, was dazu führt, dass die Anforderung durch die falsche Aktion verarbeitet wird. Wenn eine generische Bedingung unvermeidbar ist, sollte die Regel mit einem Wert höherer Ordnung markiert werden, damit spezifischere Regeln zuerst ausgewertet werden.
Richtlinien zum Erstellen von Verschlüsselungsregeln
Durch das Erstellen effizienter, optimierter Verschlüsselungsregeln kann die Verarbeitungszeit für die Skriptvalidierung reduziert werden.
Allgemeine Leitlinie : Wenn Regeln lang werden, versuchen Sie, die Anzahl der Blöcke zu minimieren und die Regeln nach Möglichkeit auseinanderzubrechen. Im Idealfall sollten benutzerdefinierte Regeln für bestimmte Anwendungsfälle gelten, anstatt mehrere Fälle zu umfassen, mit den Anweisungen Falls oder „Switch“ im Aktionsskript.
- Teilen Sie die Regeln, wann immer möglich. Beispiel:
- Erstellen Sie unterschiedliche Regeln für verschiedene Tabellen und stellen Sie sicher, dass jede Regel nur für die jeweilige Tabelle ausgeführt wird.
- Erstellen Sie verschiedene Regeln für jeden Datensatzersteller, den Sie anvisieren, oder zumindest für jede Teilmenge der Datensatzersteller. Anstelle einer Regel, die auf Dutzende von
sys_idsabzielt, können Sie mehrere verschiedene Regeln erstellen, die auf kleinere Teilmengen von Datensatzerstellern abzielen, oder sogar eine Regel prosys_iderstellen.Hinweis:Das Erstellen mehrerer Regeln erfordert mehr Wartung. Der Nachteil ist, dass mehrere, einfachere Regeln effizienter validiert werden können als längere, komplexere Regeln.
- Minimieren Sie die Anzahl der Blöcke. Da das Verarbeitungsmodul jeden Block während der Auswertung von Skripts durchsucht, führt eine große Anzahl von Blöcken zu Verzögerungen bei der Validierung. Beispiel:
- Ersetzen Sie alle
Falls-Blöcke durch ein Array-Lookup, und ersetzen Sie alle Blöcke im Array-Lookup durch nur einenFalls-Block. - Kombinieren
WennSperrt, wann immer sie gruppiert werden können.
- Ersetzen Sie alle
Verschlüsselungsregel-APIs
Verschlüsselungsregeln werden in JavaScript geschrieben und verwenden Edge Encryption APIs zum Auffinden und Verschlüsseln sensibler Informationen im Hauptteil einer Anforderung. Die API verwendet ähnliche Ausdrücke wie xPath, um durch JSON- und XML-Inhalte zu navigieren.
Edge Encryption APIs verarbeiten die Anforderung aus dem Stream, während sie in den Ausgabestream geschrieben wird. Durch die Stream-Analyse können Verschlüsselungsregeln netzwerkfähig sein. Das mehrmalige Abrufen und Analysieren von Inhalten aus dem Körper kann jedoch zu unerwarteten Ergebnissen führen. Um dieses potenzielle Problem aufzuheben, sollten Anforderungen von der Aktion in einem einzigen Durchgang verarbeitet werden.
Beim Erstellen von Verschlüsselungsregeln können Sie keine Glide-APIs, Skripteinbindungen, Geschäftsregeln oder globale Parameter wie verwenden Aktuell . Da die Regeln für HTTP-Objekte erstellt werden, ist ein globales Objekt Anforderung verfügbar.
Beim Erstellen von Verschlüsselungsregeln können Sie keine APIs aus dem Allow-Listenmanager oder bereichsbezogene Anwendungen verwenden.
Fehlerbehandlung
Wenn eine Bedingung oder Aktion einer Verschlüsselungsregel eine Ausnahmebedingung auslöst, überprüfen Sie das Proxy-Protokoll auf Informationen zur Problembehandlung.