Anda 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 Trace dan sesi 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 Operasi Peta Nilai Kunci 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 untuk menggunakan penyamaran data, yang dijelaskan berikutnya. 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
terenkripsi. Gunakan penyamaran (di bawah) jika Anda ingin menyamarkan nilai ini.
Menyamarkan data sensitif
Edge memungkinkan Anda menentukan 'konfigurasi penyamaran' untuk menyamarkan data tertentu dalam sesi trace dan debug. Konfigurasi penyamaran dapat ditetapkan secara global (di tingkat organisasi) atau lokal (di tingkat proxy API ).
Saat data disamarkan, data akan diganti dengan tanda bintang dalam output trace. Contoh:
<description>**********</description>
Menggunakan Konfigurasi Penyamaran
Konfigurasi penyamaran memungkinkan Anda mengidentifikasi data sensitif di sumber berikut:- Payload XML: Menggunakan XPath, Anda mengidentifikasi elemen XML yang akan difilter dari payload pesan permintaan atau respons.
- Payload JSON: Menggunakan 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 penyamaran 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 penyamaran
Tentukan konfigurasi penyamaran menggunakan elemen berikut.
| Nama Kolom | Deskripsi | Default | Wajib? |
|---|---|---|---|
| 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 menghasilkan nilai properti JSON yang 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 menghasilkan nilai properti JSON yang disamarkan. | T/A | Tidak |
| XPathsFault | Daftar ekspresi XPath yang akan dievaluasi terhadap payload XML (jika ada) dalam alur error (yang dieksekusi jika terjadi error pada titik mana pun dalam alur). 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 dieksekusi jika terjadi error pada titik mana pun dalam alur). Setiap JSONPath yang berhasil di-resolve akan menghasilkan nilai properti JSON yang disamarkan. | T/A | Tidak |
| Variabel |
Daftar variabel (baik yang telah ditentukan sebelumnya maupun kustom) yang nilainya akan disamarkan. Untuk mengetahui daftar variabel default, lihat Referensi variabel. |
T/A | Tidak |
API konfigurasi penyamaran
Konfigurasi penyamaran ditentukan sebagai file berformat XML atau JSON yang Anda upload dan download menggunakan RESTful management API. Untuk mengetahui daftar lengkap API penyamaran data, lihat Penyamaran Data.
Untuk melihat konfigurasi penyamaran yang ada, Anda cukup memanggil resource API
/maskconfigs di organisasi Anda:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \
-u emailContoh ini menunjukkan sintaksis Dasar untuk autentikasi. Anda mungkin dapat menggunakan jenis autentikasi lainnya, seperti Oauth2 atau SAML.
Untuk melihat konfigurasi penyamaran 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 penyamaran tertentu, tentukan nama penyamaran:
$ 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 penyamaran, gunakan kata kerja POST untuk mengirimkan payload yang menentukan konfigurasi penyamaran:
$ 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
$ 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 penyamaran 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.
Penyamaran untuk namespace XML
Konfigurasi penyamaran 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 menentukan namespace:
<employee>
<name>abc</name>
<age>50</age>
</employee>Oleh karena itu, konfigurasi penyamaran 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>Kemudian, definisi konfigurasi penyamaran 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 tidak memiliki awalan, yang berarti namespace default:
<employee xmlns="http://example.com">
<name>xyz</name>
<age>50</age>
</employee>Kemudian, konfigurasi penyamaran tetap harus berisi elemen <Namespace>:
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>