پوشاندن و پنهان کردن داده‌ها

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

وقتی تماس‌های «میانای برنامه‌سازی کاربردی» را در Edge اشکال‌زدایی می‌کنید، محتوا گاهی می‌تواند حاوی داده‌های حساس باشد، مثل کارت‌های اعتباری یا اطلاعات سلامتی شناساننده شخصی (PHI) که باید پوشانده شود.

‫Edge روش‌های مختلفی برای پنهان کردن یا پوشاندن داده‌های حساس از جلسه‌های ردیابی و اشکال‌زدایی ارائه می‌دهد.

پنهان کردن داده‌های حساس

با ایجاد متغیرهای سفارشی با پیشوند «private.»، می‌توانید از نمایش داده‌های حساس در ابزار «ردیابی» و جلسات اشکال‌زدایی جلوگیری کنید.

برای مثال، هنگام استفاده از خط‌مشی «عملیات نقشه مقدار کلید» برای بازیابی مقادیر از نقشه مقدار کلید رمزگذاری‌شده، نام متغیرها را به‌صورت زیر قالب‌بندی کنید تا مطمئن شوید مقادیر در جلسات «ردیابی» یا اشکال‌زدایی نشان داده نمی‌شوند:

<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 فهرستی از عبارت‌های 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 می‌شود. موجود نیست نه
متغیر

فهرستی از متغیرها (ازپیش‌تعریف‌شده یا سفارشی) که مقادیر آن‌ها پوشانده خواهد شد. برای فهرست متغیرهای پیش‌فرض، به مرجع متغیرها مراجعه کنید.

موجود نیست نه

میانای برنامه‌سازی کاربردی پیکربندی پوشش

پیکربندی‌های پوشش به‌عنوان فایل‌های با قالب XML یا JSON تعریف می‌شوند که بااستفاده از RESTful management API بارگذاری و بارگیری می‌کنید. برای فهرست کامل میاناهای برنامه‌سازی کاربردی پوشش داده، به پوشش‌های داده مراجعه کنید.

برای دیدن پیکربندی‌های پوشش موجود، می‌توانید به‌سادگی منبع API /maskconfigs را در سازمانتان فراخوانی کنید:

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

این مثال دستورگان پایه را برای اصالت‌سنجی نشان می‌دهد. می‌توانید از انواع دیگر اصالت‌سنجی، مثل 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

این مثال دستورگان پایه را برای اصالت‌سنجی نشان می‌دهد. می‌توانید از انواع دیگر اصالت‌سنجی، مثل 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>