查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
在 Edge 中對 API 呼叫進行偵錯時,內容有時可能會包含機密資料,例如 需要遮蓋的信用卡或個人識別資訊 (PHI)。
Edge 提供多種隱藏或遮蓋機密資料的方式 Trace 和偵錯工作階段。
隱藏機密資料
如果不想在 Trace 工具和偵錯工作階段中顯示機密資料,您可以建立
自訂變數加上「private.
」前置字元
舉例來說,使用鍵/值對應作業政策從 加密鍵/值對應,請按照下列格式設定變數名稱格式,確保值不會顯示 在 Trace 或偵錯工作階段中:
<Get assignTo="private.hiddenData">
隱藏敏感變數是資料遮罩的替代做法,詳情請見下文。 隱藏和遮蓋的差異在於隱藏變數完全不會顯示,並遮蓋 在 Trace 和偵錯工作階段中,系統會將值替換為星號。
不含「private.
」的變數前置字串會以明文顯示在 Trace 中
偵錯工作階段 (即使資料來自加密的資料儲存庫等加密金鑰值)
。如要遮蓋這些值,請使用下文的遮罩功能。
遮蓋機密資料
Edge 可讓您定義「遮罩設定」遮蓋追蹤記錄和偵錯工作階段中的特定資料。 遮蓋設定可以全域 (在機構層級) 或本機 (透過 API) 指定 Proxy 層級)。
資料遮蓋後,追蹤記錄輸出內容中的星號就會替換成星號。例如:
<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 運算式清單 要求路徑所有成功解析的 XPath 都會產生 XML 的值 元素就會受到遮蓋。 | 不適用 | 否 |
XPathsResponse | 根據 XML 酬載 (如果有的話) 評估的 XPath 運算式清單 回應路徑所有成功解析的 XPath 都會產生 XML 的值 元素就會受到遮蓋。 | 不適用 | 否 |
JSONPathsRequest | JSONPath 運算式清單,系統將會根據 JSON 酬載 (如有) 評估, 要求路徑。所有成功解析的 JSONPath 都會產生 JSON 屬性遭到遮蓋。 | 不適用 | 否 |
JSONPathsResponse | JSONPath 運算式清單,系統將會根據 JSON 酬載 (如有) 評估, 回應路徑所有成功解析的 JSONPath 都會產生 JSON 屬性遭到遮蓋。 | 不適用 | 否 |
XPathsFault | 根據 XML 酬載 (如果有的話) 評估的 XPath 運算式清單 錯誤流程 (如果流程中的任何時間點擲回錯誤,就會執行此流程)。任何符合以下條件的 XPath 成功解析後,系統會遮蓋 XML 元素的值。 | 不適用 | 否 |
JSONPathsFault | 一組 JSON 運算式清單,系統會依據 JSON 酬載 (如有) 評估, 錯誤流程 (如果流程中的任何時間點擲回錯誤,就會執行此流程)。任何 JSONPath 系統會遮蓋 JSON 屬性值。 | 不適用 | 否 |
變數 |
系統將對其值進行遮蓋的變數 (預先定義或自訂) 清單。換 預設變數清單,請參閱變數參考資料。 |
不適用 | 否 |
遮蓋設定 API
遮罩設定是由您上傳和下載的 XML 或 JSON 格式檔案定義 擷取資訊如需資料遮蓋 API 的完整清單,請參閱資料遮罩。
如要查看現有的遮蓋設定,只要呼叫 API 資源即可
貴機構的 /maskconfigs
:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
這個範例說明基本語法 進行驗證。您也可以使用其他類型的驗證方法,例如 Oauth2 或 「SAML」SAML。
如要查看為特定 API Proxy 定義的遮罩設定,請呼叫
/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 Proxy 的遮罩設定:
$ 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」SAML。
DELETE 作業的回應是 HTTP 代碼 204
,沒有訊息
內容。
XML 命名空間遮蓋
遮罩設定不需要 XPATH 中的 <Namespace>
元素
除非已在 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>