Datenmaskierung und -ausblendung

<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 oder message.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 email
So 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>