Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Когда вы отлаживаете вызовы API в Edge, контент иногда может содержать конфиденциальные данные, такие как кредитные карты или личную медицинскую информацию (PHI), которые необходимо замаскировать.
Edge предоставляет различные способы сокрытия или маскировки конфиденциальных данных в сеансах трассировки и отладки.
Скрытие конфиденциальных данных
Вы можете предотвратить появление конфиденциальных данных в инструменте трассировки и сеансах отладки, создав пользовательские переменные с префиксом « private.
».
Например, при использовании политики «Операции с картами значений ключей» для получения значений из зашифрованной карты значений ключей отформатируйте имена переменных следующим образом, чтобы значения не появлялись в сеансах трассировки или отладки:
<Get assignTo="private.hiddenData">
Сокрытие конфиденциальных переменных является альтернативой использованию маскировки данных, описанной ниже. Разница между скрытием и маскированием заключается в том, что скрытые переменные вообще не отображаются, а маскированные значения заменяются звездочками в сеансах трассировки и отладки.
Переменные без префикса « private.
» отображаются в виде открытого текста в сеансах трассировки и отладки, даже если данные поступают из зашифрованного хранилища данных, например из зашифрованной карты значений ключа. Используйте маскирование (ниже), если хотите замаскировать эти значения.
Маскирование конфиденциальных данных
Edge позволяет определять «конфигурации масок» для маскировки определенных данных в сеансах трассировки и отладки. Конфигурации маскировки можно задавать глобально (на уровне организации) или локально (на уровне прокси-сервера API).
Когда данные замаскированы, в выходных данных трассировки они заменяются звездочками. Например:
<description>**********</description>
Использование конфигураций маски
Конфигурации масок позволяют идентифицировать конфиденциальные данные в следующих источниках:- Полезные данные 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 | Список выражений XPath, которые будут оцениваться по полезным данным XML (если таковые имеются) в пути запроса. Любые успешно разрешенные XPath приведут к маскировке значения элемента XML. | Н/Д | Нет |
XPathsResponse | Список выражений XPath, которые будут оцениваться по полезным данным XML (если таковые имеются) в пути ответа. Любые успешно разрешенные XPath приведут к маскировке значения элемента XML. | Н/Д | Нет |
JSONPathsЗапрос | Список выражений JSONPath, которые будут оцениваться по полезным данным JSON (если таковые имеются) в пути запроса. Любые успешно разрешенные JSONPath приведут к маскировке значения свойства JSON. | Н/Д | Нет |
JSONPathsResponse | Список выражений JSONPath, которые будут оцениваться по полезным данным JSON (если таковые имеются) в пути ответа. Любые успешно разрешенные JSONPath приведут к маскировке значения свойства JSON. | Н/Д | Нет |
XPathsFault | Список выражений XPath, которые будут оцениваться по полезным данным XML (если таковые имеются) в потоке ошибок (который выполняется, если в любой точке потока возникает ошибка). Любые успешно разрешенные XPath приведут к маскировке значения элемента XML. | Н/Д | Нет |
JSONPathsFault | Список выражений JSON, которые будут оцениваться по полезным данным JSON (если таковые имеются) в потоке ошибок (который выполняется, если в любой точке потока возникает ошибка). Любые успешно разрешенные JSONPath приведут к маскировке значения свойства JSON. | Н/Д | Нет |
Переменные | Список переменных (предопределенных или пользовательских), значения которых будут замаскированы. Список переменных по умолчанию см. в разделе «Справочник по переменным» . | Н/Д | Нет |
API настройки маски
Конфигурации маски определяются как файлы в формате XML или JSON, которые вы загружаете и загружаете с помощью API управления RESTful. Полный список API маскирования данных см. в разделе Маски данных .
Чтобы просмотреть существующие конфигурации масок, вы можете просто вызвать ресурс API /maskconfigs
в вашей организации:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
В этом примере показан базовый синтаксис аутентификации. Вы можете использовать другие типы аутентификации, например Oauth2 или SAML .
Чтобы просмотреть конфигурации масок, определенные для конкретных прокси-серверов API, вы можете вызвать API /maskconfigs
:
$ 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
В этом примере показан базовый синтаксис аутентификации. Вы можете использовать другие типы аутентификации, например Oauth2 или SAML .
Ответом на операцию DELETE является HTTP-код 204
без содержимого сообщения.
Маскирование пространств имен XML
Конфигурация маски не требует элемента <Namespace>
в определении XPATH, если только пространство имен не определено в полезных данных 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>