Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Saat Anda men-debug panggilan API di Edge, konten terkadang dapat berisi data sensitif, seperti kartu kredit atau informasi kesehatan identitas pribadi (PHI) yang perlu disamarkan.
Edge menyediakan berbagai cara untuk menyembunyikan atau menyamarkan data sensitif dari sesi Trace dan debug.
Menyembunyikan data sensitif
Anda dapat mencegah data sensitif muncul di alat Trace dan sesi debug dengan membuat
variabel kustom yang diawali dengan "private.
".
Misalnya, saat menggunakan kebijakan Key Value Map Operations untuk mengambil nilai dari peta nilai kunci terenkripsi, format nama variabel sebagai berikut untuk memastikan nilai tidak muncul di sesi Trace atau debug:
<Get assignTo="private.hiddenData">
Menyembunyikan variabel sensitif adalah alternatif dari penggunaan data masking, yang akan dijelaskan selanjutnya. Perbedaan antara menyembunyikan dan menyamarkan adalah variabel tersembunyi tidak muncul sama sekali, dan nilai yang disamarkan diganti dengan tanda bintang di sesi Trace dan debug.
Variabel tanpa awalan "private.
" ditampilkan dalam teks yang jelas di sesi Trace dan debug, meskipun data berasal dari penyimpanan data terenkripsi seperti peta nilai kunci yang dienkripsi. Gunakan masking (di bawah) jika Anda ingin menyamarkan nilai-nilai ini.
Menyamarkan data sensitif
Edge memungkinkan Anda menentukan 'konfigurasi mask' untuk menyamarkan data tertentu dalam sesi rekaman aktivitas dan debug. Konfigurasi masking dapat ditetapkan secara global (di tingkat organisasi) atau secara lokal (di level proxy API).
Jika disembunyikan, data akan diganti dengan tanda bintang di output rekaman aktivitas. Contoh:
<description>**********</description>
Menggunakan Konfigurasi Mask
Konfigurasi mask memungkinkan Anda mengidentifikasi data sensitif di sumber berikut:- Payload XML: Dengan XPath, Anda mengidentifikasi elemen XML yang akan difilter dari payload pesan permintaan atau respons.
- Payload JSON: Dengan JSONPath, Anda mengidentifikasi properti JSON yang akan difilter dari payload pesan permintaan atau respons.
- Variabel alur: Anda dapat menentukan daftar variabel yang harus disamarkan dalam output debug. Saat Anda menentukan variabel alur
request.content
,response.content
, ataumessage.content
, isi permintaan/respons juga akan disamarkan.
Struktur dasar konfigurasi mask ditunjukkan oleh representasi XML berikut:
<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>
Mengonfigurasi resource konfigurasi mask
Tentukan konfigurasi mask menggunakan elemen berikut.
Nama Kolom | Deskripsi | Default | Wajib diisi? |
---|---|---|---|
XPathsRequest | Daftar ekspresi XPath yang akan dievaluasi terhadap payload XML (jika ada) di jalur permintaan. Setiap XPath yang berhasil di-resolve akan menghasilkan nilai elemen XML yang disamarkan. | T/A | Tidak |
XPathsResponse | Daftar ekspresi XPath yang akan dievaluasi terhadap payload XML (jika ada) di jalur respons. Setiap XPath yang berhasil di-resolve akan menghasilkan nilai elemen XML yang disamarkan. | T/A | Tidak |
JSONPathsRequest | Daftar ekspresi JSONPath yang akan dievaluasi terhadap payload JSON (jika ada) di jalur permintaan. Setiap JSONPath yang berhasil di-resolve akan menyebabkan nilai properti JSON disamarkan. | T/A | Tidak |
JSONPathsResponse | Daftar ekspresi JSONPath yang akan dievaluasi terhadap payload JSON (jika ada) di jalur respons. Setiap JSONPath yang berhasil di-resolve akan menyebabkan nilai properti JSON disamarkan. | T/A | Tidak |
XPathsFault | Daftar ekspresi XPath yang akan dievaluasi terhadap payload XML (jika ada) dalam alur error (yang dijalankan jika fault ditampilkan di titik mana pun dalam flow). Setiap XPath yang berhasil di-resolve akan menghasilkan nilai elemen XML yang disamarkan. | T/A | Tidak |
JSONPathsFault | Daftar ekspresi JSON yang akan dievaluasi terhadap payload JSON (jika ada) dalam alur error (yang dijalankan jika sebuah fault ditampilkan di titik mana pun dalam flow). Setiap JSONPath yang berhasil di-resolve akan menyebabkan nilai properti JSON disamarkan. | T/A | Tidak |
Variabel |
Daftar variabel (baik yang telah ditetapkan sebelumnya maupun khusus) yang nilainya akan disamarkan. Untuk mengetahui daftar variabel default, lihat Referensi variabel. |
T/A | Tidak |
API konfigurasi Mask
Konfigurasi mask didefinisikan sebagai file berformat XML atau JSON yang Anda upload dan download menggunakan RESTful management API. Untuk mengetahui daftar lengkap API data masking, lihat Data Mask.
Untuk melihat konfigurasi mask yang ada, Anda cukup memanggil resource API
/maskconfigs
di organisasi Anda:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
Contoh ini menunjukkan sintaksis Dasar untuk autentikasi. Anda mungkin dapat menggunakan jenis autentikasi lainnya, seperti Oauth2 atau SAML.
Guna melihat konfigurasi mask yang ditentukan untuk proxy API tertentu, Anda dapat memanggil /maskconfigs
API:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
Untuk melihat konfigurasi mask tertentu, tentukan nama mask:
$ 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
Untuk membuat konfigurasi mask, gunakan kata kerja POST untuk mengirim payload yang menentukan konfigurasi mask:
$ 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 emailUntuk membuat konfigurasi mask yang dicakup dalam proxy API tertentu:
$ 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
Anda dapat menghapus konfigurasi mask menggunakan kata kerja DELETE:
$ curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \ -u email
Contoh ini menunjukkan sintaksis Dasar untuk autentikasi. Anda mungkin dapat menggunakan jenis autentikasi lainnya, seperti Oauth2 atau SAML.
Respons terhadap operasi DELETE adalah kode HTTP 204
tanpa konten pesan.
Masking untuk namespace XML
Konfigurasi mask tidak memerlukan elemen <Namespace>
dalam definisi XPATH, kecuali jika namespace ditentukan dalam payload XML. Hal ini juga berlaku jika payload XML
menggunakan namespace default.
Misalnya, payload XML tidak menetapkan namespace:
<employee> <name>abc</name> <age>50</age> </employee>
Oleh karena itu, konfigurasi mask tidak memerlukan elemen <Namespace>
:
<MaskDataConfiguration> <XPathsRequest> <XPathRequest>/employee/name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Jika payload XML berisi namespace dan awalan:
<myco:employee xmlns:myco="http://example.com"> <myco:name>xyz</myco:name> <myco:age>50</myco:age> </myco:employee>
Maka, definisi konfigurasi mask harus berisi elemen
<Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
Jika Payload XML memiliki namespace tetapi tanpa awalan, artinya namespace default:
<employee xmlns="http://example.com"> <name>xyz</name> <age>50</age> </employee>
Maka, konfigurasi mask harus tetap berisi elemen <Namespace>
:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>