การมาสก์และการซ่อนข้อมูล

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

เมื่อคุณแก้ไขข้อบกพร่องของการเรียก API ใน Edge บางครั้งเนื้อหาอาจมีข้อมูลที่ละเอียดอ่อน เช่น บัตรเครดิตหรือข้อมูลส่วนบุคคลด้านสุขภาพที่ระบุตัวบุคคลนั้นได้ (PHI) ซึ่งจำเป็นต้องมาสก์

Edge มีวิธีซ่อนหรือมาสก์ข้อมูลที่ละเอียดอ่อนในการติดตามและเซสชันการแก้ไขข้อบกพร่อง

การซ่อนข้อมูลที่ละเอียดอ่อน

คุณป้องกันไม่ให้ข้อมูลที่ละเอียดอ่อนปรากฏในเครื่องมือติดตามและเซสชันการแก้ไขข้อบกพร่องได้โดยสร้างตัวแปรที่กำหนดเองที่ขึ้นต้นด้วย "private."

เช่น เมื่อใช้นโยบายการดำเนินการแมปค่าคีย์เพื่อดึงค่าจากแมปค่าคีย์ที่เข้ารหัส ให้จัดรูปแบบชื่อตัวแปรดังต่อไปนี้เพื่อให้ค่าไม่ปรากฏในเซสชันการติดตามหรือแก้ไขข้อบกพร่อง

<Get assignTo="private.hiddenData">

การซ่อนตัวแปรที่ละเอียดอ่อนเป็นทางเลือกหนึ่งนอกเหนือจากการใช้การมาสก์ข้อมูล ซึ่งอธิบายอยู่ในหัวข้อถัดไป ความแตกต่างระหว่างการซ่อนและการมาสก์คือตัวแปรที่ซ่อนไว้จะไม่ปรากฏเลย และค่าที่มาสก์จะถูกแทนที่ด้วยเครื่องหมายดอกจันในเซสชันการติดตามและแก้ไขข้อบกพร่อง

ตัวแปรที่ไม่มีคำนำหน้า "private." จะแสดงเป็นข้อความธรรมดาในเซสชันการติดตามและการแก้ไขข้อบกพร่อง แม้ว่าข้อมูลจะมาจากที่เก็บข้อมูลที่เข้ารหัส เช่น แมปค่าคีย์ที่เข้ารหัสก็ตาม ใช้การมาสก์ (ด้านล่าง) หากต้องการมาสก์ค่าเหล่านี้

การมาสก์ข้อมูลที่ละเอียดอ่อน

Edge ให้คุณกำหนด "การกำหนดค่ามาสก์" เพื่อมาสก์ข้อมูลที่เฉพาะเจาะจงในเซสชันการติดตามและแก้ไขข้อบกพร่อง การกำหนดค่าการมาสก์จะตั้งค่าได้ทั่วโลก (ในระดับองค์กร) หรือในเครื่อง (ที่ระดับพร็อกซี API)

เมื่อมีการมาสก์ข้อมูล ระบบจะแทนที่ข้อมูลด้วยเครื่องหมายดอกจันในเอาต์พุตการติดตาม เช่น

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

การใช้การกำหนดค่ามาสก์

การกำหนดค่ามาสก์ช่วยให้คุณระบุข้อมูลที่ละเอียดอ่อนในแหล่งที่มาเหล่านี้ได้
  • เพย์โหลด XML: เมื่อใช้ XPath คุณสามารถระบุองค์ประกอบ XML ที่จะกรองออกจากเพย์โหลดข้อความคำขอหรือการตอบกลับได้
  • เพย์โหลด JSON: เมื่อใช้ JSONPath เพื่อระบุพร็อพเพอร์ตี้ JSON ที่จะกรองออกจากเพย์โหลดข้อความคำขอหรือการตอบกลับ
  • ตัวแปรโฟลว์: คุณระบุรายการตัวแปรที่ควรมาสก์ในเอาต์พุตการแก้ไขข้อบกพร่องได้ เมื่อคุณระบุตัวแปรโฟลว์ request.content, response.content หรือ message.content ระบบจะมาสก์เนื้อหาคำขอ/การตอบกลับด้วย

โครงสร้างพื้นฐานของการกำหนดค่ามาสก์จะแสดงโดยการแสดง 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>

การกำหนดค่าทรัพยากรการกำหนดค่ามาสก์

กำหนดการกำหนดค่ามาสก์โดยใช้องค์ประกอบต่อไปนี้

ชื่อช่อง คำอธิบาย ค่าเริ่มต้น จำเป็นหรือไม่
XPathsRequest รายการนิพจน์ XPath ที่จะมีการประเมินเทียบกับเพย์โหลด XML (หากมี) ในเส้นทางคำขอ XPath ที่แปลค่าสำเร็จจะส่งผลให้ค่าขององค์ประกอบ XML ถูกมาสก์ ไม่มีข้อมูล ไม่ได้
XPathsResponse รายการนิพจน์ XPath ที่จะมีการประเมินเทียบกับเพย์โหลด XML (หากมี) ในเส้นทางการตอบสนอง XPath ที่แปลค่าสำเร็จจะส่งผลให้ค่าขององค์ประกอบ XML ถูกมาสก์ ไม่มีข้อมูล ไม่ได้
JSONPathsRequest รายการนิพจน์ JSONPath ที่จะประเมินเทียบกับเพย์โหลด JSON (หากมี) ในเส้นทางคำขอ JSONPath ที่แปลงสำเร็จจะส่งผลให้ค่าของพร็อพเพอร์ตี้ JSON ถูกมาสก์ ไม่มีข้อมูล ไม่ได้
JSONPathsResponse รายการนิพจน์ JSONPath ที่จะมีการประเมินเทียบกับเพย์โหลด JSON (หากมี) ในเส้นทางการตอบสนอง JSONPath ที่แปลงสำเร็จจะส่งผลให้ค่าของพร็อพเพอร์ตี้ JSON ถูกมาสก์ ไม่มีข้อมูล ไม่ได้
XPathsFault รายการนิพจน์ XPath ที่จะมีการประเมินเทียบกับเพย์โหลด XML (หากมี) ในขั้นตอนข้อผิดพลาด (ซึ่งจะดำเนินการถ้ามีข้อผิดพลาดเกิดขึ้นที่จุดใดก็ได้ในโฟลว์) XPath ที่แปลงสำเร็จจะส่งผลให้ค่าขององค์ประกอบ XML ถูกมาสก์ ไม่มีข้อมูล ไม่ได้
JSONPathsFault รายการนิพจน์ JSON ที่จะมีการประเมินเทียบกับเพย์โหลด JSON (หากมี) ในขั้นตอนข้อผิดพลาด (ซึ่งจะดำเนินการหากมีการแสดงข้อผิดพลาดในจุดใดก็ตามในโฟลว์) JSONPath ที่แปลงสำเร็จจะส่งผลให้ค่าพร็อพเพอร์ตี้ JSON ถูกมาสก์ ไม่มีข้อมูล ไม่ได้
ตัวแปร

รายการตัวแปร (ทั้งที่กำหนดไว้ล่วงหน้าหรือกำหนดเอง) ซึ่งค่าจะถูกมาสก์ ดูรายการตัวแปรเริ่มต้นได้ที่ข้อมูลอ้างอิงตัวแปร

ไม่มีข้อมูล ไม่ได้

API การกำหนดค่ามาสก์

การกำหนดค่ามาสก์หมายถึงไฟล์รูปแบบ XML หรือ JSON ที่คุณอัปโหลดและดาวน์โหลดโดยใช้ RESTful Management API ดูรายการ API การมาสก์ข้อมูลทั้งหมดได้ที่มาสก์ข้อมูล

หากต้องการดูการกำหนดค่ามาสก์ที่มีอยู่ เพียงเรียกใช้ทรัพยากร API /maskconfigs ในองค์กรดังนี้

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

ตัวอย่างนี้แสดงไวยากรณ์พื้นฐานสำหรับการตรวจสอบสิทธิ์ คุณอาจใช้การตรวจสอบสิทธิ์ประเภทอื่นๆ ได้ เช่น Oauth2 หรือ SAML

หากต้องการดูการกำหนดค่ามาสก์ที่กำหนดไว้สำหรับพร็อกซี API ที่เฉพาะเจาะจง ให้เรียกใช้ API ของ /maskconfigs ดังนี้

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

ในการดูการกำหนดค่ามาสก์ที่ระบุ ให้ระบุชื่อมาสก์ด้วยคำสั่งต่อไปนี้

$ 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

หากต้องการสร้างการกำหนดค่ามาสก์ ให้ใช้กริยา POST เพื่อส่งเปย์โหลดที่กำหนดการกำหนดค่ามาสก์:

$ 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
หากต้องการสร้างการกำหนดค่ามาสก์ที่กำหนดขอบเขตเฉพาะพร็อกซี 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

คุณสามารถลบการกำหนดค่ามาสก์โดยใช้คำกริยา "ลบ" ดังนี้

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

ตัวอย่างนี้แสดงไวยากรณ์พื้นฐานสำหรับการตรวจสอบสิทธิ์ คุณอาจใช้การตรวจสอบสิทธิ์ประเภทอื่นๆ ได้ เช่น Oauth2 หรือ SAML

การตอบสนองต่อการดำเนินการ DELETE เป็นรหัส HTTP 204 ที่ไม่มีเนื้อหาข้อความ

การมาสก์สำหรับเนมสเปซ XML

การกำหนดค่ามาสก์ไม่จำเป็นต้องมีองค์ประกอบ <Namespace> ในคำจำกัดความ XPATH เว้นแต่จะมีการกำหนดเนมสเปซในเพย์โหลด XML และจะเป็นจริงด้วยเช่นกันหากเพย์โหลด XML ใช้เนมสเปซเริ่มต้น

ตัวอย่างเช่น เพย์โหลด XML ไม่ได้กำหนดเนมสเปซดังนี้

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

ดังนั้น การกำหนดค่ามาสก์จึงไม่ต้องใช้องค์ประกอบ <Namespace>:

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

หากเพย์โหลด XML มีเนมสเปซและคำนำหน้า

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

จากนั้นการกำหนดการกำหนดค่ามาสก์ควรมีองค์ประกอบ <Namespace> ดังนี้

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

หากเพย์โหลด XML มีเนมสเปซ แต่ไม่มีคำนำหน้า หมายความว่าเนมสเปซเริ่มต้น

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

การกำหนดค่ามาสก์ควรยังคงมีองค์ประกอบ <Namespace> ดังนี้

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