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

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

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

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

संवेदनशील जानकारी को छिपाया जा रहा है

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

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

<Get assignTo="private.hiddenData">

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

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

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

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

जब डेटा को मास्क किया जाता है, तो ट्रेस आउटपुट में उसे तारे के निशान से बदल दिया जाता है. उदाहरण के लिए:

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

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

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

मास्क कॉन्फ़िगरेशन एपीआई

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

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

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

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

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

'मिटाएं' कार्रवाई का रिस्पॉन्स, एक एचटीटीपी कोड 204 है, जिसमें कोई मैसेज कॉन्टेंट नहीं है.

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

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

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

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

इसलिए, मास्क कॉन्फ़िगरेशन के लिए <Namespace> एलिमेंट की ज़रूरत नहीं होती:

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

अगर एक्सएमएल पेलोड में नेमस्पेस और प्रीफ़िक्स है:

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