<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Wenn Sie API-Aufrufe in Edge debuggen, können die Inhalte manchmal sensible Daten enthalten, z. B. Kreditkarten oder personenidentifizierbare Informationen, die verborgen werden müssen
Edge bietet verschiedene Möglichkeiten zum Ausblenden oder Maskieren sensibler Daten vor Trace und Fehlerbehebungssitzungen
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 der API) festgelegt werden Proxy-Level).
Wenn Daten maskiert werden, werden sie in der Trace-Ausgabe durch Sternchen ersetzt. Beispiel:
<description>**********</description>
Maskenkonfigurationen verwenden
Maske Konfigurationen ermöglichen es Ihnen, sensible Daten in diesen Quellen zu identifizieren: <ph type="x-smartling-placeholder">- </ph>
- 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 Grundstruktur einer Maskenkonfiguration wird durch die folgende XML-Darstellung veranschaulicht:
<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>
Maske konfigurieren Konfigurationsressource
Definieren Sie mit den folgenden Elementen eine Maskenkonfiguration.
Feldname | Beschreibung | Standard | Erforderlich? |
---|---|---|---|
XPathsRequest | Eine Liste von XPath-Ausdrücken, die anhand von XML-Nutzlasten (falls vorhanden) in der Anfragepfad. Alle XPaths, die erfolgreich aufgelöst werden, führen zum Wert der XML-Datei -Element, das maskiert wird. | – | Nein |
XPathsResponse | Eine Liste von XPath-Ausdrücken, die anhand von XML-Nutzlasten (falls vorhanden) in der Antwortpfad. Alle XPaths, die erfolgreich aufgelöst werden, führen zum Wert der XML-Datei -Element, das maskiert wird. | – | Nein |
JSONPathsRequest | Eine Liste von JSONPath-Ausdrücken, die anhand von JSON-Nutzlasten (falls vorhanden) in den Anfragepfad. Alle JSONPaths, die erfolgreich aufgelöst werden, führen zum Wert des JSON-Attribut, das maskiert wird. | – | Nein |
JSONPathsResponse | Eine Liste von JSONPath-Ausdrücken, die anhand von JSON-Nutzlasten (falls vorhanden) in den Antwortpfad. Alle JSONPaths, die erfolgreich aufgelöst werden, führen zum Wert des JSON-Attribut, das maskiert wird. | – | Nein |
XPathsFault | Eine Liste von XPath-Ausdrücken, die anhand von XML-Nutzlasten (falls vorhanden) in der Fehlerfluss (wird ausgeführt, wenn an irgendeinem Punkt im Ablauf ein Fehler ausgegeben wird). Alle XPaths, die erfolgreich aufgelöst wird, führt 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 (wird ausgeführt, wenn an irgendeinem Punkt im Ablauf ein Fehler ausgegeben wird). Alle JSONPaths die erfolgreich aufgelöst werden, wird der Wert der JSON-Eigenschaft maskiert. | – | Nein |
Variablen |
Eine Liste von Variablen (vordefiniert oder benutzerdefiniert), deren Werte maskiert werden. Für eine Eine Liste der Standardvariablen finden Sie unter Variablenreferenz. |
– | Nein |
Mask Configuration API
Maskenkonfigurationen sind als XML- oder JSON-formatierte Dateien definiert, die Sie hoch- und herunterladen mithilfe der RESTful-Verwaltungs-API. Eine vollständige Liste der APIs zur Datenmaskierung finden Sie unter Datenmasken.
Wenn Sie vorhandene Maskenkonfigurationen ansehen möchten, können Sie einfach die API-Ressource aufrufen
/maskconfigs
in Ihrer Organisation:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
Dieses Beispiel zeigt die grundlegende Syntax. zur Authentifizierung. Möglicherweise kannst du auch andere Authentifizierungsmethoden verwenden, z. B. Oauth2 oder SAML:
Um die für bestimmte API-Proxys definierten Maskenkonfigurationen anzuzeigen, können Sie die Methode
/maskconfigs
-API:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
Geben Sie den Namen der Maske an, um eine bestimmte Maskenkonfiguration aufzurufen:
$ 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 Maske definiert Konfiguration:
$ 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. zur Authentifizierung. Möglicherweise kannst du auch andere Authentifizierungsmethoden verwenden, z. B. Oauth2 oder SAML:
Die Antwort auf einen DELETE-Vorgang ist ein HTTP-Code 204
ohne Nachricht
Inhalte.
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>