Veri maskeleme ve gizleme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Edge'de API çağrılarında hata ayıkladığınızda içerik, bazen kredi kartları veya maskelenmesi gereken kimliği tanımlayabilecek sağlık bilgileri (PHI) gibi hassas veriler içerebilir.

Edge, İzleme ve hata ayıklama oturumlarındaki hassas verileri gizlemek veya maskelemek için farklı yöntemler sunar.

Hassas verileri gizleme

Önünde "private." olan özel değişkenler oluşturarak, hassas verilerin İzleme aracında ve hata ayıklama oturumlarında görünmesini engelleyebilirsiniz.

Örneğin, şifrelenmiş anahtar/değer eşlemesinden değer almak için Anahtar/Değer Eşleme İşlemleri politikasını kullanırken değerlerin İzleme veya hata ayıklama oturumlarında görünmemesi için değişken adlarını aşağıdaki gibi biçimlendirin:

<Get assignTo="private.hiddenData">

Hassas değişkenleri gizlemek, veri maskelemeyi kullanmaya bir alternatiftir (ileride açıklandığı gibi). Gizleme ile maskeleme arasındaki fark, gizli değişkenlerin hiç görünmemesi ve maskelenmiş değerlerin İzleme ve hata ayıklama oturumlarında yıldız işaretleriyle değiştirilmesidir.

"private." öneki olmayan değişkenler, veriler şifrelenmiş anahtar/değer eşlemesi gibi şifrelenmiş bir veri deposundan gelse bile, Trace ve hata ayıklama oturumlarında açık metin olarak gösterilir. Bu değerleri maskelemek istiyorsanız maskeleme (aşağıda) seçeneğini kullanın.

Hassas verileri maskeleme

Edge, izleme ve hata ayıklama oturumlarındaki belirli verileri maskelemek için "maske yapılandırmaları" tanımlamanızı sağlar. Maskeleme yapılandırmaları genel (kuruluş düzeyinde) veya yerel olarak (API proxy düzeyinde) ayarlanabilir.

Maskelenen veriler, iz çıktısında yıldız işaretleriyle değiştirilir. Örneğin:

<description>**********</description>

Maske Yapılandırmalarını Kullanma

Maske yapılandırmaları, aşağıdaki kaynaklardaki hassas verileri tanımlayabilmenizi sağlar:
  • XML yükleri: XPath kullanarak istek veya yanıt mesajı yüklerinden filtrelenecek XML öğelerini tanımlarsınız.
  • JSON yükleri: JSONPath kullanarak istek veya yanıt mesajı yüklerinden filtrelenecek JSON özelliklerini tanımlarsınız.
  • Akış değişkenleri: Hata ayıklama çıktısında maskelenmesi gereken değişkenlerin listesini belirtebilirsiniz. request.content, response.content veya message.content akış değişkenlerini belirttiğinizde istek/yanıt gövdesi de maskelenir.

Maske yapılandırmasının temel yapısı aşağıdaki XML gösterimiyle gösterilmektedir:

<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>

Maske yapılandırma kaynağını yapılandırma

Aşağıdaki öğeleri kullanarak bir maske yapılandırması tanımlayın.

Alan adı Açıklama Varsayılan Zorunlu mu?
XPathsRequest İstek yolundaki XML yüklerine (varsa) göre değerlendirilecek XPath ifadelerinin listesi. Başarıyla çözümlenen tüm XPath'ler, XML öğesinin değerinin maskelenmesiyle sonuçlanır. Yok Hayır
XPathsResponse Yanıt yolundaki XML yüklerine (varsa) göre değerlendirilecek XPath ifadelerinin listesi. Başarıyla çözümlenen tüm XPath'ler, XML öğesinin değerinin maskelenmesiyle sonuçlanır. Yok Hayır
JSONPathsRequest İstek yolundaki JSON yüklerine (varsa) göre değerlendirilecek JSONPath ifadelerinin listesi. Başarıyla çözümlenen tüm JSONPath'ler, JSON özelliğinin değerinin maskelenmesine neden olur. Yok Hayır
JSONPathsResponse Yanıt yolundaki JSON yüklerine (varsa) göre değerlendirilecek JSONPath ifadelerinin listesi. Başarıyla çözümlenen tüm JSONPath'ler, JSON özelliğinin değerinin maskelenmesine neden olur. Yok Hayır
XPathsFault Hata akışındaki (akışın herhangi bir noktasında hata verilirse yürütülür) XML yüklerine (varsa) göre değerlendirilecek olan XPath ifadelerinin listesi. Başarıyla çözümlenen tüm XPath'ler, XML öğesinin değerinin maskelenmesine neden olur. Yok Hayır
JSONPathsFault Hata akışındaki (akışın herhangi bir noktasında hata verilirse yürütülür) JSON yüklerine (varsa) göre değerlendirilecek olan JSON ifadelerinin listesi. Başarıyla çözümlenen tüm JSONPath'ler, JSON özelliğinin değerinin maskelenmesine neden olur. Yok Hayır
Değişkenler

Değerleri maskelenecek değişkenlerin bir listesi (önceden tanımlanmış veya özel). Varsayılan değişkenlerin listesi için Değişkenler referansı bölümüne bakın.

Yok Hayır

Maske yapılandırma API'sı

Maske yapılandırmaları, RESTful Management API kullanarak yükleyip indirdiğiniz XML veya JSON biçimli dosyalar olarak tanımlanır. Veri maskeleme API'lerinin tam listesi için Veri Maskeleri başlıklı makaleyi inceleyin.

Mevcut maske yapılandırmalarını görmek için kuruluşunuzdaki /maskconfigs API kaynağını çağırmanız yeterlidir:

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \
-u email

Bu örnekte, kimlik doğrulama için Temel söz dizimi gösterilmektedir. Oauth2 veya SAML gibi diğer kimlik doğrulama türlerini kullanabilirsiniz.

Belirli API proxy'leri için tanımlanmış maske yapılandırmalarını görmek için /maskconfigs API'yi çağırabilirsiniz:

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \
-u email

Belirli bir maske yapılandırmasını görmek için maskenin adını belirtin:

$ 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

Maske yapılandırması oluşturmak için POST fiilini kullanarak maske yapılandırmasını tanımlayan bir yük gönderin:

$ 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
Kapsamı belirli bir API proxy'sine ayarlanmış bir maske yapılandırması oluşturmak için:
$ 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

Bir maske yapılandırmasını, SİL fiilini kullanarak silebilirsiniz:

$ curl -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \
-u email

Bu örnekte, kimlik doğrulama için Temel söz dizimi gösterilmektedir. Oauth2 veya SAML gibi diğer kimlik doğrulama türlerini kullanabilirsiniz.

DELETE işleminin yanıtı, mesaj içeriği olmayan bir HTTP kodu 204 olur.

XML ad alanları için maskeleme

XML yükünde bir ad alanı tanımlanmadığı sürece maske yapılandırması, XPATH tanımında <Namespace> öğesini gerektirmez. Bu durum, XML yükü varsayılan bir ad alanı kullandığında da geçerlidir.

Örneğin, XML yükü bir ad alanı tanımlamaz:

<employee>
    <name>abc</name>
    <age>50</age>
</employee>

Bu nedenle, maske yapılandırması <Namespace> öğesini gerektirmez:

<MaskDataConfiguration>
    <XPathsRequest>
        <XPathRequest>/employee/name</XPathRequest>
    <XPathsRequest>
</MaskDataConfiguration>

XML yükü bir ad alanı ve ön ek içeriyorsa:

<myco:employee xmlns:myco="http://example.com">
    <myco:name>xyz</myco:name>
    <myco:age>50</myco:age>
</myco:employee>

Bu durumda maske yapılandırması tanımı, <Namespace> öğesini içermelidir:

<MaskDataConfiguration>
    <Namespaces>
        <Namespace prefix="myco">http://example.com</Namespace>
    </Namespaces>
    <XPathsRequest>
        <XPathRequest>/myco:employee/myco:name</XPathRequest>
    <XPathsRequest>
</MaskDataConfiguration>

XML Yük'te ad alanı olmasına rağmen ön eki yoksa varsayılan ad alanı:

<employee xmlns="http://example.com">
    <name>xyz</name>
    <age>50</age>
</employee>

Bu durumda maske yapılandırması hâlâ <Namespace> öğesini içermelidir:

<MaskDataConfiguration>
    <Namespaces>
        <Namespace prefix="myco">http://example.com</Namespace>
    </Namespaces>
    <XPathsRequest>
        <XPathRequest>/myco:employee/myco:name</XPathRequest>
    <XPathsRequest>
</MaskDataConfiguration>