डेटा को मास्क करना और छिपाना

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

Edge में एपीआई कॉल को डीबग करते समय, कॉन्टेंट में कभी-कभी संवेदनशील डेटा शामिल हो सकता है. जैसे, क्रेडिट कार्ड या व्यक्तिगत पहचान ज़ाहिर करने वाली स्वास्थ्य से जुड़ी जानकारी (पीएचआई). इस डेटा को मास्क करना ज़रूरी होता है.

Edge, ट्रेस और डीबग सेशन से संवेदनशील डेटा को छिपाने या मास्क करने के अलग-अलग तरीके उपलब्ध कराता है.

संवेदनशील डेटा को छिपाना

"private." से शुरू होने वाले कस्टम वैरिएबल बनाकर, संवेदनशील डेटा को Trace टूल और डीबग सेशन में दिखने से रोका जा सकता है.

उदाहरण के लिए, एन्क्रिप्ट (सुरक्षित) किए गए कुंजी-वैल्यू मैप से वैल्यू वापस पाने के लिए, Key Value Map Operations नीति का इस्तेमाल करते समय, वैरिएबल के नामों को इस तरह फ़ॉर्मैट करें, ताकि वैल्यू Trace या डीबग सेशन में न दिखें:

<Get assignTo="private.hiddenData">

संवेदनशील वैरिएबल को छिपाना, डेटा मास्किंग का एक विकल्प है. इसके बारे में यहां बताया गया है. वैरिएबल छिपाने और मास्क करने में यह अंतर होता है कि छिपे हुए वैरिएबल बिलकुल नहीं दिखते. वहीं, मास्क की गई वैल्यू को ट्रेस और डीबग सेशन में तारांक (*) से बदल दिया जाता है.

"private." प्रीफ़िक्स के बिना वाले वैरिएबल, ट्रेस और डीबग सेशन में क्लियर टेक्स्ट में दिखते हैं. भले ही, डेटा किसी एन्क्रिप्ट (सुरक्षित) किए गए डेटा स्टोर से आता हो. जैसे, एन्क्रिप्ट (सुरक्षित) किया गया कुंजी वैल्यू मैप. अगर आपको इन वैल्यू को मास्क करना है, तो नीचे दी गई मास्किंग का इस्तेमाल करें.

संवेदनशील डेटा को मास्क करना

Edge की मदद से, ट्रेस और डीबग सेशन में कुछ डेटा को मास्क करने के लिए, 'मास्क कॉन्फ़िगरेशन' तय किए जा सकते हैं. मास्किंग कॉन्फ़िगरेशन को ग्लोबल लेवल (संगठन के लेवल पर) या लोकल लेवल (एपीआई प्रॉक्सी के लेवल पर) पर सेट किया जा सकता है.

डेटा को मास्क करने पर, ट्रेस आउटपुट में उसकी जगह तारांक (*) दिखते हैं. उदाहरण के लिए:

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

मास्क कॉन्फ़िगरेशन का इस्तेमाल करना

मास्क करने की सुविधा से जुड़े कॉन्फ़िगरेशन की मदद से, इन सोर्स में मौजूद संवेदनशील डेटा की पहचान की जा सकती है:
  • एक्सएमएल पेलोड: XPath का इस्तेमाल करके, अनुरोध या जवाब के मैसेज पेलोड से फ़िल्टर किए जाने वाले एक्सएमएल एलिमेंट की पहचान की जाती है.
  • JSON पेलोड: JSONPath का इस्तेमाल करके, अनुरोध या जवाब के मैसेज पेलोड से फ़िल्टर की जाने वाली JSON प्रॉपर्टी की पहचान की जाती है.
  • फ़्लो वैरिएबल: वैरिएबल की एक सूची तय की जा सकती है. इससे यह तय किया जा सकता है कि डीबग आउटपुट में किन वैरिएबल को मास्क किया जाना चाहिए. request.content, response.content या message.content फ़्लो वैरिएबल तय करने पर, अनुरोध/जवाब के मुख्य हिस्से को भी मास्क किया जाता है.

मास्क कॉन्फ़िगरेशन का बुनियादी स्ट्रक्चर, यहां दिए गए एक्सएमएल फ़ॉर्मैट में दिखाया गया है:

<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 एक्सप्रेशन की सूची. इनका आकलन, अनुरोध के पाथ में मौजूद एक्सएमएल पेलोड (अगर कोई है) के आधार पर किया जाएगा. जिन एक्सपाथ को सही तरीके से हल किया जाएगा उनके लिए, एक्सएमएल एलिमेंट की वैल्यू को मास्क कर दिया जाएगा. लागू नहीं नहीं
XPathsResponse एक्सपाथ एक्सप्रेशन की सूची. इनका आकलन, रिस्पॉन्स पाथ में मौजूद एक्सएमएल पेलोड (अगर कोई हो) के आधार पर किया जाएगा. जिन एक्सपाथ को सही तरीके से हल किया जाएगा उनके लिए, एक्सएमएल एलिमेंट की वैल्यू को मास्क कर दिया जाएगा. लागू नहीं नहीं
JSONPathsRequest JSONPath एक्सप्रेशन की सूची. इनका आकलन, अनुरोध के पाथ में मौजूद JSON पेलोड (अगर कोई हो) के आधार पर किया जाएगा. जिन JSONPath को सही तरीके से हल किया जा सकेगा उनके लिए, JSON प्रॉपर्टी की वैल्यू को मास्क कर दिया जाएगा. लागू नहीं नहीं
JSONPathsResponse JSONPath एक्सप्रेशन की एक सूची, जिसका आकलन रिस्पॉन्स पाथ में मौजूद JSON पेलोड (अगर कोई हो) के आधार पर किया जाएगा. जिन JSONPath को सही तरीके से हल किया जा सकेगा उनके लिए, JSON प्रॉपर्टी की वैल्यू को मास्क कर दिया जाएगा. लागू नहीं नहीं
XPathsFault एक्सपाथ एक्सप्रेशन की सूची. इनका आकलन, गड़बड़ी वाले फ़्लो में मौजूद एक्सएमएल पेलोड (अगर कोई हो) के आधार पर किया जाएगा. गड़बड़ी वाला फ़्लो तब काम करता है, जब फ़्लो में किसी भी समय कोई गड़बड़ी होती है. जिन एक्सपाथ को सही तरीके से हल किया जा सकेगा उनके लिए, एक्सएमएल एलिमेंट की वैल्यू को मास्क कर दिया जाएगा. लागू नहीं नहीं
JSONPathsFault JSON एक्सप्रेशन की एक सूची. इनका आकलन, गड़बड़ी वाले फ़्लो में मौजूद JSON पेलोड (अगर कोई हो) के आधार पर किया जाएगा. गड़बड़ी वाला फ़्लो तब काम करता है, जब फ़्लो में किसी भी समय कोई गड़बड़ी होती है. जिन JSONPaths को सही तरीके से हल किया जाएगा उनसे JSON प्रॉपर्टी की वैल्यू मास्क हो जाएगी. लागू नहीं नहीं
वैरिएबल

वैरिएबल की सूची. इसमें पहले से तय किए गए या कस्टम वैरिएबल शामिल होते हैं. इनकी वैल्यू को मास्क किया जाएगा. डिफ़ॉल्ट वैरिएबल की सूची देखने के लिए, वैरिएबल का रेफ़रंस देखें.

लागू नहीं नहीं

Mask configuration API

मास्क कॉन्फ़िगरेशन, एक्सएमएल या JSON फ़ॉर्मैट वाली फ़ाइलें होती हैं. इन्हें RESTful मैनेजमेंट एपीआई का इस्तेमाल करके अपलोड और डाउनलोड किया जाता है. डेटा मास्क करने वाले एपीआई की पूरी सूची देखने के लिए, डेटा मास्क देखें.

मास्क करने की मौजूदा सेटिंग देखने के लिए, अपने संगठन में एपीआई संसाधन /maskconfigs को कॉल करें:

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

इस उदाहरण में, पुष्टि करने के लिए Basic सिंटैक्स दिखाया गया है. आपके पास पुष्टि करने के अन्य तरीकों का इस्तेमाल करने का विकल्प होता है. जैसे, Oauth2 या SAML.

किसी खास एपीआई प्रॉक्सी के लिए तय किए गए मास्क कॉन्फ़िगरेशन देखने के लिए, /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
किसी खास एपीआई प्रॉक्सी के लिए, मास्क कॉन्फ़िगरेशन बनाने का तरीका:
$ 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

इस उदाहरण में, पुष्टि करने के लिए Basic सिंटैक्स दिखाया गया है. आपके पास पुष्टि करने के अन्य तरीकों का इस्तेमाल करने का विकल्प होता है. जैसे, Oauth2 या SAML.

DELETE ऑपरेशन का जवाब, एचटीटीपी कोड 204 होता है. इसमें कोई मैसेज कॉन्टेंट नहीं होता.

एक्सएमएल नेमस्पेस के लिए मास्किंग

मास्क कॉन्फ़िगरेशन के लिए, एक्सपाथ की परिभाषा में <Namespace> एलिमेंट की ज़रूरत नहीं होती. हालांकि, अगर एक्सएमएल पेलोड में कोई नेमस्पेस तय किया गया है, तो इसकी ज़रूरत होती है. अगर एक्सएमएल पेलोड, डिफ़ॉल्ट नेमस्पेस का इस्तेमाल करता है, तो भी ऐसा हो सकता है.

उदाहरण के लिए, एक्सएमएल पेलोड में नेमस्पेस तय नहीं किया गया है:

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

अगर एक्सएमएल पेलोड में नेमस्पेस है, लेकिन कोई प्रीफ़िक्स नहीं है, तो इसका मतलब है कि डिफ़ॉल्ट नेमस्पेस:

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