Enmascaramiento y ocultamiento de datos

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Cuando depuras llamadas a las APIs en Edge, a veces, el contenido puede incluir datos sensibles, como tarjetas de crédito o información de salud de identificación personal (PHI) que se debe enmascarar.

Edge ofrece diferentes formas de ocultar o enmascarar datos sensibles Sesiones de Trace y depuración

Oculta datos sensibles

Para evitar que los datos sensibles aparezcan en la herramienta de seguimiento y en las sesiones de depuración, crea variables personalizadas con el prefijo “private.”.

Por ejemplo, cuando uses la política de operaciones de mapa de valor clave para recuperar valores de un mapa de clave-valor encriptado, formatea los nombres de las variables de la siguiente manera a fin de garantizar que los valores no aparezcan en las sesiones de Trace o de depuración:

<Get assignTo="private.hiddenData">

Ocultar variables sensibles es una alternativa al uso del enmascaramiento de datos, que se describe a continuación. La diferencia entre ocultar y enmascarar es que las variables ocultas no aparecen en absoluto y los valores enmascarados se reemplazan por asteriscos en sesiones de seguimiento y depuración.

Las variables sin el prefijo “private.” se muestran en texto claro en las sesiones de Trace y Debug, incluso si los datos provienen de un almacén de datos encriptado, como un mapa de clave-valor encriptado. Usa el enmascaramiento (a continuación) si deseas enmascarar estos valores.

Enmascara datos sensibles

Edge permite definir “configuraciones de enmascaramiento” para enmascarar datos específicos en sesiones de seguimiento y depuración. Los parámetros de configuración de enmascaramiento se pueden establecer de forma global (a nivel de la organización) o localmente (a la API) a nivel del proxy).

Cuando se enmascaran los datos, se reemplazan por asteriscos en el seguimiento de resultados. Por ejemplo:

<description>**********</description>

Cómo usar la configuración de máscaras

Mascarilla te permiten identificar datos sensibles en estas fuentes:
  • Cargas útiles XML: con XPath, puedes identificar elementos XML para filtrar de cargas útiles de solicitud o respuesta.
  • Cargas útiles JSON: con JSONPath, puedes identificar las propiedades JSON que se filtrarán de las cargas útiles de mensajes de respuesta o solicitud.
  • Variables de flujo: Puedes especificar una lista de variables que se deben enmascarar en el resultado de la depuración. Cuando especificas las variables de flujo request.content, response.content o message.content, el cuerpo de la solicitud o respuesta también se enmascara.

La estructura básica de la configuración de una máscara se muestra mediante la siguiente representación XML:

<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>

Configura una máscara recurso de configuración

Define la configuración de una máscara con los siguientes elementos.

Nombre del campo Descripción Predeterminada ¿Obligatorio?
XPathsRequest Una lista de expresiones XPath que se evaluarán según las cargas útiles de XML (si las hay) en la ruta de acceso de la solicitud. Cualquier XPath que se resuelva correctamente generará el valor del archivo XML. elemento enmascarado. N/A No
XPathsResponse Una lista de expresiones XPath que se evaluarán según las cargas útiles de XML (si las hay) en la ruta de respuesta correcta. Cualquier XPath que se resuelva correctamente generará el valor del archivo XML. elemento enmascarado. N/A No
JSONPathsRequest Una lista de expresiones JSONPath que se evaluarán según las cargas útiles de JSON (si las hay) en la ruta de la solicitud. Cualquier JSONPath que se resuelva correctamente dará como resultado el valor del Propiedad JSON enmascarada. N/A No
JSONPathsResponse Una lista de expresiones JSONPath que se evaluarán según las cargas útiles de JSON (si las hay) en la ruta de respuesta. Cualquier JSONPath que se resuelva correctamente dará como resultado el valor del Propiedad JSON enmascarada. N/A No
XPathsFault Una lista de expresiones XPath que se evaluarán según las cargas útiles de XML (si las hay) en la flujo de errores (que se ejecuta si se produce una falla en algún punto del flujo). Cualquier XPath que resolverse correctamente hará que se enmascara el valor del elemento XML. N/A No
JSONPathsFault Una lista de expresiones JSON que se evaluarán según las cargas útiles de JSON (si las hay) en la flujo de errores (que se ejecuta si se produce una falla en algún punto del flujo). Cualquier JSONPath que se resuelven correctamente, se enmascarará el valor de la propiedad JSON. N/A No
Variables

Es una lista de variables (predefinidas o personalizadas) cuyos valores se enmascararán. Para un de variables predeterminadas, consulta la referencia de variables.

N/A No

API de configuración de máscara

Los parámetros de configuración de máscaras se definen como archivos con formato XML o JSON que subes y descargas. con la API de administración RESTful. Para obtener una lista completa de las APIs de enmascaramiento de datos, consulta Máscaras de datos.

Para ver los parámetros de configuración de máscaras existentes, puedes simplemente llamar al recurso de la API /maskconfigs en tu organización:

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \
-u email

En este ejemplo, se muestra la sintaxis básica. para la autenticación. Es posible que puedas usar otros tipos de autenticación, como Oauth2 o SAML.

Para ver los parámetros de configuración de enmascaramiento definidos para proxies de API específicos, puedes llamar al API de /maskconfigs:

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \
-u email

Para ver una configuración específica de máscara, especifica su nombre:

$ 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

Para crear una configuración de máscara, usa el verbo POST para enviar una carga útil que defina la máscara. actual:

$ 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
Para crear una configuración de máscara con alcance para un proxy de API específico, haz lo siguiente:
$ 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

Puedes borrar la configuración de una máscara con el verbo DELETE:

$ curl -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \
-u email

En este ejemplo, se muestra la sintaxis básica. para la autenticación. Es posible que puedas usar otros tipos de autenticación, como Oauth2 o SAML.

La respuesta a una operación DELETE es un código HTTP 204 sin mensaje. contenido.

Enmascara espacios de nombres XML

Una configuración de máscara no requiere el elemento <Namespace> en una definición XPATH, a menos que un espacio de nombres se defina en la carga útil XML. Esto también se aplica si la carga útil de XML usa un espacio de nombres predeterminado.

Por ejemplo, la carga útil de XML no define un espacio de nombres:

<employee>
    <name>abc</name>
    <age>50</age>
</employee>

Por lo tanto, la configuración de la máscara no requiere el elemento <Namespace>:

<MaskDataConfiguration>
    <XPathsRequest>
        <XPathRequest>/employee/name</XPathRequest>
    <XPathsRequest>
</MaskDataConfiguration>

Si la carga útil de XML contiene un espacio de nombres y un prefijo, haz lo siguiente:

<myco:employee xmlns:myco="http://example.com">
    <myco:name>xyz</myco:name>
    <myco:age>50</myco:age>
</myco:employee>

Luego, la definición de la configuración de la máscara debe contener el elemento <Namespace>:

<MaskDataConfiguration>
    <Namespaces>
        <Namespace prefix="myco">http://example.com</Namespace>
    </Namespaces>
    <XPathsRequest>
        <XPathRequest>/myco:employee/myco:name</XPathRequest>
    <XPathsRequest>
</MaskDataConfiguration>

Si la carga útil XML tiene un espacio de nombres, pero no un prefijo, es decir, el espacio de nombres predeterminado:

<employee xmlns="http://example.com">
    <name>xyz</name>
    <age>50</age>
</employee>

Luego, la configuración de la máscara debe contener el elemento <Namespace>:

<MaskDataConfiguration>
    <Namespaces>
        <Namespace prefix="myco">http://example.com</Namespace>
    </Namespaces>
    <XPathsRequest>
        <XPathRequest>/myco:employee/myco:name</XPathRequest>
    <XPathsRequest>
</MaskDataConfiguration>