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

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

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

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

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

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

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

<Get assignTo="private.hiddenData">

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

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

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

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

การตอบกลับการดำเนินการลบคือรหัส 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>