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

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

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

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

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

می توانید با ایجاد متغیرهای سفارشی با پیشوند " private. " از نمایش داده های حساس در ابزار Trace و جلسات اشکال زدایی جلوگیری کنید.

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

<Get assignTo="private.hiddenData">

پنهان کردن متغیرهای حساس جایگزینی برای استفاده از پوشش داده است که در ادامه توضیح داده می شود. تفاوت بین پنهان کردن و پوشاندن این است که متغیرهای پنهان به هیچ وجه ظاهر نمی شوند و مقادیر پوشانده شده با ستاره در جلسات Trace و Debug جایگزین می شوند.

متغیرهای بدون پیشوند " 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 می شود. N/A خیر
XPathsResponse فهرستی از عبارات XPath که در برابر بارهای XML (در صورت وجود) در مسیر پاسخ ارزیابی خواهند شد. هر XPath هایی که با موفقیت حل شوند منجر به پوشاندن مقدار عنصر XML می شود. N/A خیر
JSONPathsRequest فهرستی از عبارات JSONPath که در برابر بارهای JSON (در صورت وجود) در مسیر درخواست ارزیابی خواهند شد. هر مسیر JSONPath که با موفقیت حل شود منجر به پوشاندن مقدار ویژگی JSON می شود. N/A خیر
JSONPathsResponse فهرستی از عبارات JSONPath که در برابر بارهای JSON (در صورت وجود) در مسیر پاسخ ارزیابی خواهند شد. هر مسیر JSONPath که با موفقیت حل شود منجر به پوشاندن مقدار ویژگی JSON می شود. N/A خیر
XPathsFault فهرستی از عبارات XPath که در برابر بارهای XML (در صورت وجود) در جریان خطا (که در صورت ایجاد خطا در هر نقطه از جریان اجرا می شود) ارزیابی می شود. هر XPath هایی که با موفقیت حل شوند منجر به پوشاندن مقدار عنصر XML می شود. N/A خیر
JSONPathsFault لیستی از عبارات JSON که در برابر بارهای JSON (در صورت وجود) در جریان خطا (که در صورت بروز خطا در هر نقطه از جریان اجرا می شود) ارزیابی می شود. هر مسیر JSONPath که با موفقیت حل شود منجر به پوشاندن مقدار ویژگی JSON می شود. N/A خیر
متغیرها

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

N/A خیر

API پیکربندی ماسک

پیکربندی‌های ماسک به‌عنوان فایل‌هایی با فرمت XML یا JSON تعریف می‌شوند که با استفاده از API مدیریت RESTful آپلود و دانلود می‌کنید. برای فهرست کامل APIهای پوشاننده داده، به Data Masks مراجعه کنید.

برای دیدن پیکربندی‌های ماسک موجود، می‌توانید به سادگی با منبع 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

پیکربندی ماسک به عنصر <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 Payload یک فضای نام داشته باشد اما پیشوندی ندارد، به معنای فضای نام پیش فرض:

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