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

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

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

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

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

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

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

<Get assignTo="private.hiddenData">

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

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

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

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 ที่เฉพาะเจาะจง ให้เรียกใช้ /maskconfigs API:

$ 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

คุณลบการกำหนดค่าการมาสก์ได้โดยใช้คำกริยา DELETE

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