Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Podczas debugowania wywołań interfejsów API w Edge treści mogą czasami zawierać dane wrażliwe, takie jak kart kredytowych ani informacji zdrowotnych umożliwiających identyfikację, które muszą być zamaskowane.
Edge oferuje różne sposoby ukrywania lub maskowania danych wrażliwych przed Trace i sesje debugowania.
Ukrywanie danych wrażliwych
Aby zapobiec wyświetlaniu danych wrażliwych w narzędziu Trace i sesjach debugowania, utwórz
zmiennych niestandardowych z prefiksem „private.
”.
Na przykład: gdy używasz zasady Operacje mapowania par klucz-wartość do pobierania wartości z zaszyfrowanej wartości klucza, sformatuj nazwy zmiennych w następujący sposób, aby wartości nie były wyświetlane w sesjach śledzenia lub debugowania:
<Get assignTo="private.hiddenData">
Ukrycie zmiennych poufnych jest alternatywą dla maskowania danych, które opisujemy poniżej. Różnica między ukrywaniem a maskowaniem polega na tym, że ukryte zmienne w ogóle nie są wyświetlane, a funkcja są zastępowane gwiazdkami w sesjach śledzenia i debugowania.
Zmienne bez parametru „private.
” są wyświetlane w postaci zwykłego tekstu w Trace oraz
sesji debugowania, nawet jeśli dane pochodzą z zaszyfrowanego magazynu danych, np. zaszyfrowanej wartości klucza
mapy. Jeśli chcesz zamaskować te wartości, użyj maskowania (poniżej).
Maskowanie danych wrażliwych
Edge umożliwia definiowanie „konfiguracji masek” maskowania określonych danych w sesjach śledzenia i debugowania. Konfiguracje maskowania można ustawić globalnie (na poziomie organizacji) lub lokalnie (na poziomie interfejsu API) poziom serwera proxy).
Gdy dane są maskowane, w danych wyjściowych logu czasu są zastępowane gwiazdkami. Na przykład:
<description>**********</description>
Korzystanie z konfiguracji masek
Maska konfiguracje umożliwiają identyfikowanie danych wrażliwych w tych źródłach:- Ładunki XML: korzystając z XPath, możesz identyfikować elementy XML, które mają być odfiltrowywane z żądania lub ładunków komunikatów odpowiedzi.
- Ładunki JSON: za pomocą JSONPath wskazujesz właściwości JSON, z których chcesz filtrować ładunków komunikatów żądania lub odpowiedzi.
- Zmienne procesu: możesz określić listę zmiennych, które będą maskowane podczas debugowania.
dane wyjściowe. Gdy użyjesz właściwości
request.content
,response.content
, lubmessage.content
zmiennych przepływu, treść żądania/odpowiedzi również jest zamaskowana.
Podstawowa struktura konfiguracji maski przedstawia tę reprezentację 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>
Konfigurowanie maski zasób konfiguracji
Zdefiniuj konfigurację maski, korzystając z podanych niżej elementów.
Nazwa pola | Opis | Domyślny | Wymagana? |
---|---|---|---|
XPathsRequest | Lista wyrażeń XPath, które będą oceniane w odniesieniu do ładunków XML (jeśli występują) w funkcji ścieżki żądania. Każda poprawna ścieżka XPath spowoduje powstanie wartości pliku XML. maskowanego elementu. | Nie dotyczy | Nie |
XPathsResponse | Lista wyrażeń XPath, które będą oceniane w odniesieniu do ładunków XML (jeśli występują) w funkcji ścieżki odpowiedzi. Każda poprawna ścieżka XPath spowoduje powstanie wartości pliku XML. maskowanego elementu. | Nie dotyczy | Nie |
JSONPathsRequest | Lista wyrażeń JSONPath, które będą oceniane w odniesieniu do ładunków JSON (jeśli występują) w ścieżki żądania. Wszystkie poprawnie zakończone ścieżki JSONPath będą powodować utworzenie wartości parametru Maskowana właściwość JSON. | Nie dotyczy | Nie |
JSONPathsResponse | Lista wyrażeń JSONPath, które będą oceniane w odniesieniu do ładunków JSON (jeśli występują) w ścieżki odpowiedzi. Wszystkie poprawnie zakończone ścieżki JSONPath będą powodować utworzenie wartości parametru Maskowana właściwość JSON. | Nie dotyczy | Nie |
XPathsFault | Lista wyrażeń XPath, które będą oceniane w odniesieniu do ładunków XML (jeśli występują) w funkcji procesu błędu (realizowanego, gdy w dowolnym momencie procesu wystąpi błąd). Wszystkie ścieżki XPath, które spowoduje, że wartość elementu XML zostanie maskowana. | Nie dotyczy | Nie |
JSONPathsFault | Lista wyrażeń JSON, które będą oceniane w odniesieniu do ładunków JSON (jeśli występują) w funkcji procesu błędu (realizowanego, gdy w dowolnym momencie procesu wystąpi błąd). Wszystkie JSONPath jeśli uda się rozwiązać problem, wartość właściwości JSON zostanie maskowana. | Nie dotyczy | Nie |
Zmienne |
Lista zmiennych (wstępnie zdefiniowanych lub niestandardowych), których wartości będą maskowane. Dla listę zmiennych domyślnych. Więcej informacji znajdziesz w artykule o zmiennych. |
Nie dotyczy | Nie |
Interfejs API konfiguracji maski
Konfiguracje masek to przesyłane i pobierane pliki w formacie XML lub JSON za pomocą interfejsu API do zarządzania typu REST. Pełną listę interfejsów API maskowania danych znajdziesz w artykule Maski danych.
Aby wyświetlić istniejące konfiguracje masek, wystarczy wywołać zasób API
/maskconfigs
w Twojej organizacji:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
Ten przykład pokazuje składnię Podstawowa. do uwierzytelniania. Możesz mieć dostęp do innych metod uwierzytelniania, takich jak Oauth2 lub SAML.
Aby zobaczyć konfiguracje masek zdefiniowane dla określonych serwerów proxy interfejsu API, możesz wywołać funkcję
Interfejs API /maskconfigs
:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
Aby wyświetlić konkretną konfigurację maski, podaj jej nazwę:
$ 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
Aby utworzyć konfigurację maski, użyj czasownika POST do przesłania ładunku definiującego maskę Konfiguracja:
$ 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 emailAby utworzyć konfigurację maski ograniczonej do określonego serwera proxy interfejsu 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
Konfigurację maski możesz usunąć za pomocą czasownika DELETE:
$ curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \ -u email
Ten przykład pokazuje składnię Podstawowa. do uwierzytelniania. Możesz mieć dostęp do innych metod uwierzytelniania, takich jak Oauth2 lub SAML.
Odpowiedź na operację DELETE to kod HTTP 204
bez komunikatu
treści.
Maskowanie przestrzeni nazw XML
Konfiguracja maski nie wymaga elementu <Namespace>
w XPATH
chyba że w ładunku XML została zdefiniowana przestrzeń nazw. Dzieje się tak również, jeśli ładunek XML
używa domyślnej przestrzeni nazw.
Na przykład ładunek XML nie definiuje przestrzeni nazw:
<employee> <name>abc</name> <age>50</age> </employee>
Dlatego konfiguracja maski nie wymaga elementu <Namespace>
:
<MaskDataConfiguration> <XPathsRequest> <XPathRequest>/employee/name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Jeśli ładunek XML zawiera przestrzeń nazw i prefiks:
<myco:employee xmlns:myco="http://example.com"> <myco:name>xyz</myco:name> <myco:age>50</myco:age> </myco:employee>
W takim przypadku definicja konfiguracji maski powinna zawierać parametr <Namespace>
element:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Jeśli ładunek XML ma przestrzeń nazw, ale bez prefiksu, czyli domyślną przestrzeń nazw:
<employee xmlns="http://example.com"> <name>xyz</name> <age>50</age> </employee>
W takim przypadku konfiguracja maski nadal powinna zawierać element <Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>