<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Lorsque vous déboguez des appels d'API dans Edge, le contenu peut parfois contenir des données sensibles, telles que les cartes de crédit ou les données de santé personnelles qui doivent être masquées.
Edge propose différentes manières de masquer ou de masquer les données sensibles des Sessions de Trace et de débogage.
Masquer les données sensibles
Vous pouvez empêcher l'affichage des données sensibles dans l'outil Trace et déboguer les sessions en créant des variables personnalisées avec le préfixe "private.
".
Par exemple, lorsque vous utilisez la règle "Opérations de mappage de clés-valeurs" pour extraire les valeurs d'un mappage de clés-valeurs chiffrées, mettez en forme les noms de variables comme suit pour vous assurer qu'elles n'apparaissent pas dans les sessions Trace ou de débogage :
<Get assignTo="private.hiddenData">
Le masquage des variables sensibles constitue une alternative à l'utilisation du masquage de données, comme indiqué ci-après. La différence entre masquer et ne pas afficher est que les variables non affichées n'apparaissent pas du tout, tandis que les valeurs masquées sont remplacées par des astérisques dans les sessions Trace et de débogage.
Les variables sans le préfixe "private.
" s'affichent en clair dans les sessions Trace et de débogage, même si les données proviennent d'un datastore chiffré tel qu'un mappage de valeurs-clés chiffrées. Utilisez le masquage (ci-dessous) si vous souhaitez masquer ces valeurs.
Masquer les données sensibles
Edge vous permet de définir des "configurations de masque" pour masquer des données spécifiques dans les sessions de trace et de débogage. Les configurations de masquage peuvent être définies de manière globale (au niveau de l'organisation) ou locale (au niveau de l'API). au niveau du proxy).
Lorsque les données sont masquées, elles sont remplacées par des astérisques dans le résultat de la trace. Exemple :
<description>**********</description>
Utiliser des configurations de masque
Masque vous permettent d'identifier les données sensibles dans ces sources: <ph type="x-smartling-placeholder">- </ph>
- Charges utiles XML : à l'aide de XPath, vous identifiez les éléments XML à filtrer à partir des charges utiles de requête ou de message de réponse.
- Charges utiles JSON : à l'aide de JSONPath, vous identifiez les propriétés JSON à filtrer à partir des charges utiles de requête ou de message de réponse.
- Variables de flux : vous pouvez spécifier une liste de variables qui doivent être masquées dans la sortie de débogage. Lorsque vous spécifiez les variables de flux
request.content
,response.content
oumessage.content
, le corps de la requête/réponse est également masqué.
La structure de base d'une configuration de masque est illustrée par la représentation XML suivante:
<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>
Configurer un masque ressource de configuration
Définissez une configuration de masque à l'aide des éléments suivants.
Nom du champ | Description | Par défaut | Obligatoire ? |
---|---|---|---|
XPathsRequest | Une liste des expressions XPath qui seront évaluées par rapport aux charges utiles XML (le cas échéant) dans le dans le chemin d'accès de la requête. Tout chemin XPath résolu correctement renvoie la valeur du code XML est masqué. | N/A | Non |
XPathsResponse | Une liste des expressions XPath qui seront évaluées par rapport aux charges utiles XML (le cas échéant) dans le chemin de réponse. Tout chemin XPath résolu correctement renvoie la valeur du code XML est masqué. | N/A | Non |
JSONPathsRequest | Une liste des expressions JSONPath qui seront évaluées par rapport aux charges utiles JSON (le cas échéant) dans dans le chemin de la requête. Tous les chemins JSONPath résolus renvoient la valeur du paramètre Propriété JSON masquée. | N/A | Non |
JSONPathsResponse | Une liste des expressions JSONPath qui seront évaluées par rapport aux charges utiles JSON (le cas échéant) dans le chemin de réponse. Tous les chemins JSONPath résolus renvoient la valeur du paramètre Propriété JSON masquée. | N/A | Non |
XPathsFault | Une liste des expressions XPath qui seront évaluées par rapport aux charges utiles XML (le cas échéant) dans le flux d'erreur (qui s'exécute si une erreur est générée à n'importe quel point du flux). Tous les chemins XPath la résolution aboutit entraîne le masquage de la valeur de l'élément XML. | N/A | Non |
JSONPathsFault | Une liste des expressions JSON qui seront évaluées par rapport aux charges utiles JSON (le cas échéant) dans le paramètre flux d'erreur (qui s'exécute si une erreur est générée à n'importe quel point du flux). Tous les chemins JSONPath qui sont résolues correctement, la valeur de la propriété JSON sera masquée. | N/A | Non |
Variables |
Liste de variables (prédéfinies ou personnalisées) dont les valeurs seront masquées. Pour une des variables par défaut, consultez la documentation de référence sur les variables. |
N/A | Non |
API de configuration des masques
Les configurations de masque sont définies sous la forme de fichiers au format XML ou JSON que vous importez et téléchargez à l'aide de l'API de gestion RESTful. Pour obtenir la liste complète des API de masquage des données, consultez la section Masques de données.
Pour afficher les configurations de masque existantes, il vous suffit d'appeler la ressource API
/maskconfigs
dans votre organisation:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
Cet exemple présente la syntaxe de base pour l'authentification. Vous pouvez utiliser d'autres méthodes d'authentification, Oauth2 ou SAML :
Pour afficher les configurations de masque définies pour des proxys d'API spécifiques, vous pouvez appeler la méthode
API /maskconfigs
:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
Pour afficher une configuration de masque spécifique, spécifiez le nom du masque:
$ 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
Pour créer une configuration de masque, utilisez le verbe POST afin d'envoyer une charge utile qui définit le masque. configuration:
$ 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 emailPour créer une configuration de masque limitée à un proxy d'API spécifique:
$ 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
Vous pouvez supprimer une configuration de masque à l'aide du verbe DELETE:
$ curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \ -u email
Cet exemple présente la syntaxe de base pour l'authentification. Vous pouvez utiliser d'autres méthodes d'authentification, Oauth2 ou SAML :
La réponse à une opération DELETE est un code HTTP 204
sans message
contenus.
Masquage des espaces de noms XML
Une configuration de masque ne nécessite pas l'élément <Namespace>
dans une définition XPATH, sauf si un espace de noms est défini dans la charge utile XML. C'est également le cas si la charge utile XML utilise un espace de noms par défaut.
Par exemple, la charge utile XML ne définit pas d'espace de noms :
<employee> <name>abc</name> <age>50</age> </employee>
Par conséquent, la configuration du masque ne nécessite pas l'élément <Namespace>
:
<MaskDataConfiguration> <XPathsRequest> <XPathRequest>/employee/name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Si la charge utile XML contient un espace de noms et un préfixe :
<myco:employee xmlns:myco="http://example.com"> <myco:name>xyz</myco:name> <myco:age>50</myco:age> </myco:employee>
La définition de la configuration de masque doit alors contenir l'élément <Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Si la charge XML possède un espace de noms, mais aucun préfixe, ce qui signifie que l'espace de noms par défaut est utilisé :
<employee xmlns="http://example.com"> <name>xyz</name> <age>50</age> </employee>
La configuration du masque doit toujours contenir l'élément <Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>