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 Kernplattform, z. B.:
- Bearbeiten eines Felds aus dem Listenbearbeitungsformular
- Aktualisieren eines Datensatzes aus dem Datensatzformular
- Direkten Webservice verwalten
- Daten aus der REST-Anwendungsprogrammschnittstelle (API) verarbeiten
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 den Glide-Tabellenfeldnamen zuzuordnen. Beispiel:
- Geskriptete Prozessoren
- Geskriptete Webservices
- Scripted 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 Anhanganforderungen werden HTTP-Anforderungen vom Proxy-Server Edge Encryption ausgewertet. Der Edge Encryption -Proxy-Server wertet alle Verschlüsselungsregelbedingungen in der Prioritätsreihenfolge aus, bis entweder alle Bedingungen „falsch“ oder eine Bedingung „wahr“ zurückgibt. Wenn eine Bedingung „true“ zurückgibt, wird die Aktion für die Anforderung ausgeführt und das Ergebnis 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 Richtlinie: Wenn Regeln lang werden, versuchen Sie, die Anzahl der Blöcke so gering wie möglich zu halten und die Regeln nach Möglichkeit aufzuschlüsseln. 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 unterschiedliche Regeln für jeden Datensatzersteller, auf den Sie abzielen, oder zumindest für jede Teilmenge von Datensatzerstellern. 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 Sie
if-Blöcke, wann immer es möglich ist, sie zu gruppieren.
- 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 Streamanalyse können Verschlüsselungsregeln netzwerkleistungsfähig sein. Das mehrmalige Abrufen und Analysieren von Inhalten aus dem Körper kann jedoch zu unerwarteten Ergebnissen führen. Um dieses potenzielle Problem zu vermeiden, sollten Anforderungen von der Aktion in einem einzigen Schritt verarbeitet werden.
Beim Erstellen von Verschlüsselungsregeln können Sie keine Glide-APIs, Skripteinbindungen, Business Rules oder globale Parameter wie currentverwenden. 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-Listen-Manager 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.