Data masking is a technique whereby sensitive data is obscured in some way to render it safe and
to protect the actual data while having a functional substitute for occasions when the real data is
not required.
This policy is used to mask sensitive data at the application level. At the application level you
must have an Identify and Access policy configured to identify the application for which the masking
is applied. If no application is specified then it will be applied for all the other requests.
Fields can be masked or filtered in the request messages received. You can configure the masking
criteria as required for the XPath, JSONPath, and Regex expressions based on the content-type. This
policy can also be applied at the API scope level.
Note:
Data masking cannot be performed for:
- Payloads that are sent as streams.
- Incoming headers from the client.
The table lists the content-type and masking criteria mapping.
| Content-type |
Masking Criteria |
| application/xml text/xml
text/html
|
XPath |
| application/json application/json/badgerfish
|
JSONPath |
| text/plain |
Regex |
The table lists the masking criteria properties that you can configure to mask the data in the
request messages received:
| Property |
Description |
| Consumer Applications
|
Optional. Specifies the applications for which the masking criterion has to be
applied. Start typing the application name, select the application from the type-ahead search
results displayed, and click +Add to add one or more applications.
For example: If there is a DataMasking(DM1) criteria created for application1 a second
DataMasking(DM2) for application2 and a third DataMasking(DM3) with out any application, then for a
request that comes from consumer1 the masking criteria DM1 is applied, for a request that comes from
consumer2 DM2 is applied. If a request comes with out any application or from any other application
except application1 and application2 DM3 is applied.
You can use the delete icon to delete the added applications from the list.
|
| XPath: Specifies the masking criteria for
XPath expressions in the request messages. |
|
Masking Criteria
|
Click Add masking criteria and provide the following
information and click Add:
- Query expression. Specify the
query expression that has to be masked or filtered.
- Masking Type. Specifies the type
of masking required. You select either Mask or Filter.
Selecting Mask replaces the value with the given value (the default value
being ********). Selecting Filter removes the field completely.
- Mask Value. Appears only if you
have selected the Masking Type as Mask. Provide a mask
value.
You can add multiple masking criteria.
As Query expression
and Mask Value properties support variable framework, you can use the
available variables.
In case of query expression, if you provide variable syntax, the XPath
is applied on the payload using the value that is resolved from the variable given.
For
example, if you provide a query expression as ${request.headers.myxpath} and the
corresponding mask value as ${request.headers.var1} , and if the incoming request
header myxpath is configured with value //ns:cardNumber,
then the card number derived from the payload is masked with the header value in
var1 .
For details about the variables available in webMethods API Gateway, see
Variables Available in API Gateway.
- Namespace. Specifies the
following Namespace information:
- Namespace Prefix. The namespace
prefix of the payload expression to be validated.
- Namespace URI. The namespace URI
of the payload expression to be validated.
Note: You can add multiple namespace prefix and URI by clicking +Add.
|
| JSONPath: This is applicable only for
REST API. Specifies the masking criteria for JSONPath expressions in the request messages. |
| Masking Criteria
|
Click Add masking criteria and provide the following
information and click Add:
- Query expression. Specify the
query expression that has to be masked or filtered.
- Masking Type. Specifies the type
of masking required. You select either Mask or Filter.
Selecting Mask replaces the value with the given value (the default value
being ********). Selecting Filter removes the field completely.
- Mask Value. Appears only if you
have selected the Masking Type as Mask. Provide a mask
value.
As Query expression and Mask Value
properties support variable framework, you can use the available variables.
In case of query
expression, if you provide variable syntax, the JSONPath is applied on the payload using the value
that is resolved from the variable given.
For example, if you provide a query expression
as ${request.headers.myjsonpath} and the corresponding mask value as
${request.headers.var1} , and if the incoming request header
myjsonpath is configured with value $.cardNumber, then the
card number derived from the payload is masked with the header value in var1
.
For details about the variables available in webMethods API Gateway, see
Variables Available in API Gateway.
|
| Regex: Specifies the masking criteria for
regular expressions in the request messages. |
| Masking Criteria
|
Click Add masking criteria and provide the following
information and click Add:
- Query expression. Specify the
query expression that has to be masked or filtered.
- Masking Type. Specifies the type
of masking required. You select either Mask or Filter.
Selecting Mask replaces the value with the given value (the default value
being ********). Selecting Filter removes the field completely.
- Mask Value. Appears only if you
have selected the Masking Type as Mask. Provide a mask
value.
As Query expression and Mask Value
properties support variable framework, you can use the available variables.
In case of query
expression, if you provide variable syntax, the regex is applied on the payload using the value that
is resolved from the variable given.
For example, if you provide a query expression
as ${request.headers.myregex} and the corresponding mask value as
${request.headers.var1} , then the regex is applied using the value configured in
the request header myregex and the derived value is masked with the header value in
var1.
For details about the variables available in webMethods API Gateway, see
Variables Available in API Gateway.
|
| Apply for transaction Logging
|
Select this option to apply masking criteria for transactional logs. Note:
For REST enabled SOAP services
- Use JSONPath. To mask the incoming request of application/json
content-type.
- Use XPath of transformed SOAP request. To mask native service
request.
|
| Apply for payload
|
Select this option to apply masking criteria for request payload in the
following scenarios:
- incoming request from the client.
- outgoing request to the native service.
|