Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Quando esegui il debug delle chiamate alle API in Edge, i contenuti a volte possono includere dati sensibili, carte di credito o dati sanitari che consentono l'identificazione personale (PHI) che devono essere mascherati.
Edge offre diversi modi per nascondere o mascherare i dati sensibili Trace e sessioni di debug.
Nascondere i dati sensibili
Puoi impedire la visualizzazione di dati sensibili nello strumento Trace e nelle sessioni di debug creando
variabili personalizzate precedute dal prefisso "private.
".
Ad esempio, quando utilizzi il criterio Operazioni mappa valori chiave per recuperare i valori da una mappa chiave-valore criptata, formatta i nomi delle variabili come segue per assicurarti che i valori non vengano visualizzati nelle sessioni di Trace o debug:
<Get assignTo="private.hiddenData">
Nascondere le variabili sensibili è un'alternativa al mascheramento dei dati, descritta di seguito. La la differenza tra occultamento e mascheramento è che le variabili nascoste non appaiono affatto e vengono sostituiti da asterischi nelle sessioni di traccia e di debug.
Variabili senza "private.
" vengono visualizzati in chiaro in Trace
sessioni di debug anche se i dati provengono da un datastore criptato, ad esempio una coppia chiave-valore criptata
mappa. Utilizza il mascheramento (di seguito) se vuoi mascherare questi valori.
Mascheramento dei dati sensibili
Edge consente di definire le "configurazioni della maschera" per mascherare dati specifici nelle sessioni di traccia e debug. Le configurazioni di mascheramento possono essere impostate a livello globale (a livello di organizzazione) o localmente (nell'API) a livello di proxy).
Quando i dati sono mascherati, vengono sostituiti da asterischi nell'output della traccia. Ad esempio:
<description>**********</description>
Utilizzo delle configurazioni delle maschere
Maschera consente di identificare i dati sensibili nelle seguenti origini:- Payload XML: utilizzando XPath, identifica gli elementi XML da filtrare dalla richiesta o payload dei messaggi di risposta.
- Payload JSON: utilizzando JSONPath, identifichi le proprietà JSON da cui filtrare payload dei messaggi di richiesta o di risposta.
- Variabili di flusso: puoi specificare un elenco di variabili che devono essere mascherate nel debug.
come output. Se specifichi
request.content
,response.content
, omessage.content
variabili di flusso, anche il corpo della richiesta/risposta mascherato.
La struttura di base di una configurazione di maschera è illustrata dalla seguente rappresentazione 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>
Configurazione di una maschera risorsa di configurazione
Definisci una configurazione di maschera utilizzando i seguenti elementi.
Nome campo | Descrizione | Predefinito | Obbligatorio? |
---|---|---|---|
XPathsRequest | Un elenco di espressioni XPath che verranno valutate rispetto agli eventuali payload XML nel del percorso di richiesta. Qualsiasi XPath che venga risolto correttamente darà il valore del file XML dell'elemento mascherato. | N/D | No |
XPathsResponse | Un elenco di espressioni XPath che verranno valutate rispetto agli eventuali payload XML nel del tuo percorso di risposta. Qualsiasi XPath che venga risolto correttamente darà il valore del file XML dell'elemento mascherato. | N/D | No |
JSONPathsRequest | Un elenco di espressioni JSONPath che verranno valutate rispetto agli eventuali payload JSON in il percorso della richiesta. Qualsiasi JSONPath risolto correttamente restituirà il valore del parametro Proprietà JSON mascherata. | N/D | No |
JSONPathsResponse | Un elenco di espressioni JSONPath che verranno valutate rispetto agli eventuali payload JSON in il percorso di risposta. Qualsiasi JSONPath risolto correttamente restituirà il valore del parametro Proprietà JSON mascherata. | N/D | No |
XPathsFault | Un elenco di espressioni XPath che verranno valutate rispetto agli eventuali payload XML nel flusso di errori (che viene eseguito se viene generato un errore in qualsiasi punto del flusso). Qualsiasi XPath risolvere correttamente causerà la mascheratura del valore dell'elemento XML. | N/D | No |
JSONPathsFault | Un elenco di espressioni JSON che verranno valutate in base agli eventuali payload JSON nel flusso di errori (che viene eseguito se viene generato un errore in qualsiasi punto del flusso). Qualsiasi JSONPath risolti correttamente, il valore della proprietà JSON verrà mascherato. | N/D | No |
Variabili |
Un elenco di variabili (predefinite o personalizzate) i cui valori verranno mascherati. Per un elenco delle variabili predefinite, consulta Riferimento delle variabili. |
N/D | No |
API Mask Configuration
Le configurazioni delle maschere sono file in formato XML o JSON che carichi e scarichi utilizzando l'API di gestione RESTful. Per un elenco completo delle API di mascheramento dei dati, consulta Maschere di dati.
Per visualizzare le configurazioni di maschera esistenti, puoi semplicemente chiamare la risorsa API
/maskconfigs
nella tua organizzazione:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
Questo esempio mostra la sintassi di base per l'autenticazione. Potresti riuscire a utilizzare altri tipi di autenticazione, ad esempio Oauth2 o SAML.
Per vedere le configurazioni di maschera definite per proxy API specifici, puoi chiamare il metodo
API /maskconfigs
:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
Per visualizzare una configurazione di maschera specifica, specifica il nome della maschera:
$ 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
Per creare una configurazione di maschera, utilizza il verbo POST per inviare un payload che definisce la maschera configurazione:
$ 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 emailPer creare una configurazione di maschera che abbia come ambito un proxy API specifico:
$ 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
Puoi eliminare una configurazione di maschera utilizzando il verbo DELETE:
$ curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \ -u email
Questo esempio mostra la sintassi di base per l'autenticazione. Potresti riuscire a utilizzare altri tipi di autenticazione, ad esempio Oauth2 o SAML.
La risposta a un'operazione DELETE è un codice HTTP 204
senza messaggio
contenuti.
Mascheramento per gli spazi dei nomi XML
Una configurazione di maschera non richiede l'elemento <Namespace>
in un XPATH
a meno che non venga definito uno spazio dei nomi nel payload XML. Questo vale anche se il payload XML
utilizza uno spazio dei nomi predefinito.
Ad esempio, il payload XML non definisce uno spazio dei nomi:
<employee> <name>abc</name> <age>50</age> </employee>
Di conseguenza, la configurazione della maschera non richiede l'elemento <Namespace>
:
<MaskDataConfiguration> <XPathsRequest> <XPathRequest>/employee/name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Se il payload XML contiene uno spazio dei nomi e un prefisso:
<myco:employee xmlns:myco="http://example.com"> <myco:name>xyz</myco:name> <myco:age>50</myco:age> </myco:employee>
La definizione della configurazione della maschera deve quindi contenere <Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Se il payload XML ha uno spazio dei nomi ma non un prefisso, ovvero lo spazio dei nomi predefinito:
<employee xmlns="http://example.com"> <name>xyz</name> <age>50</age> </employee>
Quindi la configurazione della maschera dovrebbe comunque contenere l'elemento <Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>