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

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

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

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

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

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

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

<Get assignTo="private.hiddenData">

پنهان کردن متغیرهای حساس، جایگزینی برای استفاده از پوشش داده‌ها است که در ادامه توضیح داده می‌شود. تفاوت بین پنهان کردن و پوشش این است که متغیرهای پنهان اصلاً ظاهر نمی‌شوند و مقادیر پوشش داده شده در جلسات ردیابی و اشکال‌زدایی با ستاره جایگزین می‌شوند.

متغیرهایی که پیشوند « private. » ندارند، در جلسات Trace و debug به صورت متن واضح نمایش داده می‌شوند، حتی اگر داده‌ها از یک مخزن داده رمزگذاری شده مانند یک نقشه کلید-مقدار رمزگذاری شده آمده باشند. اگر می‌خواهید این مقادیر را پنهان کنید، از ماسک کردن (در زیر) استفاده کنید.

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

اج به شما امکان می‌دهد «پیکربندی‌های ماسک» را برای پوشاندن داده‌های خاص در جلسات ردیابی و اشکال‌زدایی تعریف کنید. پیکربندی‌های ماسک‌گذاری را می‌توان به صورت جهانی (در سطح سازمان) یا محلی (در سطح پروکسی 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>

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

با استفاده از عناصر زیر، پیکربندی ماسک را تعریف کنید.

نام فیلد توضیحات پیش‌فرض الزامی است؟
درخواست XPaths فهرستی از عبارات XPath که در مسیر درخواست، در برابر بارهای XML (در صورت وجود) ارزیابی خواهند شد. هر XPath که با موفقیت حل شود، منجر به پنهان شدن مقدار عنصر XML می‌شود. ناموجود خیر
پاسخ XPaths فهرستی از عبارات XPath که در مسیر پاسخ، در برابر بارهای XML (در صورت وجود) ارزیابی خواهند شد. هر XPath که با موفقیت حل شود، منجر به پنهان شدن مقدار عنصر XML می‌شود. ناموجود خیر
درخواست JSONPaths فهرستی از عبارات JSONPath که در مسیر درخواست، در برابر بارهای داده JSON (در صورت وجود) ارزیابی خواهند شد. هر JSONPath که با موفقیت حل شود، منجر به پنهان شدن مقدار ویژگی JSON می‌شود. ناموجود خیر
پاسخ JSONPaths فهرستی از عبارات JSONPath که در مسیر پاسخ در برابر بارهای JSON (در صورت وجود) ارزیابی خواهند شد. هر JSONPath که با موفقیت حل شود، منجر به پنهان شدن مقدار ویژگی JSON می‌شود. ناموجود خیر
XPathsFault فهرستی از عبارات XPath که در جریان خطا (که در صورت بروز خطا در هر نقطه‌ای از جریان اجرا می‌شود) در برابر بارهای XML (در صورت وجود) ارزیابی می‌شوند. هر XPath که با موفقیت حل شود، منجر به پنهان شدن مقدار عنصر XML خواهد شد. ناموجود خیر
JSONPathsFault فهرستی از عبارات JSON که در جریان خطا (که در صورت بروز خطا در هر نقطه‌ای از جریان اجرا می‌شود) در برابر بارهای JSON (در صورت وجود) ارزیابی می‌شوند. هر JSONPath که با موفقیت حل شود، منجر به پنهان شدن مقدار ویژگی JSON خواهد شد. ناموجود خیر
متغیرها

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

ناموجود خیر

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 خاص، می‌توانید API مربوط به /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 برای ارسال یک payload که پیکربندی ماسک را تعریف می‌کند، استفاده کنید:

$ 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 payload تعریف شده باشد. این موضوع در صورتی که XML payload از یک فضای نام پیش‌فرض استفاده کند نیز صادق است.

برای مثال، فایل XML payload فضای نامی را تعریف نمی‌کند:

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