Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Quando você depura chamadas de API no Edge, o conteúdo pode conter dados sensíveis, como: cartões de crédito ou informações de saúde de identificação pessoal (PHI) que precisam ser mascaradas.
O Edge oferece diferentes maneiras de ocultar ou mascarar dados sensíveis Trace e depurar sessões.
Como ocultar dados confidenciais
É possível impedir que dados confidenciais apareçam na ferramenta de rastreamento e em sessões de depuração criando
variáveis personalizadas prefixadas com "private.
".
Por exemplo, ao usar a política de operações de mapa de chave-valor para recuperar valores de um mapa de chave-valor criptografados, formate os nomes das variáveis da seguinte maneira para garantir que eles não apareçam nas sessões de rastreamento ou depuração:
<Get assignTo="private.hiddenData">
Ocultar variáveis confidenciais é uma alternativa ao uso de mascaramento de dados, descrito a seguir. A diferença entre ocultar e mascarar é que as variáveis ocultas não aparecem e os valores mascarados são substituídos por asteriscos no Trace e em sessões de depuração.
As variáveis sem o prefixo "private.
" são exibidas em texto não criptografado nas sessões de rastreamento e
de depuração, mesmo que os dados sejam provenientes de um armazenamento de dados criptografados, como um mapa de chave-valor
criptografado. Use o mascaramento (abaixo) se quiser mascarar esses valores.
Como mascarar dados confidenciais
O Edge permite definir "configurações de máscara" para mascarar dados específicos em sessões de trace e depuração. As configurações de mascaramento podem ser definidas globalmente (no nível da organização) ou localmente (na API). nível de proxy).
Quando os dados são mascarados, eles são substituídos por asteriscos na saída de trace. Exemplo:
<description>**********</description>
Como usar configurações de máscara
Máscara permitem identificar dados sensíveis nestas origens:- Payloads XML: usando o XPath, é possível identificar elementos XML que serão filtrados dos payloads das mensagens de solicitação ou resposta.
- Payloads JSON: usando o JSONPath, é possível identificar propriedades JSON a serem filtradas dos payloads das mensagens de solicitação ou resposta.
- Variáveis de fluxo: é possível especificar uma lista de variáveis que precisam ser mascarados na saída de
depuração. Quando você especifica as variáveis de fluxo
request.content
,response.content
oumessage.content
, o corpo da solicitação/resposta também é mascarado.
A estrutura básica de uma configuração de máscara é mostrada pela seguinte representação 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>
Como configurar uma máscara recurso de configuração
Defina uma configuração de máscara usando os elementos a seguir.
Nome do campo | Descrição | Padrão | Obrigatório? |
---|---|---|---|
XPathsRequest | Uma lista de expressões XPath que serão avaliadas em relação a cargas úteis de XML (se houver) no caminho da solicitação. Quaisquer XPaths que forem resolvidos com êxito resultarão no valor do XML elemento que está sendo mascarado. | N/A | Não |
XPathsResponse | Uma lista de expressões XPath que serão avaliadas em relação a cargas úteis de XML (se houver) no caminho de resposta. Quaisquer XPaths que forem resolvidos com êxito resultarão no valor do XML elemento que está sendo mascarado. | N/A | Não |
JSONPathsRequest | Uma lista de expressões JSONPath que serão avaliadas em relação a payloads JSON (se houver) em o caminho da solicitação. Quaisquer JSONPaths que forem resolvidos com êxito resultarão no valor do A propriedade JSON que está sendo mascarada. | N/A | Não |
JSONPathsResponse | Uma lista de expressões JSONPath que serão avaliadas em relação a payloads JSON (se houver) em o caminho de resposta. Quaisquer JSONPaths que forem resolvidos com êxito resultarão no valor do A propriedade JSON que está sendo mascarada. | N/A | Não |
XPathsFault | Uma lista de expressões XPath que serão avaliadas em relação a cargas úteis de XML (se houver) no Fluxo de erro, que é executado se uma falha for lançada em qualquer ponto no fluxo. Todos os XPaths que resolvido com sucesso resultará no mascaramento do valor do elemento XML. | N/A | Não |
JSONPathsFault | Uma lista de expressões JSON que serão avaliadas em relação aos payloads JSON (se houver) no Fluxo de erro, que é executado se uma falha for lançada em qualquer ponto no fluxo. Qualquer JSONPaths resolvidas com sucesso vão resultar no mascaramento do valor da propriedade JSON. | N/A | Não |
Variáveis |
Uma lista de variáveis (predefinidas ou personalizadas) com valores que serão mascarados. Para um lista de variáveis padrão, consulte a Referência de variáveis. |
N/A | Não |
API Mask Configuration
As configurações de máscara são definidas como arquivos formatados em XML ou JSON que você envia e baixa por upload usando a API de gerenciamento RESTful. Para uma lista completa de APIs de mascaramento de dados, consulte Máscaras de dados.
Para acessar as configurações de máscara atuais, basta chamar o recurso da API
/maskconfigs
na sua organização:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
Este exemplo mostra a sintaxe Basic para autenticação. Você pode usar outros tipos de autenticação, como Oauth2 ou SAML:
Para ver as configurações de máscara definidas para proxies de API específicos, você pode chamar o método
API /maskconfigs
:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
Para consultar uma configuração de máscara específica, especifique o nome dela:
$ 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 criar uma configuração de máscara, use o verbo POST para enviar um payload que defina a máscara configuração:
$ 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 emailPara criar uma configuração de máscara com escopo para um proxy de API específico:
$ 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
É possível excluir uma configuração de máscara usando o verbo DELETE:
$ curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \ -u email
Este exemplo mostra a sintaxe Basic para autenticação. Você pode usar outros tipos de autenticação, como Oauth2 ou SAML:
A resposta a uma operação DELETE é um código HTTP 204
sem mensagem.
conteúdo.
Como usar máscara para namespaces XML
Uma configuração de máscara não requer o elemento <Namespace>
em uma definição de XPATH,
a menos que um namespace seja definido no payload XML. Isso também acontece se o payload XML
usar um namespace padrão.
Por exemplo, o payload XML não define um namespace:
<employee> <name>abc</name> <age>50</age> </employee>
Portanto, a configuração da máscara não exige o elemento <Namespace>
:
<MaskDataConfiguration> <XPathsRequest> <XPathRequest>/employee/name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Se o payload XML contiver um namespace e um prefixo:
<myco:employee xmlns:myco="http://example.com"> <myco:name>xyz</myco:name> <myco:age>50</myco:age> </myco:employee>
Em seguida, a definição da configuração da máscara precisa conter o elemento
<Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Se o payload de XML tiver um namespace, mas nenhum prefixo, o que significa o namespace padrão:
<employee xmlns="http://example.com"> <name>xyz</name> <age>50</age> </employee>
Em seguida, a configuração da máscara ainda precisa conter o elemento <Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>