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ıklarken içerik bazen kredi kartları veya maskelenmesi gereken, kimliği tanımlayabilecek hassas sağlık bilgileri (PHI) gibi hassas veriler içerebilir.

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

Hassas verileri gizleme

"private." ile başlayan özel değişkenler oluşturarak hassas verilerin İzleme aracında ve hata ayıklama oturumlarında görünmesini önleyebilirsiniz.

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

<Get assignTo="private.hiddenData">

Hassas değişkenleri gizlemek, bir sonraki bölümde açıklanan veri maskeleme yöntemine alternatif bir çözümdür. Gizleme ile maskeleme arasındaki fark, gizlenen değişkenlerin hiç görünmemesi ve maskelenen 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ş bir anahtar/değer eşlemesi gibi şifrelenmiş bir veri deposundan gelse bile izleme ve hata ayıklama oturumlarında şifresiz metin olarak gösterilir. Bu değerleri maskelemek istiyorsanız maskeleme özelliğini (aşağıda) kullanın.

Hassas verileri maskeleme

Edge, izleme ve hata ayıklama oturumlarında belirli verileri maskelemek için "maske yapılandırmaları" tanımlamanıza olanak tanır. Maskeleme yapılandırmaları genel olarak (kuruluş düzeyinde) veya yerel olarak (API proxy'si düzeyinde) ayarlanabilir.

Veriler maskelendiğinde izleme çı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ı, bu kaynaklardaki hassas verileri tanımlamanıza olanak tanır:
  • XML yükleri: XPath'i 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 çıkışı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.

Bir maske yapılandırmasının temel yapısı aşağıdaki XML gösterimiyle açıklanmaktadır:

<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ırması 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ülen tüm XPath'ler, XML öğesinin değerinin maskelenmesine neden olur. Yok Hayır
XPathsResponse Yanıt yolundaki XML yüklerine (varsa) göre değerlendirilecek XPath ifadelerinin listesi. Başarıyla çözülen tüm XPath'ler, XML öğesinin değerinin maskelenmesine neden olur. 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 oluşursa yürütülür) XML yüklerine (varsa) göre değerlendirilecek 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 oluşursa yürütülür) JSON yüklerine (varsa) göre değerlendirilecek JSON ifadelerinin listesi. Başarıyla çözümlenen tüm JSON yolları, JSON özelliğinin değerinin maskelenmesine neden olur. Yok Hayır
Değişkenler

Değerleri maskelenecek değişkenlerin (önceden tanımlanmış veya özel) listesi. Varsayılan değişkenlerin listesi için Değişken referansı başlıklı makaleyi inceleyin.

Yok Hayır

Maske yapılandırma API'si

Maske yapılandırmaları, RESTful yönetim API'si kullanılarak yüklenen ve indirilen 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şunuzda /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ımlanan maske yapılandırmalarını görmek üzere /maskconfigs API'sini ç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
Belirli bir API proxy'siyle sınırlı 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

DELETE fiilini kullanarak maske yapılandırmasını 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.

Bir DELETE işlemine verilen yanıt, mesaj içeriği olmayan bir HTTP kodu 204'dır.

XML ad alanları için maskeleme

Bir ad alanı XML yükünde tanımlanmadığı sürece, maske yapılandırması için XPATH tanımında <Namespace> öğesi gerekmez. XML yükü varsayılan bir ad alanı kullanıyorsa da bu durum geçerlidir.

Örneğin, XML yükünde bir ad alanı tanımlanmamıştır:

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

Bu nedenle, maske yapılandırması için <Namespace> öğesi gerekmez:

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

XML yükünde ad alanı ve önek varsa:

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

Ardından, maske yapılandırma 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ünde ad alanı varsa ancak önek yoksa (varsayılan ad alanı):

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

Bu durumda, maske yapılandırması <Namespace> öğesini içermeye devam etmelidir:

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