Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Cuando depuras llamadas a la API en Edge, el contenido a veces puede incluir datos sensibles, como tarjetas de crédito o información de salud personal (PHI) que debe enmascararse.
Edge proporciona diferentes formas de ocultar o enmascarar datos sensibles de Trace y sesiones de 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 simple 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 te permite definir “configuraciones de máscaras” para enmascarar datos específicos en sesiones de seguimiento y depuración. Las configuraciones de enmascaramiento se pueden establecer de forma global (a nivel de la organización) o local (a nivel del proxy de API ).
Cuando se enmascaran los datos, se reemplazan por asteriscos en el seguimiento de resultados. Por ejemplo:
<description>**********</description>
Usa las opciones de configuración de máscaras
Las configuraciones de máscaras 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, omessage.content, el cuerpo de la solicitud o respuesta también se enmascara.
La estructura básica de una configuración de máscara se muestra en 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 un recurso de configuración de máscara
Define una configuración de máscara con los siguientes elementos.
| Nombre del campo | Descripción | Predeterminado | ¿Obligatorio? |
|---|---|---|---|
| XPathsRequest | Una lista de expresiones XPath que se evaluarán en relación con las cargas útiles XML (si las hay) en la ruta de acceso de la solicitud. Cualquier XPath que se resuelva correctamente hará que se enmascare el valor del elemento XML. | N/A | No |
| XPathsResponse | Una lista de expresiones XPath que se evaluarán en relación con las cargas útiles XML (si las hay) en la ruta de acceso de la respuesta. Cualquier XPath que se resuelva correctamente hará que se enmascare el valor del elemento XML. | N/A | No |
| JSONPathsRequest | Una lista de expresiones JSONPath que se evaluarán en relación con las cargas útiles JSON (si las hay) en la ruta de acceso de la solicitud. Cualquier JSONPath que se resuelva correctamente hará que se enmascare el valor de la propiedad JSON. | N/A | No |
| JSONPathsResponse | Una lista de expresiones JSONPath que se evaluarán en relación con las cargas útiles JSON (si las hay) en la ruta de acceso de la respuesta. Cualquier JSONPath que se resuelva correctamente hará que se enmascare el valor de la propiedad JSON. | N/A | No |
| XPathsFault | Una lista de expresiones XPath que se evaluarán en relación con las cargas útiles XML (si las hay) en el flujo de errores (que se ejecuta si se arroja una falla en cualquier punto del flujo). Cualquier XPath que se resuelva correctamente hará que se enmascare el valor del elemento XML. | N/A | No |
| JSONPathsFault | Una lista de expresiones JSON que se evaluarán en relación con las cargas útiles JSON (si las hay) en el flujo de errores (que se ejecuta si se arroja una falla en cualquier punto del flujo). Cualquier JSONPath que se resuelva correctamente hará que se enmascare el valor de la propiedad JSON. | N/A | No |
| Variables |
Una lista de variables (ya sean predefinidas o personalizadas) cuyos valores se enmascararán. Para obtener una lista de las variables predeterminadas, consulta Referencia de las variables. |
N/A | No |
API de configuración de máscara
Las configuraciones de máscaras se definen como archivos con formato XML o JSON que subes y descargas con la API de administración de RESTful. Para obtener una lista completa de las APIs de enmascaramiento de datos, consulta Máscaras de datos.
Para ver las configuraciones de máscaras existentes, puedes llamar al recurso de la API
/maskconfigs en tu organización:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \
-u emailEn 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 las configuraciones de máscaras definidas para proxies de API específicos, puedes llamar a la
/maskconfigs API:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \
-u email
Para ver una configuración de máscara específica, especifica el nombre de la máscara:
$ 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 configuración de la máscara:
$ 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
$ 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 una configuración de 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 contenido del mensaje.
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>