<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
在 Edge 中调试 API 调用时,内容有时可能包含敏感数据,例如 需要遮盖的信用卡信息或个人健康信息 (PHI)。
Edge 提供多种隐藏或遮盖敏感数据的方法, Trace和调试会话。
隐藏敏感数据
您可以创建前缀为“private.
”的自定义变量,以防止敏感数据显示在 Trace 工具和调试会话中。
例如,在使用键值映射操作政策从已加密的键值映射中检索值时,请将变量名称设置为如下格式,以确保这些值不显示在跟踪或调试会话中:
<Get assignTo="private.hiddenData">
隐藏敏感变量是数据遮盖的一个替代方法,详见下文。隐藏和遮盖之间的区别在于,在跟踪和调试会话中,被隐藏的变量完全不显示,而被遮盖的值将替换为星号。
在跟踪和调试会话中,没有“private.
”前缀的变量会以明文形式显示,即使数据来自加密的数据存储区(例如加密的键值映射)也是如此。如果您想遮盖这些值,请使用遮盖(下文)。
遮盖敏感数据
利用 Edge,您可以定义“蒙版配置”来遮盖轨迹和调试会话中的特定数据。 您可以在全局(组织级别)或本地(通过 API)设置遮盖配置 代理级别)。
遮盖数据后,这些数据会在跟踪记录输出中被替换为星号。例如:
<description>**********</description>
使用遮盖配置
蒙版 配置可让您识别以下来源中的敏感数据: <ph type="x-smartling-placeholder">- </ph>
- XML 载荷:通过 XPath 标识要从请求或响应消息载荷中过滤的 XML 元素。
- JSON 载荷:通过 JSONPath 标识要从请求或响应消息载荷中过滤的 JSON 属性。
- 流变量:您可以指定应在调试输出中遮盖的变量列表。当您指定
request.content
、response.content
或message.content
流变量时,请求/响应正文也会被遮盖。
遮盖配置的基本结构如以下 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>
配置掩码 配置资源
使用以下元素定义遮盖配置。
字段名称 | 说明 | 默认 | 是否必需? |
---|---|---|---|
XPathsRequest | 将根据 XML 有效负载(如果有)评估的 XPath 表达式 请求路径。任何成功解析的 XPath 都会生成该 XML 的值 元素。 | 不适用 | 否 |
XPathsResponse | 将根据 XML 有效负载(如果有)评估的 XPath 表达式 响应路径。任何成功解析的 XPath 都会生成该 XML 的值 元素。 | 不适用 | 否 |
JSONPathsRequest | 将在 请求路径。任何成功解析的 JSONPath 都会生成 已遮盖的 JSON 属性。 | 不适用 | 否 |
JSONPathsResponse | 将在 响应路径。任何成功解析的 JSONPath 都会生成 已遮盖的 JSON 属性。 | 不适用 | 否 |
XPathsFault | 将根据 XML 有效负载(如果有)评估的 XPath 表达式 错误流程(如果在流程中的任何时间点抛出故障就执行该流程)。任何存在 将导致 XML 元素的值被掩盖。 | 不适用 | 否 |
JSONPathsFault | 将针对 错误流程(如果在流程中的任何时间点抛出故障就执行该流程)。任何 JSONPath 将导致 JSON 属性的值被遮盖。 | 不适用 | 否 |
变量 |
将对其值进行遮盖的变量列表(预定义或自定义)。对于 默认变量列表,请参阅变量参考。 |
不适用 | 否 |
Mask configuration API
掩码配置是指您上传和下载的 XML 或 JSON 格式的文件 使用 RESTful 管理 API如需查看数据遮盖 API 的完整列表,请参阅数据遮盖。
要查看现有掩码配置,只需调用 API 资源
贵组织中的/maskconfigs
:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
此示例展示了 Basic 语法 进行身份验证。您也许可以使用其他类型的身份验证,例如 Oauth2 或 SAML。
要查看为特定 API 代理定义的掩码配置,您可以调用
/maskconfigs
API:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
如需查看特定的掩码配置,请指定掩码的名称:
$ 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
如需创建掩码配置,请使用 POST 动词提交定义掩码的载荷 配置:
$ 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如需创建范围限定为特定 API 代理的掩码配置,请执行以下操作:
$ 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
您可以使用 DELETE 动词删除掩码配置:
$ curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \ -u email
此示例展示了 Basic 语法 进行身份验证。您也许可以使用其他类型的身份验证,例如 Oauth2 或 SAML。
DELETE 操作的响应是不含消息的 HTTP 代码 204
内容。
遮盖 XML 命名空间
遮盖配置在 XPATH 定义中不需要 <Namespace>
元素,除非在 XML 载荷中定义了命名空间。如果 XML 载荷使用了默认命名空间也是如此。
例如,XML 载荷不定义命名空间:
<employee> <name>abc</name> <age>50</age> </employee>
因此,遮盖配置不需要 <Namespace>
元素:
<MaskDataConfiguration> <XPathsRequest> <XPathRequest>/employee/name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
如果 XML 载荷包含命名空间和前缀:
<myco:employee xmlns:myco="http://example.com"> <myco:name>xyz</myco:name> <myco:age>50</myco:age> </myco:employee>
则遮盖配置定义应包含 <Namespace>
元素:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
如果 XML 载荷具有命名空间,但没有前缀,即使用默认命名空间:
<employee xmlns="http://example.com"> <name>xyz</name> <age>50</age> </employee>
则遮盖配置仍应包含 <Namespace>
元素:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>