maskowanie i ukrywanie danych;

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, lub message.contentzmiennych 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 email
Aby 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>