Sie sehen die Apigee Edge-Dokumentation.
Rufen Sie die Apigee X-Dokumentation auf. weitere Informationen
Wenn Sie Fehler in API-Aufrufen in Edge beheben, können die Inhalte manchmal sensible Daten wie Kreditkarten oder personenidentifizierbare Gesundheitsinformationen (Personally Identifiable Health Information, PHI) enthalten, die maskiert werden müssen.
Edge bietet verschiedene Möglichkeiten zum Ausblenden oder Maskieren sensibler Daten aus Trace und Debug-Sitzungen.
Sensible Daten ausblenden
Sie können verhindern, dass vertrauliche Daten im Trace-Tool und in Debug-Sitzungen angezeigt werden, indem Sie benutzerdefinierte Variablen mit dem Präfix private.
erstellen.
Wenn Sie beispielsweise die Richtlinie für Schlüsselwertzuordnungsvorgänge zum Abrufen von Werten aus einer verschlüsselten Schlüsselwertzuordnung verwenden, formatieren Sie die Variablennamen so, um sicherzustellen, dass die Werte nicht in Trace- oder Debug-Sitzungen angezeigt werden:
<Get assignTo="private.hiddenData">
Das Ausblenden vertraulicher Variablen ist eine Alternative zur Datenmaskierung, die im Folgenden beschrieben wird. Der Unterschied zwischen Ausblenden und Maskieren besteht darin, dass ausgeblendete Variablen überhaupt nicht angezeigt werden und maskierte Werte in Trace- und Debug-Sitzungen durch Sternchen ersetzt werden.
Variablen ohne das Präfix "private.
" werden in Trace und in Debug-Sitzungen als Klartext angezeigt, auch wenn die Daten aus einem verschlüsselten Datenspeicher wie einer verschlüsselten Schlüssel/Wert-Zuordnung stammen. Verwenden Sie die Maskierung (siehe unten), wenn Sie diese Werte maskieren möchten.
Vertrauliche Daten maskieren
Mit Edge können Sie „Maskenkonfigurationen“ definieren, um bestimmte Daten in Trace- und Debug-Sitzungen zu maskieren. Maskierungskonfigurationen können global (auf Organisationsebene) oder lokal (auf API-Proxyebene) festgelegt werden.
Wenn Daten maskiert werden, werden sie in der Trace-Ausgabe durch Sternchen ersetzt. Beispiel:
<description>**********</description>
Maskenkonfigurationen verwenden
Mit Maskenkonfigurationen können Sie sensible Daten in diesen Quellen identifizieren:- XML-Nutzlasten: Mit XPath identifizieren Sie XML-Elemente, die aus den Nutzlasten der Anfrage- oder Antwortnachricht gefiltert werden sollen.
- JSON-Nutzlasten: Mit JSONPath identifizieren Sie JSON-Attribute, die aus der Nutzlast von Anfrage- oder Antwortnachrichten gefiltert werden sollen.
- Flussvariablen: Sie können eine Liste von Variablen angeben, die in der Debug-Ausgabe maskiert werden sollen. Wenn Sie die Flussvariablen
request.content
,response.content
odermessage.content
angeben, wird der Anfrage-/Antworttext ebenfalls maskiert.
Die grundlegende Struktur einer Maskenkonfiguration wird in der folgenden XML-Darstellung dargestellt:
<MaskDataConfiguration name="default"> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:Greeting/myco:User</XPathRequest> </XPathsRequest> <XPathsResponse> <XPathResponse>/myco:Greeting/myco:User</XPathResponse> </XPathsResponse> <JSONPathsRequest> <JSONPathRequest>$.store.book[*].author</JSONPathRequest> </JSONPathsRequest> <JSONPathsResponse> <JSONPathResponse>$.store.book[*].author</JSONPathResponse> </JSONPathsResponse> <XPathsFault> <XPathFault>/myco:Greeting/myco:User</XPathFault> </XPathsFault> <JSONPathsFault> <JSONPathFault>$.store.book[*].author</JSONPathFault> </JSONPathsFault> <Variables> <Variable>request.header.user-agent</Variable> <Variable>request.formparam.password</Variable> </Variables> </MaskDataConfiguration>
Maskenkonfigurationsressource konfigurieren
Definieren Sie eine Maskenkonfiguration mit den folgenden Elementen.
Feldname | Beschreibung | Standard | Erforderlich? |
---|---|---|---|
XPaths-Anfrage | Eine Liste von XPath-Ausdrücken, die anhand von XML-Nutzlasten (falls vorhanden) im Anfragepfad ausgewertet werden. Alle XPaths, die erfolgreich aufgelöst werden, führen dazu, dass der Wert des XML-Elements maskiert wird. | – | Nein |
XPaths-Antwort | Eine Liste von XPath-Ausdrücken, die anhand von XML-Nutzlasten (falls vorhanden) im Antwortpfad ausgewertet werden. Alle XPaths, die erfolgreich aufgelöst werden, führen dazu, dass der Wert des XML-Elements maskiert wird. | – | Nein |
JSONPaths-Anfrage | Eine Liste von JSONPath-Ausdrücken, die anhand von JSON-Nutzlasten (falls vorhanden) im Anfragepfad ausgewertet werden. Alle JSONPaths, die erfolgreich aufgelöst werden, führen dazu, dass der Wert des JSON-Attributs maskiert wird. | – | Nein |
JSONPathsAntwort | Eine Liste von JSONPath-Ausdrücken, die anhand von JSON-Nutzlasten (falls vorhanden) im Antwortpfad ausgewertet werden. Alle JSONPaths, die erfolgreich aufgelöst werden, führen dazu, dass der Wert des JSON-Attributs maskiert wird. | – | Nein |
XPathsFault | Eine Liste von XPath-Ausdrücken, die anhand von XML-Nutzlasten (falls vorhanden) im Fehlerfluss ausgewertet werden (die ausgeführt wird, wenn an einem beliebigen Punkt im Ablauf ein Fehler ausgegeben wird). Alle XPaths, die erfolgreich aufgelöst werden, führen dazu, dass der Wert des XML-Elements maskiert wird. | – | Nein |
JSONPathsFault | Eine Liste von JSON-Ausdrücken, die anhand von JSON-Nutzlasten (falls vorhanden) im Fehlerfluss ausgewertet werden (die ausgeführt wird, wenn an einem beliebigen Punkt im Ablauf ein Fehler ausgegeben wird). Alle JSONPaths, die erfolgreich aufgelöst werden, führen dazu, dass der Wert des JSON-Attributs maskiert wird. | – | Nein |
Variablen |
Eine Liste von vordefinierten oder benutzerdefinierten Variablen, deren Werte maskiert werden. Eine Liste der Standardvariablen finden Sie unter Variablenreferenz. |
– | Nein |
Mask Configuration API
Maskenkonfigurationen sind als Dateien im XML- oder JSON-Format definiert, die Sie über die RESTful Management API hoch- und herunterladen. Eine vollständige Liste der Datenmaskierungs-APIs finden Sie unter Datenmasken.
Wenn Sie vorhandene Maskenkonfigurationen sehen möchten, können Sie einfach die API-Ressource /maskconfigs
in Ihrer Organisation aufrufen:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
Dieses Beispiel zeigt die grundlegende Syntax für die Authentifizierung. Möglicherweise können Sie auch andere Arten der Authentifizierung verwenden, z. B. Oauth2 oder SAML.
Sie können die /maskconfigs
API aufrufen, um die für bestimmte API-Proxys definierten Maskenkonfigurationen anzusehen:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
Wenn Sie eine bestimmte Maskenkonfiguration aufrufen möchten, geben Sie den Namen der Maske an:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs/default \ -u email
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/default \ -u email
Verwenden Sie zum Erstellen einer Maskenkonfiguration das POST-Verb, um eine Nutzlast zu senden, die die Maskenkonfiguration definiert:
$ curl -H "Content-type:text/xml" -X POST -d \ '<MaskDataConfiguration name="default"> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:Greeting/myco:User</XPathRequest> </XPathsRequest> <XPathsResponse> <XPathResponse>/myco:Greeting/myco:User</XPathResponse> </XPathsResponse> <JSONPathsRequest> <JSONPathRequest>$.store.book[*].author</JSONPathRequest> </JSONPathsRequest> <JSONPathsResponse> <JSONPathResponse>$.store.book[*].author</JSONPathResponse> </JSONPathsResponse> <XPathsFault> <XPathFault>/myco:Greeting/myco:User</XPathFault> </XPathsFault> <JSONPathsFault> <JSONPathFault>$.store.book[*].author</JSONPathFault> </JSONPathsFault> <Variables> <Variable>request.header.user-agent</Variable> <Variable>request.formparam.password</Variable> </Variables> </MaskDataConfiguration>' \ https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u emailSo erstellen Sie eine Maskenkonfiguration für einen bestimmten API-Proxy:
$ curl -H "Content-type:text/xml" -X POST -d \ '<MaskDataConfiguration name="default"> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:Greeting/myco:User</XPathRequest> </XPathsRequest> <XPathsResponse> <XPathResponse>/myco:Greeting/myco:User</XPathResponse> </XPathsResponse> <JSONPathsRequest> <JSONPathRequest>$.store.book[*].author</JSONPathRequest> </JSONPathsRequest> <JSONPathsResponse> <JSONPathResponse>$.store.book[*].author</JSONPathResponse> </JSONPathsResponse> <XPathsFault> <XPathFault>/myco:Greeting/myco:User</XPathFault> </XPathsFault> <JSONPathsFault> <JSONPathFault>$.store.book[*].author</JSONPathFault> </JSONPathsFault> <Variables> <Variable>request.header.user-agent</Variable> <Variable>request.formparam.password</Variable> </Variables> </MaskDataConfiguration>' \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
Sie können eine Maskenkonfiguration mit dem DELETE-Verb löschen:
$ curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \ -u email
Dieses Beispiel zeigt die grundlegende Syntax für die Authentifizierung. Möglicherweise können Sie auch andere Arten der Authentifizierung verwenden, z. B. Oauth2 oder SAML.
Die Antwort auf einen DELETE-Vorgang ist ein HTTP-Code 204
ohne Nachrichteninhalt.
Maskierung für XML-Namespaces
Eine Maskenkonfiguration erfordert das Element <Namespace>
in einer XPATH-Definition nur, wenn in der XML-Nutzlast ein Namespace definiert ist. Dies gilt auch, wenn für die XML-Nutzlast ein Standard-Namespace verwendet wird.
Die XML-Nutzlast definiert beispielsweise keinen Namespace:
<employee> <name>abc</name> <age>50</age> </employee>
Daher erfordert die Maskenkonfiguration das Element <Namespace>
nicht:
<MaskDataConfiguration> <XPathsRequest> <XPathRequest>/employee/name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Wenn die XML-Nutzlast einen Namespace und ein Präfix enthält:
<myco:employee xmlns:myco="http://example.com"> <myco:name>xyz</myco:name> <myco:age>50</myco:age> </myco:employee>
Dann sollte die Definition der Maskenkonfiguration das Element <Namespace>
enthalten:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Hat die XML-Nutzlast einen Namespace, aber kein Präfix, gilt der Standard-Namespace:
<employee xmlns="http://example.com"> <name>xyz</name> <age>50</age> </employee>
Dann sollte die Maskenkonfiguration noch das Element <Namespace>
enthalten:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>