Che giấu và ẩn dữ liệu

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Khi bạn gỡ lỗi các lệnh gọi API trong Edge, đôi khi nội dung có thể chứa dữ liệu nhạy cảm, chẳng hạn như thẻ tín dụng hoặc thông tin sức khỏe nhận dạng cá nhân (PHI) cần đeo khẩu trang.

Edge cung cấp nhiều cách để ẩn hoặc che dữ liệu nhạy cảm Trace và gỡ lỗi các phiên.

Đang ẩn dữ liệu nhạy cảm

Bạn có thể ngăn dữ liệu nhạy cảm xuất hiện trong công cụ Theo dõi và gỡ lỗi các phiên bằng cách tạo biến tuỳ chỉnh có tiền tố là "private.".

Ví dụ: khi sử dụng chính sách Hoạt động bản đồ giá trị khoá để truy xuất giá trị từ một ánh xạ giá trị khoá được mã hoá, hãy định dạng tên biến như sau để đảm bảo các giá trị không xuất hiện trong phiên Theo dõi hoặc gỡ lỗi:

<Get assignTo="private.hiddenData">

Ẩn biến nhạy cảm là một giải pháp thay thế cho việc sử dụng tính năng che giấu dữ liệu, sẽ được mô tả trong phần tiếp theo. Chiến lược phát hành đĩa đơn Sự khác biệt giữa ẩn và che giấu là các biến ẩn không hề xuất hiện và được che giấu các giá trị được thay thế bằng dấu hoa thị trong các phiên Theo dõi và gỡ lỗi.

Biến không có giá trị "private." các tiền tố được trình bày rõ ràng trong công cụ Theo dõi và phiên gỡ lỗi ngay cả khi dữ liệu đến từ một kho dữ liệu đã mã hoá, chẳng hạn như giá trị khoá đã mã hoá bản đồ. Sử dụng tính năng che giấu (bên dưới) nếu bạn muốn ẩn các giá trị này.

Che dữ liệu nhạy cảm

Edge cho phép bạn xác định "cấu hình mặt nạ" để che dữ liệu cụ thể trong các phiên theo dõi và gỡ lỗi. Bạn có thể thiết lập cấu hình che giấu trên toàn cầu (ở cấp tổ chức) hoặc thiết lập cục bộ (tại API cấp proxy).

Khi dữ liệu được che giấu, dữ liệu đó sẽ được thay thế bằng dấu hoa thị trong dữ liệu đầu ra theo dõi. Ví dụ:

<description>**********</description>

Sử dụng cấu hình mặt nạ

Mặt nạ cho phép bạn xác định dữ liệu nhạy cảm trong các nguồn sau:
  • Tải trọng XML: Khi sử dụng vai trò này, bạn có thể xác định các phần tử XML sẽ được lọc khỏi yêu cầu hoặc tải trọng tin nhắn phản hồi.
  • Tải trọng JSON: Bằng cách sử dụng JSONPath, bạn xác định các thuộc tính JSON cần lọc tải trọng của tin nhắn yêu cầu hoặc tin nhắn phản hồi.
  • Biến luồng: Bạn có thể chỉ định một danh sách các biến cần được ẩn giấu trong bản gỡ lỗi đầu ra. Khi bạn chỉ định request.content, response.content, hoặc message.content biến luồng, thì nội dung yêu cầu/phản hồi cũng là bị che kín.

Cấu trúc cơ bản của một cấu hình mặt nạ được thể hiện qua phần biểu diễn XML sau đây:

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

Định cấu hình mặt nạ tài nguyên cấu hình

Xác định cấu hình mặt nạ bằng cách sử dụng các phần tử sau.

Tên trường Mô tả Mặc định Bắt buộc?
XPathsRequest Danh sách các biểu thức vai trò sẽ được đánh giá theo các tải trọng XML (nếu có) trong đường dẫn yêu cầu. Mọi NETWORK được phân giải thành công sẽ dẫn đến giá trị của XML đang bị che giấu. Không áp dụng Không
XPathsResponse Danh sách các biểu thức vai trò sẽ được đánh giá theo các tải trọng XML (nếu có) trong đường dẫn phản hồi. Mọi NETWORK được phân giải thành công sẽ dẫn đến giá trị của XML đang bị che giấu. Không áp dụng Không
JSONPathsRequest Danh sách các biểu thức JSONPath sẽ được đánh giá theo các tải trọng JSON (nếu có) trong đường dẫn yêu cầu. Mọi JSONPath được phân giải thành công đều sẽ dẫn đến giá trị của Thuộc tính JSON đang được che giấu. Không áp dụng Không
JSONPathsResponse Danh sách các biểu thức JSONPath sẽ được đánh giá theo các tải trọng JSON (nếu có) trong đường dẫn phản hồi. Mọi JSONPath được phân giải thành công đều sẽ dẫn đến giá trị của Thuộc tính JSON đang được che giấu. Không áp dụng Không
XPathsFault Danh sách các biểu thức vai trò sẽ được đánh giá theo các tải trọng XML (nếu có) trong luồng lỗi (sẽ thực thi nếu lỗi được tạo ra tại bất kỳ điểm nào trong luồng). Bất kỳ điện thoại nào có thành công sẽ dẫn đến việc giá trị của phần tử XML bị che khuất. Không áp dụng Không
JSONPathsFault Danh sách các biểu thức JSON sẽ được đánh giá theo các tải trọng JSON (nếu có) trong luồng lỗi (sẽ thực thi nếu lỗi được tạo ra tại bất kỳ điểm nào trong luồng). Mọi JSONPath giải quyết thành công sẽ dẫn đến việc giá trị của thuộc tính JSON bị che giấu. Không áp dụng Không
Biến

Danh sách các biến (được xác định trước hoặc tuỳ chỉnh) có giá trị sẽ được che đi. Đối với danh sách biến mặc định, hãy xem phần Tham chiếu biến.

Không áp dụng Không

API cấu hình mặt nạ

Cấu hình mặt nạ được xác định là các tệp có định dạng XML hoặc JSON mà bạn tải lên và tải xuống bằng API quản lý RESTful. Để xem danh sách đầy đủ các API che giấu dữ liệu, hãy xem bài viết Mặt nạ dữ liệu.

Để xem các cấu hình mặt nạ hiện có, bạn chỉ cần gọi tài nguyên API /maskconfigs trong tổ chức của bạn:

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

Ví dụ này minh hoạ cú pháp Cơ bản để xác thực. Bạn có thể sử dụng các loại xác thực khác, chẳng hạn như Oauth2 hoặc SAML.

Để xem các cấu hình mặt nạ được xác định cho các proxy API cụ thể, bạn có thể gọi hàm API /maskconfigs:

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

Để xem một cấu hình mặt nạ cụ thể, hãy chỉ định tên của mặt nạ:

$ 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

Để tạo một cấu hình mặt nạ, hãy sử dụng động từ POST để gửi tải trọng xác định mặt nạ cấu hình:

$ 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
Cách tạo cấu hình mặt nạ trong phạm vi một proxy API cụ thể:
$ 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

Bạn có thể xoá cấu hình mặt nạ bằng cách sử dụng động từ DELETE:

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

Ví dụ này minh hoạ cú pháp Cơ bản để xác thực. Bạn có thể sử dụng các loại xác thực khác, chẳng hạn như Oauth2 hoặc SAML.

Phản hồi cho thao tác DELETE là một mã HTTP 204 không có thông báo nội dung.

Tạo mặt nạ cho không gian tên XML

Cấu hình mặt nạ không yêu cầu phần tử <Namespace> trong XPATH trừ phi không gian tên được xác định trong tải trọng XML. Điều này cũng đúng nếu tải trọng XML đều sử dụng không gian tên mặc định.

Ví dụ: tải trọng XML không xác định không gian tên:

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

Do đó, cấu hình mặt nạ không yêu cầu phần tử <Namespace>:

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

Nếu tải trọng XML chứa một không gian tên và tiền tố:

<myco:employee xmlns:myco="http://example.com">
    <myco:name>xyz</myco:name>
    <myco:age>50</myco:age>
</myco:employee>

Sau đó, định nghĩa cấu hình mặt nạ sẽ chứa <Namespace> phần tử:

<MaskDataConfiguration>
    <Namespaces>
        <Namespace prefix="myco">http://example.com</Namespace>
    </Namespaces>
    <XPathsRequest>
        <XPathRequest>/myco:employee/myco:name</XPathRequest>
    <XPathsRequest>
</MaskDataConfiguration>

Nếu Tải trọng XML có không gian tên nhưng không có tiền tố, tức là không gian tên mặc định:

<employee xmlns="http://example.com">
    <name>xyz</name>
    <age>50</age>
</employee>

Sau đó, cấu hình mặt nạ vẫn phải chứa phần tử <Namespace>:

<MaskDataConfiguration>
    <Namespaces>
        <Namespace prefix="myco">http://example.com</Namespace>
    </Namespaces>
    <XPathsRequest>
        <XPathRequest>/myco:employee/myco:name</XPathRequest>
    <XPathsRequest>
</MaskDataConfiguration>