ডেটা মাস্কিং ও লুকানো

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

Edge-এ API কল ডিবাগ করার সময়, কন্টেন্টে কখনও কখনও সংবেদনশীল ডেটা থাকতে পারে, যেমন ক্রেডিট কার্ড বা ব্যক্তিগতভাবে শনাক্তকরণযোগ্য স্বাস্থ্য সংক্রান্ত তথ্য (PHI) যা মাস্ক করতে হবে।

Edge, ট্রেস ও ডিবাগ সেশন থেকে সংবেদনশীল ডেটা লুকানো বা মাস্ক করার বিভিন্ন উপায় প্রদান করে।

সংবেদনশীল ডেটা লুকানো

"private." প্রিফিক্স সহ কাস্টম ভেরিয়েবল তৈরি করে আপনি Trace টুল ও ডিবাগ সেশনে সংবেদনশীল ডেটা দেখানো আটকাতে পারবেন।

যেমন, এনক্রিপ্ট করা কী ভ্যালু ম্যাপ থেকে ভ্যালু রিট্রিভ করতে Key Value Map Operations নীতি ব্যবহার করার সময়, ভ্যালু যাতে Trace বা ডিবাগ সেশনে দেখা না যায় তা নিশ্চিত করতে, ভেরিয়েবলের নামগুলি নিচে উল্লেখ করা ফর্ম্যাটে লিখুন:

<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 অনুরোধের পাথে XML পেলোড (যদি থাকে) মূল্যায়ন করার জন্য XPath এক্সপ্রেশনের তালিকা। সঠিকভাবে সমাধান করা যেকোনও XPaths-এর ফলে XML এলিমেন্টের ভ্যালু মাস্ক করা হবে। প্রযোজ্য নয় না
XPathsResponse XPath এক্সপ্রেশনের একটি তালিকা যা XML পেলোড (যদি থাকে) এর বিরুদ্ধে মূল্যায়ন করা হবে উত্তর পাথ। সঠিকভাবে সমাধান করা যেকোনও XPaths-এর ফলে XML এলিমেন্টের ভ্যালু মাস্ক করা হবে। প্রযোজ্য নয় না
JSONPathsRequest JSONPath এক্সপ্রেশনের একটি তালিকা যা অনুরোধের পাথে JSON পেলোডের (যদি থাকে) সাথে মূল্যায়ন করা হবে। সঠিকভাবে সমাধান করা যেকোনও JSONPaths-এর ফলে JSON প্রপার্টির ভ্যালু মাস্ক করা হবে। প্রযোজ্য নয় না
JSONPathsResponse JSONPath এক্সপ্রেশনের একটি তালিকা যা রেসপন্স পাথে JSON পেলোডের (যদি থাকে) সাথে মূল্যায়ন করা হবে। সঠিকভাবে সমাধান করা যেকোনও JSONPath-এর ফলে JSON প্রপার্টির ভ্যালু মাস্ক করা হবে। প্রযোজ্য নয় না
XPathsFault XPath এক্সপ্রেশনের একটি তালিকা যা XML পেলোড (যদি থাকে) এর সাথে মূল্যায়ন করা হবে ভুল সংক্রান্ত ফ্লোতে (ফ্লোতে যেকোনও পয়েন্টে কোনও সমস্যা হলে এটি এক্সিকিউট হয়)। সঠিকভাবে সমাধান করা যায় এমন যেকোনও XPath XML এলিমেন্টের মান মাস্ক করে দেবে। প্রযোজ্য নয় না
JSONPathsFault JSON এক্সপ্রেশনের একটি তালিকা যা ভুল সংক্রান্ত ফ্লোতে (ফ্লোয়ের কোনও পয়েন্টে কোনও সমস্যা হলে এটি এক্সিকিউট হয়) JSON পেলোডের (যদি থাকে) সাথে মূল্যায়ন করা হবে। সঠিকভাবে সমাধান করা যেকোনও JSONPaths JSON প্রপার্টির ভ্যালু মাস্ক করে দেবে। প্রযোজ্য নয় না
ভেরিয়েবল

ভেরিয়েবলের একটি তালিকা (আগে থেকে সংজ্ঞায়িত বা কাস্টম), যার ভ্যালু মাস্ক করা হবে। ডিফল্ট ভেরিয়েবলের তালিকা দেখতে, ভেরিয়েবল রেফারেন্স দেখুন।

প্রযোজ্য নয় না

মাস্ক কনফিগারেশন API

ম্যানেজমেন্ট API ব্যবহার করে আপনি যে XML বা JSON ফর্ম্যাটেড ফাইল আপলোড ও ডাউনলোড করেন, সেগুলিই মাস্ক কনফিগারেশন হিসেবে সংজ্ঞায়িত করা হয়। ডেটা মাস্কিং 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 নেমস্পেসের জন্য মাস্কিং

XML পেলোডে নেমস্পেস সংজ্ঞায়িত না থাকলে, মাস্ক কনফিগারেশনে XPATH সংজ্ঞায় <Namespace> এলিমেন্ট প্রয়োজন হয় না। 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>