Web Application Firewall Developers Guide
Web Application Firewall Developers Guide
Version 3.8.0
Version 3.8.0
Note
Before using this information and the product it supports, read the information in Notices and trademarks on page 173.
Contents
Preface . . . . . . . . . . . . . . vii
Who should read this document . . . . . . . vii
How this document is organized . . . . . . . vii
Publications . . . . . . . . . . . . . . viii
Installation and upgrade documentation . . . viii
Administration documentation . . . . . . viii
Development documentation. . . . . . . . ix
Reference documentation . . . . . . . . . ix
Integration documentation . . . . . . . . ix
Problem determination documentation . . . . x
Supplemental documentation . . . . . . . . x
External resources . . . . . . . . . . . . x
File naming guidelines . . . . . . . . . . . xi
Object naming guidelines. . . . . . . . . . xii
Typeface conventions . . . . . . . . . . . xii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
20
20
21
22
24
24
24
25
25
26
.
.
.
.
. 26
. 27
Chapter 1. Introduction . . . . . . . . 1
Scenarios
Scenario
Scenario
Scenario
. . . . . . . . . . .
one: College enrollment form .
two: Benefits management site
three: Trading site . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
30
30
31
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
35
35
35
36
36
36
37
37
37
37
37
38
38
39
39
40
40
40
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
13
14
15
16
17
17
17
19
.
.
.
.
.
.
.
.
41
42
43
44
44
45
47
48
. 48
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
49
50
50
50
52
52
53
53
54
54
55
56
iv
157
Service variables . . . . . . . . .
General service variables . . . . .
Multi-Protocol Gateway and Web Service
service variables . . . . . . . .
Configuration services service variables
Load balancer service variables . . .
Legacy MQ-specific service variables .
Multistep variables . . . . . . .
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
120
121
122
123
123
126
127
127
128
128
129
129
130
130
131
131
132
132
133
134
136
137
138
139
139
139
140
.
.
.
.
.
.
141
141
141
142
143
144
144
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
145
148
148
148
149
150
150
151
151
151
152
153
153
153
154
. . .
. . .
Proxy
. . .
. . .
. . .
. . .
. . .
158
158
158
159
160
160
161
Transaction variables . . . . . . . . . . .
Asynchronous transaction variables . . . . .
Error handling transaction variables . . . . .
Headers transaction variables . . . . . . .
Persistent connection transaction variables. . .
Routing transaction variables . . . . . . .
URL-based transaction variables . . . . . .
Web Services Management transaction variables
Extension variables . . . . . . . . . . .
System variables . . . . . . . . . . . .
List of available variables . . . . . . . . .
162
162
163
164
164
165
165
166
166
168
169
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 171
. 171
. 172
. 173
Index . . . . . . . . . . . . . . . 175
Contents
vi
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Preface
IBM WebSphere DataPower SOA Appliances are purpose-built, easy-to-deploy
network appliances that simplify, help secure, and accelerate your XML and Web
Services deployments while extending your SOA infrastructure. These appliances
offer an innovative, pragmatic approach to harness the power of SOA while
simultaneously enabling you to leverage the value of your existing application,
security, and networking infrastructure investments.
vii
Publications
The IBM WebSphere DataPower library is organized into the following categories:
v Installation and upgrade documentation
v Administration documentation
v Development documentation on page ix
v Reference documentation on page ix
v Integration documentation on page ix
v Problem determination documentation on page x
v Supplemental documentation on page x
You can access and download documents in the DataPower library from the IBM
WebSphere DataPower Product Documentation Portal. These details are discussed
in technical flash 1377654.
http://www.ibm.com/support/docview.wss?rs=2362&uid=swg21377654
Administration documentation
v IBM WebSphere DataPower SOA Appliances: Appliance Overview
Provides an introduction and understanding of the IBM Websphere DataPower
SOA appliances.
v IBM WebSphere DataPower Integration Appliance XI50: Administrators Guide
viii
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Provides instructions for using the DataPower GUI for managing user access,
network access, appliance configuration and system configuration of the
appliance.
v IBM WebSphere DataPower SOA Appliances: Hardware Security Module Guide
A user guide for using a Hardware Security Module (HSM) installed in the
appliance.
Development documentation
v IBM WebSphere DataPower Integration Appliance XI50: XSL Accelerator Developers
Guide
Provides instructions for using the WebGUI to configure XSL Proxy and XSL
Coprocessor services.
v IBM WebSphere DataPower Integration Appliance XI50: XML Firewall Developers
Guide
Provides instructions for using the WebGUI to configure XML Firewall services.
v IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall
Developers Guide
Provides instructions for using the WebGUI to configure Web Application
Firewall services.
v IBM WebSphere DataPower Integration Appliance XI50: Multi-Protocol Gateway
Developers Guide
Provides instructions for using the WebGUI to configure Multiple-Protocol
Gateway services.
v IBM WebSphere DataPower Integration Appliance XI50: Web Service Proxy Developers
Guide
Provides instructions for using the WebGUI to configure Web Service Proxy
services.
Reference documentation
v IBM WebSphere DataPower Integration Appliance XI50: Command Reference
Product-specific documentation for using commands from the command line.
The documentation provides an alphabetic list of all commands with syntax and
functional descriptions.
v IBM WebSphere DataPower SOA Appliances: Extension Elements and Functions
Catalog
Provides programming information about the usage of DataPower XSLT
extension elements and extension functions.
Integration documentation
The following documents are available for managing the integration of related
products that can be associated with the DataPower appliance:
v Integrating with Tivoli Composite Application Management for SOA
Provides concepts for integrating the DataPower appliance with IBM Tivoli
Composite Application Management for SOA.
v IBM WebSphere DataPower SOA Appliances: Integrating with Tivoli Security Policy
Manager
Provides detailed information about integrating the DataPower appliance with
IBM Tivoli Security Policy Manager.
v IBM WebSphere DataPower SOA Appliances: Integrating with WebSphere MQ
Preface
ix
Explains the concepts and common use patterns for connecting DataPower
services to WebSphere MQ systems.
v IBM WebSphere DataPower SOA Appliances: Integrating with WebSphere
Transformation Extender
Provides detailed information about integrating the DataPower appliance with
WebSphere Transformer Extender.
Supplemental documentation
v Converting between JSON and JSONx
Provides information about and procedures for converting between JavaScript
Object Notation (JSON) and JSONx. JSONx is the JSON as XML.
v Configuring DoD PKI
Provides conceptual information about and procedures for configuring the
DataPower appliance with Department of Defense (DoD) Public Key
Infrastructure (PKI).
v Optimizing through Streaming
Provides conceptual information about and procedures for optimizing the
DataPower appliance through streaming.
v Securing the Last Mile
Provides conceptual information about and procedures for understanding the
DataPower appliance while securing the last mile.
v Understanding LTPA
Provides conceptual information about how the DataPower appliance can use
Lightweight Third Party Authentication (LTPA).
v Understanding SPNEGO
Provides conceptual information about how the DataPower appliance can use
Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO). SPNEGO is
also referred to as Integrated Windows Authentication.
v Understanding Web Services Policy
Provides conceptual information about how the DataPower appliance can use
Web Services Policy (WS-Policy).
v Understanding WS-Addressing
Provides conceptual information about how the DataPower appliance can use
WS-Addressing.
External resources
Beyond the online help, no other informational resource is available on the
appliance. You can access the following external resources if a problem occurs or if
you need help.
DataPower Product Documentation Portal
You can access and download documents in the DataPower library using
the details in technical flash 1377654.
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
http://www.ibm.com/support/docview.wss?rs=2362
&uid=swg21377654
DataPower product Web site
http://www.ibm.com/software/integration/datapower
This Web site provides information about the appliances in the DataPower
portfolio. From this page, you can access the product library, news, and
support areas. The Support link, in particular, has important flash notes
plus a wealth of pointers to Redbooks, frequently asked questions, and
troubleshooting information.
An important link of this page on the DataPower Support page is
Firmware and documentation download. From this page, you can access
and download updated documentation and firmware images for your
particular appliance. This page also provides directions for getting
assistance from IBM Support.
Redbooks Web site
http://www.redbooks.ibm.com
This Web site provides a search field where you can query for documents
that are related to DataPower products. A query against the term
DataPower yields a number of resources in the Redbooks series. These
documents relate to integrating DataPower products with other products in
the IBM ESB portfolio.
developerWorks
http://www.ibm.com/developerworks
This Web site yields an extensive list of articles about DataPower products.
DataPower discussion forum
http://www.ibm.com/developerworks/forums/forum.jspa?forumID=1198
This forum is the only discussion area that is officially sanctioned by IBM.
In this forum, you can find members from the IBM technical community
(technical sales, engineering, support, and field consultants) to answer
questions on a continual basis. This forum is not formal product support.
Answers to the questions that you post to this forum are on an ad-hoc
basis.
xi
v . (period)
Note: Names cannot contain two consecutive periods (..).
Typeface conventions
The following typeface conventions are used in the documentation:
bold
italics
monospaced
Identifies user-supplied input or computer output.
xii
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Chapter 1. Introduction
A Web applications firewall provides security, proxy, threat mediation, and content
processing services for a Web-based application (such as enrollment, benefits
management, ticket sales, or a trading system). The Web applications firewall is
designed to handle traffic that is primarily URL-encoded HTTP POST operations
(or HTTP GET with or without Query Strings) and not primarily Web services
SOAP-based XML payloads (although XML traffic can be handled).
The Web application firewall offers:
v Destination Service Proxy
v SSL Termination
v Authentication and Authorization Service
v Rate Limiting
v Session Start and Timeout Enforcement
v URL-Encoded Name-Value Input Processing
v
v
v
v
v
Scenarios
This section provides scenarios using the Web Application Firewall service. For
each scenario, there is a requirement statement followed by the recommended
configuration to meet those requirements.
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
v
v
v
v
Cookie Required
Start Page Filtering
Session Management Timeout
Responses Vetted for Correct Name-Value Pairs
Chapter 1. Introduction
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Welcome screen
After successfully logging in, the WebGUI displays its Welcome screen. Visibility of
objects in the WebGUI is controlled by a combination of the Role-based
management (RBM) object and whether the administrator is in the default domain
or an application domain.
Input
When the WebGUI displays this type of input field, you can specify the referenced
object in the following ways:
v Select the name of an existing referenced object from the list.
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
v Use the + button to create a new referenced object. When created, the input field
contains the name of the newly created referenced object.
v Use the ... button to modify the referenced object whose name is in the input
field. When modified, the input field retains the name of the referenced object.
When you click the + button or ... button, the WebGUI launches a new window
that displays the configuration screen for that type of object.
Input
Delete
Add
When the WebGUI displays this type of list, you can manage referenced objects in
the following ways:
v Select the name of an existing referenced object from the list. Click Add to add it
to the list of referenced objects.
v Use the + button to create a new referenced object. When created, the input field
contains the name of the new referenced object. Click Add to add it to the list of
referenced objects.
v Use the ... button to modify the referenced object whose name is in the input
field. When modified, the input field retains the name of the referenced object.
Click Add to add it to the list of referenced objects.
v Select the name of a referenced object from the list (either the input field or the
list of referenced objects). Click Delete to remove it from the list of referenced
objects.
When you click the + button or ... button, the WebGUI launches a new window
that displays the configuration screen for that type of object.
4. Click Cancel.
Deleting an object
Exporting the configuration of an object
Viewing configuration-specific messages of an object
Viewing status of an object
Cloning a service
Accessing probe captures
Canceling changes
As you use the WebGUI to manage objects, click Cancel to not save the current
changes to the running configuration. If you click Cancel, you return to object
catalog and lose all changes.
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Resetting objects
Independent of whether the settings are saved to the configuration, you can reset
an object to its default configuration.
Use the following procedure to revert changes to a specific object:
1. Display the catalog for the object. The catalog lists the available instances of
this object.
2. Click the name of the object for which to reset to display the configuration
screen.
3. Click Undo.
4. Follow the prompts.
Deleting objects
You might want to delete objects that are no longer needed. If no other object
depends on the object to be deleted, you can delete it at any time. Because a
DataPower service is a top-level object, you can delete it at any time. Conversely,
you cannot delete an object that is active and that is in use by a higher-level object.
Use the following procedure to delete an object:
1. Display the catalog for the object. The catalog lists the available instances of
this object.
2. Click the name of the object to delete to display the configuration screen.
3. Click Delete.
4. Follow the prompts.
Deleting an object deletes that object only. Deleting an object does not delete any
referenced object.
Exporting objects
Use the following procedure to export an object:
1. Display the catalog for the object. The catalog lists the available instances of
this object.
2. Click the name of the object to export to display the configuration screen.
3. Click Export.
4. Follow the prompts.
1. Display the catalog for the object. The catalog lists the available instances of
this object.
2. Click the name of the instance.
3. Click View Logs.
Cloning services
You might want to create a service that is similar to an existing service. For
example, you need two equivalent services, but each service communicates with a
different remote server. In these cases, you can create a clone of an existing service
and edit the clone. The cloning process can expedite the creation of a similar
service.
Use the following procedure to clone a server:
1. Display the catalog for the service. The catalog lists the available instances of
this service.
2.
3.
4.
5.
Click the name of the service to clone to display the configuration screen.
Click Clone.
When the screen refreshes, specify the name of the clone.
Specify the Ethernet interface that the service monitors for incoming client
requests in the Device Address field. Use the default address (0.0.0.0) to specify
all interfaces.
6. Specify the Ethernet port that the service monitors for incoming client requests
in the Device Port field.
7. As necessary, edit the other properties.
8. Click Apply to save the changes to the running configuration.
10
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
9. Optional: Click Save Config to save the changes to the startup configuration.
11
12
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
13
5. Store the signed certificate on the box and create a Certificate object that
references it.
6. Optionally, create an Identification Credentials object that references the key
and certificate objects.
When you create the Identification Credentials object, the key-certificate pair is
validated to ensure that pair is ready for use.
off
(Default) Create the entry in forward RDN order.
b. Optionally specify a country name in the Country Name (C) field.
c. Optionally specify a state or province name in the State or Province (ST)
field.
d. Optionally specify a locality name in the Locality (L) field.
e. Optionally specify the name of an organization in the Organization (O)
field.
f. Optionally specify the name of an organizational unit in the Organizational
Unit (OU) field.
3.
4.
5.
6.
7.
8. Use the Export Private Key toggle to indicate whether the action writes the
key file to the temporary: directory.
14
on
off
(Default) Does not write the key file to the temporary: directory.
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
9. Use the Generate Self-Signed Certificate toggle to indicate whether the action
creates a self-signed certificate that matches the key.
on
off
Does not create a self-signed certificate.
10. Use the Export Self-Signed Certificate toggle to indicate whether the action
writes the self-signed certificate to the temporary: directory.
on
off
Does not write the self-signed certificate to the temporary: directory.
11. Use the Generate Key and Certificate Objects toggle to indicate whether the
action automatically creates the objects from the generated files.
on
off
Does not create the objects from the generated files.
12. Specify the name for the Key and Certificate objects in the Object Name field.
Leave blank to allow the action to generate the names from from the input
information (based on the Common Name (CN) or File Name property).
13. Specify the name of an existing Key object in the Using Existing Key Object
field. If supplied and valid, the action generates a new certificate and a new
Certificate Signing Request (CSR) that is based on the key in the identified
Key object. In this case, the appliance does not generate a new key.
14. Click Generate Key to generate a private key and, if requested, a self-signed
certificate. A CSR is created automatically.
15. Follow the prompts.
The CSR can be submitted to a certificate authority (CA) to receive a certificate that
is based on this private key. This action creates the following files and objects:
v Creates the private key file in the cert: directory; for example,
cert:///sample-privkey.pem
v Creates the CSR in the temporary: directory; for example, temporary:///
sample.csr
v If Generate Self-Signed Certificate is enabled, creates a self-signed certificate in
the cert: directory; for example, cert:///sample-sscert.pem
v If Export Self-Signed Certificate is enabled, creates a copy of the self-signed
certificate in the temporary: directory; for example, temporary:///samplesscert.pem
v If Generate Key and Certificate Objects is enabled, creates a Key object and a
Certificate object
If the action creates a self-signed certificate, you can use this certificate-key pair for
the following purposes:
v Establish Identification Credentials
v Encrypt or decrypt XML documents
15
16
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Password
Optionally specify a password for accessing the file. Any entity or
agent needing to access the file must supply this password.
Password Alias
The password can optionally be given an alias, providing a level of
indirection and thus additional security. If an alias is established, use
the alias instead of the actual password.
4. Click Import Crypto Object.
An object with the specified name is created. Otherwise, an error is returned.
17
nssclient
Specifies an existing NSS client object.
ZOSCERTLABEL
Specifies the label name of an existing SAF certificate
residing on the z/OS system.
Password
Depending of business security policies, provide one of the following:
v If local security policies provide for password-protected keys, specify
the password (or a password alias).
v If local polices do not support password protection, leave blank.
v If key files are protected by a plaintext password, specify the
password.
Note: Plaintext passwords appear as such in the configuration script.
v If key files are protected by an aliased password, specify the alias.
The CLI provides a password-map command that uses a
locally-generated key to 3DES encrypt a password used to access a
private key file. The command maps the encrypted password to a
password alias in a password map file. The password map and the
locally-generated key are saved to separate files on the appliance.
Plaintext passwords are not stored in memory or saved on the
appliance.
Password Alias
Use the toggle to specify if the text entered in the Password field is a
plaintext password or a password alias.
on
off
on
18
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
19
Admin State
Retain the default setting. To place the object in an inactive
administrative state, click disabled.
Crypto Key
Access a list of all Key objects, and select the Key object for this
Identification Credentials. Refer to Defining Key objects on page 21
for more information.
Certificate
Access a list of all Certificate objects, and select the Certificate object for
this Identification Credentials. Refer to Defining Certificate objects on
page 17 for more information.
Intermediate CA Certificate
Intermediate CA certificates might be required when the CA that is
signing this certificate is not widely-recognized. If the intermediate CA
certificate is also signed by a less recognized CA, an additional
intermediate CA certificate might be required for that CA. You can
specify as many intermediate certificates as are required.
If necessary, use the list of available Certificate objects to establish a
verifiable trust-chain. A trust-chain consists of one or more Certification
Authority (CA) certificates and provides a linked path from the
certificate that is in the Identification Credentials to a CA that is trusted
by a remote appliance. The trust chain enables the appliance to
authenticate the certificate.
4. Click Apply to save the changes to the running configuration.
5. Optional: Click Save Config to save the changes to the startup configuration.
Use a key object created with a private key that is retrieved from z/OS the same
way you use a key object created with a local private key. Use a key object created
with a private key that is stored on z/OS to make requests for decryption or
signature generation on the z/OS system.
To create key objects, the DataPower appliance communicates with z/OS using a
z/OS NSS client object. The z/OS NSS client object must be defined and in the up
operational state when you create key objects.
20
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
To use a retrieved z/OS key, the key must be a SAF key that is not stored in ICSF.
The SAF key is cached locally on the appliance until the associated application
domain or the appliance is restarted.
To use a remote z/OS key, the key must be a SAF key that is stored in ICSF. The
SAF key is never taken off of your z/OS system. Therefore, the z/OS NSS client
object must be in the up operational state when using remote key objects. For more
information about the z/OS NSS client object, see z/OS NSS Client on page 153.
To access and use z/OS keys, the z/OS NSS client object on DataPower must have
permission to access the z/OS keys. See your z/OS documentation for more
information on these settings.
nssclient
Specifies an existing NSS client object.
ZOSKEYLABEL
Specifies the label name of an existing SAF key residing on the
z/OS system. A saf-key:// must be a SAF key that is not stored
in ICSF. A saf-remote-key:// must be a SAF key that is stored in
ICSF.
Password
Depending on business security policies, provide one of the following:
v If local security policies provide for password-protected keys, specify
the password (or a password alias).
v If local polices do not support password protection, leave blank.
Chapter 3. Securing communication
21
off
22
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
DEFAULT
Includes all cipher suites, except for the following ciphers and
cipher suites:
v eNULL ciphers
v Cipher suites that use DH authentication
v Cipher suites that contain the RC4, RSA, and SSL version 2
ciphers
HIGH Includes all high encryption cipher suites. These ciphers
support a key length in excess of 128 bits.
MEDIUM
Includes all medium encryption cipher suites. These ciphers
support a key length of 128 bits.
LOW
EXPORT
Includes all cipher suites that support a key length of 40 or 56 bits
and are eligible for export outside of the United States.
For a detailed list of ciphers, refer to the profile command in the
product-specific version of the Command Reference.
Options
Use the check boxes to disable support for SSL versions and variants. By
default, SSL Version 2, SSL Version 3, and Transaction Level Security
(TLS) Version 1 are enabled.
v To disable SSL Versions 2, click Disable-SSLv2.
v To disable SSL Version 3, click Disable-SSLv3.
v To disable TLS Version 1, click Disable-TLSv1.
Send Client CA List
Use the toggle to enable the transmission of a Client CA List during the
SSL handshake.
Note: Transmission of a Client CA List is meaningful only when this
Profile object supports a reverse (or server) proxy and when this
Profile object has an assigned Validation Credentials.
on
off
23
24
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
off
11. Use the Always Request Client Authentication toggle to control when to
request SSL client authentication.
on
off
25
9. Specify the time that session-specific state data is maintained in the server
cache in the Server-side Session Cache Timeout field.
10. Specify the maximum size of the server-side cache in the Server-side Session
Cache Size field.
11. Use the Client-side Session Caching toggle to enable or disable client side
caching.
12. Use the Client Authentication is optional toggle to control when SSL client
authentication is optional.
on
on
off
Validation credentials
A Validation Credentials consists of a list of certificate objects. Validation
Credentials are used to validate the authenticity of received certificates and digital
signatures. You can create Validation Credentials with the following types of
credentials:
v All non-expiring, non-password-protected credentials
v Select credentials
Independent of which type of Validation Credentials, the creation starts at the
same location. To create any Validation Credential, select Objects Crypto
Validation Credentials.
26
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
To save the Validation Credentials to the startup configuration, click Save Config.
off
Require CRLs
When CRLs are checked during processing of the certificate chain,
determines whether the processing should fail when no CRL is available.
on
Processing fails.
off
27
The algorithm can end with an empty policy tree unless Policy
Constraints extensions in the chain require an explicit policy.
4. Click Apply to save the object to the running configuration and return to the
object catalog.
5. Optionally, click Save Config to save the object to the startup configuration.
off
28
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
6. Optional: Click Save Config to save the changes to the startup configuration.
29
30
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Advanced settings
The Timeout/Protocol configuration pane contains the predefined, advanced
settings that handle the majority of implementation scenarios. However, you might
need to make modification to meet your requirements. These settings are separated
into the following categories:
v Connection timeout
v Protocol
v Streaming
v Security
For details information about these settings, refer to the online help.
Table 1 lists the connection timeout setting that you can modify to meet the your
requirements.
Table 1. Advanced timeout settings for a Web Application Firewall
Label
Purpose
Table 2 lists the protocol setting that you can modify to meet the your
requirements.
Table 2. Advanced protocol settings for a Web Application Firewall
Label
Purpose
Service Priority
Follow Redirects
Table 3 lists the streaming setting that you can modify to meet the your
requirements.
Table 3. Advanced streaming settings for a Web Application Firewall
Label
Purpose
Table 4 on page 32 lists the security setting that you can modify to meet the your
requirements.
Chapter 4. Creating a Web application firewall from the Control Panel
31
32
Label
Purpose
Normalize URI
Request Security
Response Security
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
This encrypted directory contains private key and certificate files that
services use in the domain. You can add, delete, and view files, but you
cannot modify these files while in the domain. Each application domain
contains one cert: directory. This directory is not shared across domains.
chkpoints:
This directory contains the configuration checkpoint files for the appliance.
Each application domain contains one chkpoints: directory. This directory
is not shared across domains.
config:
This directory contains the configuration files for the appliance. Each
application domain contains one config: directory. This directory is not
shared across domains.
dpcert:
This encrypted directory contains files that the appliance itself uses. This
directory is available from the command line in the default domain only.
export:
This directory contains the exported configurations that are created with
the Export Configuration utility. Each application domain contains one
export: directory. This directory is not shared across domains.
image: This directory contains the firmware images (primary and secondary) for
the appliance. This directory is where firmware images are stored typically
during an upload or fetch operation. Each appliance contains only one
image: directory. This directory is available in the default domain only.
local:
This directory contains miscellaneous files that are used by the services
within the domain, such as XSL, XSD, and WSDL files. Each application
domain contains one local: directory. This directory can be made visible to
other domains. When viewed from other domains, the directory name
changes from local: to the name of the application domain.
logstore:
This directory contains log files that are stored for future reference.
Typically, the logging targets use the logtemp: directory for active logs. You
can move log files to the logstore: directory. Each application domain
contains one logstore: directory. This directory is not shared across
domains.
Copyright IBM Corp. 2002, 2009
33
logtemp:
This directory is the default location of log files, such as the
appliance-wide default log. This directory can hold only 13 MB. This
directory cannot be the destination of a copy. Each application domain
contains one logtemp: directory. This directory is not shared across
domains.
pubcert:
This encrypted directory contains the security certificates that are used
commonly by Web browsers. These certificates are used to establish
security credentials. Each appliance contains only one pubcert: directory.
This directory is shared across domains.
sharedcert:
This encrypted directory contains security certificates that are shared with
partners. Each appliance contains only one sharedcert: directory. This
directory is shared across domains. However, you must be in default
domain to create or upload keys and certificates.
store:
This directory contains example style sheets, default style sheets, and
schemas that are used by the local appliance. Do not modify the files in
this directory.
Each appliance contains only one store: directory. By default, this directory
is visible to all domains. You can make changes to the contents of this
directory from the default domain only.
The store: directory has the following subdirectories:
meta
msgcat
This subdirectory contains the message catalogs.
policies
This subdirectory contains the following subdirectories. The
contents of these subdirectories affect Web services policy.
custom
This subdirectory contains custom style sheets.
mappings
This subdirectory contains mapping style sheets.
templates
This subdirectory contains XML files.
profiles
This subdirectory contains style sheets that are used by DataPower
services.
schemas
This subdirectory contains schemas that are used by DataPower
services.
dp
34
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
pubcerts
This encrypted subdirectory contains files that are used by the
appliance itself. This subdirectory is available from the command
line only.
tasktemplates:
This directory contains the XSL files that define the display of specialized
WebGUI screens. Each appliance contains only one tasktemplates: directory.
This directory is visible to the default domain only.
temporary:
This directory is used as temporary disk space by processing rules. Each
application domain contains one temporary: directory. This directory is not
shared across domains.
Creating a subdirectory
Subdirectories can only be creates under the local: directory or one of its
subdirectories.
Follow these steps to create a subdirectory under the local: directory or one of its
subdirectories:
1. Launch the File Management utility. Refer to Launching the File Management
utility for details.
2. From the Action column, click Actions aligned with the directory for the
subdirectory to be created.
3.
4.
5.
6.
35
Deleting a directory
Directories can only be deleted in the local: directory or one of its subdirectories.
Follow these steps to delete a directory under the local: directory or one of its
subdirectories:
1. Launch the File Management utility. Refer to Launching the File Management
utility on page 35 for details.
2. From the Action column, click Actions aligned with the directory to be deleted.
3. Click Delete Directory. The File Management screen displays.
4. Click Confirm Delete. The File Management screen refreshes.
5. Click Continue. The File Management screen displays the top-level directories
only.
36
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Required software
JKS support requires the following software on the WebGUI workstation:
v Version 1.4.2 of the Java runtime environment (j2re1.4.2)
v SDK (j2sdk1.4.2)
v Internet Explorer
Note: You must have the JRE or Java SDK /bin path name in the Windows PATH
environment variable on the WebGUI workstation. The Java Key Store file
cannot reside on any of the local directories. It must be uploaded from a
workstation.
Granting permissions
In addition, the user must have the grant permission for the upload in the
.java.policy file on the workstation that contains the Java Key Store files. The
following example .java.policy file should be defined on the workstation
computer before starting the upload:
grant {
permission java.io.FilePermission "<<ALL FILES>>","read";
permission java.util.PropertyPermission "*", "read";
permission java.lang.RuntimePermission "accessClassInPackage.sun.*";
};
Navigate to the directory into which you want to upload the file.
Click Actions in that row to open the Directory Actions menu.
Click Upload Files to display the File Upload screen.
Click the Java Key Store radio button to display the JKS Upload screen.
Note: When you click the Java Key Store radio button, the Java Console of
the browser opens and shows whether the Java Key Store Access
37
Fetching files
Use the following procedure to retrieve a file from a remote URL (fetch) and store
that file in a specified directory on the appliance:
1. Launch the File Management utility. Refer to Launching the File Management
utility on page 35 for details.
2. Navigate to the directory into which you want to upload the file.
Click Actions in that row to open the Directory Actions menu.
Click Fetch Files to display the Fetch File screen.
Specify the location of the file in the Source URL field.
Specify the file name in the Save as field.
If the file already exists in the selected directory and you want to overwrite this
file, check the Overwrite Existing Files check box. If you do not select this
check box and the file already exists, the file is not uploaded.
8. Click Fetch.
9. When the appliance reports success, click Continue to return to the File
Management screen.
3.
4.
5.
6.
7.
The target directory now contains the retrieved file. To verify, use the procedure
described in Displaying directory contents on page 35.
Copying files
Use the following procedure to copy a file from one directory to another:
38
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
1. Launch the File Management utility. Refer to Launching the File Management
utility on page 35 for details.
2. Navigate to the directory that contains the files to be copied.
3. Select files by clicking the box adjacent to the file name.
4. Scroll to the top or bottom of the screen and click Copy to display the File
Copy screen.
5. From the New Directory Name list, select the target directory.
6. Specify the name for the file, if different, in the New File Name field.
7. If one of the selected files already exists in its associated target directory and
you want to overwrite this file, check the Overwrite Existing Files check box. If
you do not select this check box and the file already exists, the file is not
copied.
8. Click Confirm Copy to copy the files to the target directories.
9. When the appliance reports success, click Continue to return to the File
Management screen.
The target directories now contain the copied files. To verify that the files exist, use
the procedure described in Displaying directory contents on page 35.
Renaming files
Use the following procedure to rename a file:
1. Launch the File Management utility. Refer to Launching the File Management
utility on page 35 for details.
2. Navigate to the directory that contains the files to be copied.
3. Select files by clicking the box adjacent to the file name.
4. Click Rename to display the File Rename screen.
5. Specify the name of the file in the New File Name field.
6. If one of the selected files already exists in the target directory and you want to
overwrite this file, check the Overwrite Existing Files check box. If you do not
select this check box and the file already exists, the file is not copied.
7. Click Confirm Rename.
8. When the appliance reports success, click Continue to return to the File
Management screen.
The target directories now contain the renamed files. To verify that the files exist,
use the procedure described in Displaying directory contents on page 35.
Moving files
Use the following procedure to move a file from one directory to another:
1. Launch the File Management utility. Refer to Launching the File Management
utility on page 35 for details.
2.
3.
4.
5.
6.
39
Viewing files
Use the following procedure to view a text file:
1. Launch the File Management utility. Refer to Launching the File Management
utility on page 35 for details.
2. Navigate to the directory that contains the file.
3. Click the file to open a browser that contains the file.
When finished viewing the file, close the browser.
Editing files
Use the following procedure to edit a text file:
1. Launch the File Management utility. Refer to Launching the File Management
utility on page 35 for details.
2. Navigate to the directory that contains the files to be edited.
3. Select the file to be edited by clicking Edit in the row that is associated with
that file. The WebGUI displays a file preview.
4. Click Edit to change to Edit Mode.
5. Edit the file as required.
6. Click Submit to complete the edit process.
7. When the appliance reports success, click Close to return to the File
Management screen.
Deleting files
Use the following procedure to delete a file:
1. Launch the File Management utility. Refer to Launching the File Management
utility on page 35 for details.
2. Navigate to the directory that contains the files to be deleted.
3. Select files by clicking the box adjacent to the file name.
4. Scroll to the top or bottom of the screen and click Delete to display the Delete
File screen.
5. Click Confirm Delete to delete the files.
6. When the appliance reports success, click Continue to return to the File
Management screen.
The selected files were deleted. To verify that the files no longer exist, use the
procedure described in Displaying directory contents on page 35.
40
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
on
off
41
XML
off
Does not import the file if a file of the same name exists.
9. Use the Overwrite Objects toggle to control the overwrite behavior.
42
on
off
Does not import the objects if an objects of the same name exists.
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
off
Retains the original IP address in the configuration package.
12. Use the Import on Startup toggle to indicate whether to import the
configuration package at startup.
on
43
To ensure that all other objects and files are exported, use the admin account.
For any other user, only objects and files that are accessible to that user are
included in the export package.
To start a back up or export operation, select Administration Configuration
Export Configuration to display the initial Export Configuration screen. This
screen provides the following export options:
v Create a backup of the entire system
v Create a backup of one or more application domains
v Export configuration and files from the current domain
v Copy or move configuration and files between domains
Backing up domains
Best practice is to periodically back up all domains individually.
To back up configuration information for one or more application domains, follow
this procedure:
1. Select Administration Configuration Export Configuration to display the
Initial Export Configuration screen.
2. Select Create a backup of one or more application domains and click Next to
display the selection screen.
3. Provide the following inputs:
a. Optional: In the Comment field, enter a descriptive summary.
b. Optionally create or select the name of a Deployment Policy to accept, filter,
or modify a configuration during import.
44
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
c. The Export File Name defaults to export (.zip). If a file of this name exists
in the export: directory, it is overwritten.
d. Select the check boxes adjacent to each domain to export.
e. Click Next
When the backup completes, the file is in the export: directory. You can optionally
download the export file to your workstation.
Note: The Import Configuration utility requires that the export file resides on your
workstation.
4. Optionally click Download to download the file to your workstation.
5. Click Done to close this window and return to the Control Panel.
The export file can be accessed from the export: directory. If downloaded, the
export file is on your workstation.
45
46
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
The export file can be accessed from the export: directory. If downloaded, the
export file is on your workstation.
off
47
48
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
49
50
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Best practice when the goal is to add, modify or delete values in a configuration
package is to use a deployment policy while importing the configuration package.
Use the following procedure to import configuration data.
1. Select Administration Configuration Import Configuration to display the
Import Configuration window.
a. Use the From radio buttons to specify the import format.
XML Config
Imports configuration data as XML files.
ZIP Bundle
Imports configuration data in compressed ZIP format.
b. Retain the selection of the File radio button.
c. Click Browse to select the file to import.
d. Retain the selection of (none) for the Use Deployment Policy list. For more
information, refer to the Deployment policies on page 54.
e. Use the Rewrite Local Service Addresses toggle to control whether to
substitute IP addresses:
on
off
Does not allow local IP addresses to be rewritten.
2. Click Next to display the Select Application Domains for Import window. If
there are no objects in the configuration you are importing, skip to step 6c on
page 52.
When importing from any domain other than default, the imported
configuration applies only to the current domain. The WebGUI might display
an error message when importing data that was exported from the default
domain.
3. Select the desired domains. To select all domains, click All. To deselect selected
domains, click None. If a selected domain does not exist on the appliance, as
indicated, it will be created.
4. Click Next to display the Import Object Selection List window.
5. Select the objects to import.
Note: Click Save Config to save the configuration for each domain that
contains imported objects or files.
To effectively complete an appliance import (restore), use the admin
account. The appliance to be restored must also first be re-initialized
through the command line.
6. Click Next to display the Import Summary window, which details the contents
of the target file. In some cases, the summary might indicate differences in file
versions.
Note: Warnings can appear on this screen that alert you to a range of possible
conflicts that the imported configuration might cause. Depending on the
warning, you might want to create a new application domain, or you
might want to choose not to overwrite objects or files.
a. Select each item to overwrite. To select all item, click All. To deselect
selected items, click None. Only selected items are imported.
b. Click Import to initiate file transfer.
51
At the completion of the import process, the WebGUI displays the Object
Import Results window, which details the results.
c. Click Done to close this window.
If more than one domain is being imported, the Import Summary window is
displayed for the next domain to import.
Comparing configurations
To compare configurations, use the following procedure:
1. Select Administration Configuration Compare Configuration to display
the Configuration Comparison screen.
2. From the From list, select which configuration to be the first configuration
source; and from the To list, select which configuration to be the second
configuration source. The source for each of the configurations can be one of
the following:
Persisted Configuration
The last saved configuration on the appliance. This is the default in the
From list.
Running Configuration
The configuration that is currently running on the appliance. This is the
default in the To list.
Domain Configuration
The last saved or currently running domain configuration on the
appliance.
XML Configuration
The XML file that was created during an export operation. This file has
an .xcfg extension.
Export ZIP Bundle
A ZIP file that was created during an export operation. This file has a .zip
extension.
Backup ZIP Bundle
A ZIP file that was created during backup operation. This file has a .zip
extension.
52
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Checkpoint
A ZIP file that was created through a save checkpoint operation. This file
has a .zip extension and is in the chkpoint: directory.
3. When the source (From or To) is XML Configuration, Export ZIP Bundle, or
Backup ZIP Bundle, specify or browse for and select the configuration file.
Also, create or select a deployment Policy that can be used to accept, filter, or
modify a configuration.
4. When the source (From or To) is Checkpoint, select the checkpoint from the
Checkpoint list.
5. From the View list, select whether the report lists only changed objects between
the configurations or all objects in the configurations. The default is changed
objects only.
6. Click Run Comparison to generate the report.
The results are displayed below the horizontal rule.
To
Change
The type of change between the From source and the To source. The
change is one of the following values:
v modified
v added
v deleted
Beside each item is a check box.
Reverting changes
After running a comparison and reviewing the results, you can revert select
changes or all changes between the two configurations. You can revert changes at
the property level only. To revert changes to select properties for an object, use the
object-specific configuration screens.
To revert changes, use the following procedures:
1. Determine which objects to revert:
v To revert select objects, select the check box beside those objects.
v To revert all objects, click Select All.
2. Click Undo Selected.
Chapter 6. Managing the configuration of the appliance
53
Deployment policies
Deployment policies use fine-grained matching statements and clause types to
control the inclusion of configuration data from imported configuration packages.
Depending on the clause type, the deployment policy can perform the follow types
configuration management against the imported configuration package:
v Use an accepted configuration to include resources in the package that match
specified criteria.
v Use a filtered configuration to delete resources in the package that match specified
criteria.
v Use a modified configuration to modify resources in the package that match the
specified criteria. Modified configurations support the following actions:
Add
Adds the property with the identified value during the import.
Changed
Substitutes the value for the identified property during the import.
Deleted
Deletes the property during the import.
The processing sequence is as follows:
1. Process the accepted configuration, the whitelist, to always include resources
that match.
2. Process the filtered configuration, the blacklist, to always delete resources that
match.
3. Process the modified configuration to change the resources based on the
defined action type.
54
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
To access the builder, click Build. This button is associated with the following
properties:
v Accepted Configuration on the Main tab
v Filtered Configuration on the Main tab
v Configuration Match in the properties Window that the WebGUI displays after
clicking Add on the Modified Configuration tab
To create a matching statement with the builder, use the following procedure:
1. Click Build to open the builder.
Chapter 6. Managing the configuration of the appliance
55
2. Specify the IP address or host alias in the Device Address field. The value *
matches all IP addresses.
3. Select the name of the application domain from the Application Domain list.
The selection (none) matches all domains.
4. Select the resource type from the Resource Type list. The select (all resources)
matches all resource types.
5. Optional: In the Name Match (PCRE) field, specify a name match for a
resource. This property limits the matching statement to resources of the
specified name. Use a PCRE to select groups of resource instances. For
example, foo* would match all resources with names that start with foo.
6. Optional: From the Configuration Property list, select the name of the
configuration property. This property limits the matching statement to resources
of the specified property.
7. Optional: In the Configuration Value Match (PCRE) field, specify the value for
the configuration property. This property limits the matching statement to
resources of the specified value. Use a PCRE Match Expression to select groups
of configuration property values.
8. Click Save.
The statement is added to the list of matching statements.
address
Specifies the IP address or host alias. The value * matches all IP addresses.
domain Specifies the name of the application domain. The value * matches all
domains.
resource
Specifies the resource type. The value * matches all resource types.
Name=resource-name
Optionally specifies a name match for a resource. This property limits the
matching statement to resources of the specified name. Use a PCRE to
select groups of resource instances. For example, foo* would match all
resources with names that start with foo.
Property=property-name
Optionally specifies the name of the configuration property. This property
limits the matching statement to resources of the specified property.
Value=property-value
Optionally specifies the value for the configuration property. This property
limits the matching statement to resources of the specified property.
PCRE documentation is available at the following Web site:
http://www.pcre.org
56
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Main tab
Name Specify the name of the object.
Admin State
Retain the default setting. To place the object in an inactive administrative
state, click disabled.
Comments
Specify a descriptive object-specific summary.
Authorized counter
Although the configuration supports count monitors, Web Application
Firewall services do not support this type of monitor
Rejected counter
Although the configuration supports count monitors, Web Application
Firewall services do not support this type of monitor
SAML Signature Validation Credentials
Optional and only if the AAA policy uses SAML-based identity extraction,
authentication, or authorization: Select the Crypto Validation Credentials to
validate digitally-signed SAML assertions from the Credentials list. Refer
to Validation credentials on page 26 for more information.
SAML Message Signing Key
Optional and only if the AAA policy uses SAML-based identity extraction,
authentication: Select the Crypto Key to sign SAML assertions. Refer to
Defining Key objects on page 21 for more information.
SAML Message Signing Certificate
Optional and only if the AAA policy uses SAML-based identity extraction,
Copyright IBM Corp. 2002, 2009
57
58
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
endpoints are encoded in the artifact itself (per the SAML specification). If
there is only one artifact retrieval URL, it can be specified by the SAML
artifact responder URL in the authentication phase.
Ping Identity Compatibility
Select whether to enable (on) or disable (off) Ping Identity compatibility.
Enable Ping Identity compatibility when using SAML for authentication or
authorization.
SAML 2.0 Metadata File
This file contains information about the various SAML Authorities that
might be used for SAML 2.0 authentication and authorization. From the
list, select a file, and click Upload to upload a file.
The file must conform to the SAML 2.0 metadata schema
(xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata").
DoS Flooding-Attack Valve
Specifies the number of times to perform the same XML processing per
user request. Use a value in the range of 1 through 1000. The default is 3.
This property limits the number of times to perform the same XML
processing per user request. XML processing includes encryption,
decryption, message signing, and signature validation. At this time, the
AAA Policy supports this property in the following cases:
v Identity extraction when the method is Subject DN from Certificate in
the Messages signature
v Authentication when the method is Validate the Signer Certificate for a
Digitally Signed Message
When used with the value of 1, the AAA Policy extracts the first signature
and its first reference from the security header and ignores all other
signatures or signing references. If the security header contains more
signatures or a single signature contains more signing references, these
signatures and signing references are ignored. During signature
verification, the processing fails if the needed signature is not part of
extracted identity.
For example if dos-valve is 2 and the needed information to verify the
signature was the third signing reference, the verification would fail.
However if the information was the second signing reference, the
verification would succeed.
LDAP Version
Select the LDAP protocol version (2, the default version, or 3) used when
accessing the authorization server.
Enforce Actor/Role for WS-Sec Message
Most of the times a WS-Security message has a S11:actor or S12:role
attribute for its wsse:Security header, we can enforce those attributes
when AAA tries to use wsse:Security header, for example, there should be
only one wsse:Security element having same actor/role, and AAA should
only process the wsse:Security header for the designated Actor/Role
Identifier. This setting takes effect for all AAA processing except post
processing. The default is on.
WS-Sec Actor/Role Identifier
When enforcing WS-Security Actor/Role, specify the identifier.
Continue with defining the identity extraction method.
Appendix A. Referenced objects
59
Identity tab
The initial processing performed by an AAA Policy consists of extracting
information from an incoming message and its protocol envelope(s) about the
claimed identity of the service requester.
Use the Identity panel to specify the method or methods used by the AAA Policy
to extract the identity claimed by the service requester. Click the Identity tab to
display the AAA Policy Configuration (Identity) screen.
Use the check boxes to enable (on) or disable (off) one or more identification
methods.
HTTPs Authentication header
The claimed identity of the requester is extracted from the HTTP
Authorization header (name and password).
If selected, the WebGUI prompts for the following property:
HTTPs Basic Authentication Realm
The name of the HTTP Basic Authentication Realm as described by
RFC 2617, HTTP Authentication: Basic and Digest Access Authentication.
A browser might display this name to help determine which
credentials to supply.
UserName element from WS-Security header
The claimed identity of the requester is extracted from the WS-Security
UserName element (name and password) contained in a SOAP header.
BinarySecurityToken element from WS-Security header
The claimed identity of the requester is extracted from the WS-Security
BinarySecurityToken element (using the tokens string value as the claimed
identity) contained in a SOAP header.
WS-SecureConversation Identifier
The claimed identity of the requester is extracted from a
WS-SecureConversation Identifier.
WS-Trust Base or Supporting Token
The claimed identity of the requester is extracted from a WS-Trust Base or
Supporting token.
Kerberos AP-REQ from WS-Security header
The claimed identity of the requester is extracted from a Kerberos AP-REQ
contained in the WS-Security header.
Kerberos AP-REQ from SPNEGO token
The claimed identity of the requester is extracted from a Kerberos AP-REQ
contained in the SPNEGO token.
Subject DN of the SSL Client Certificate from the Connection Peer
The claimed identity of the requester is extracted from the SSL client
certificate presented during the SSL handshake. If this is checked, the
Validation Credentials for Signing Certificate appears.
Name from SAML attribute assertion
The claimed identity of the requester is extracted from a SAML assertion that
contains a SAML attribute statement. The name contained in the Subject
element of the attribute statement is used as the claimed identity.
Name from SAML authentication assertion
The claimed identity of the requester is extracted from a SAML assertion that
60
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
61
Authenticate tab
After extracting the claimed identity of the service requester, an AAA Policy
authenticates the claimed identity. The authentication process can use internal or
external resources. Use the Authenticate panel to designate the authentication
method.
1. Click the Authenticate tab to display the AAA Policy Configuration
(Authenticate) screen.
2. From the Method list, select an authentication method.
Accept a SAML Assertion with a Valid Signature
The requester is authenticated by a SAML assertion with a valid
signature.
Accept an LTPA token
The requester is authenticated by an encrypted LTPA token. If selected,
the WebGUI prompts for the following property values:
LTPA Token Versions
Specifies the LTPA formats supported for authentication purposes.
Use the check boxes to specify the LTPA versions that are
supported for authentication. Select at least one version, or all
LTPA-based authentication will fail.
Because the LTPA token must be decrypted before authentication,
the following properties identify the needed cryptographic
resources.
LTPA Key File
Provide the name of the file that contains the cipher keys to be
used for encryption and decryption.
LTPA Key File Password and Confirm LTPA Key File Password
Provides the cleartext password to the LTPA key file.
Refer to Understanding LTPA for more information.
Bind to Specified LDAP Server
(Default) The requester is authenticated by an LDAP server. If selected,
the WebGUI prompts for the following properties:
Host
Port
LDAP Prefix
Optionally specify an LDAP Prefix name. This string is prepended
to the identity extracted before submission to the LDAP server.
The default is cn=.
This property is relevant when the Search for DN is off.
LDAP Suffix
Optionally specify an LDAP Suffix name. This suffix string is
appended to the identity extracted before submission to the LDAP
server. For example, o=datapower.com.
This property is relevant when the Search for DN is off.
LDAP Load Balancer Group
Optionally select a Load Balancer Group. If you select a group,
62
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
63
off
off
64
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
field. The size refers to the length of the client entropy before
Base64 encoding. Use an integer in the range of 8 through 128.
The default is 32.
Require RequestSecurityTokenCollection
Indicates whether to generate a WS-Trust RequestSecurityToken or
a WS-Trust RequestSecurityTokenCollection as part of the security
token request exchange.
on
off
off
When required, specify the value for the AppliesTo header in the
AppliesTo Header field.
WS-Trust Encryption Certificate
Optionally select a Crypto Certificate to encrypt WS-Trust
elements in the request. If selected, he public key of the certificate
encrypts the client entropy key material for the recipient. If blank,
the WS-Trust BinarySecret element contains the entropy material.
In this case, use an SSL Proxy Profile to secure the message
exchange with the WS-Trust server.
Contact ClearTrust Server
The requester is authenticated via a ClearTrust server. If selected, the
WebGUI prompts for the following properties:
ClearTrust Server URL
Provide a local or remote URL that locates the authentication
resource.
SSL Proxy Profile
Select an SSL Proxy Profile to provide a secure connection to
remote authentication server. Retain the default value to use a
non-SSL connection.
Contact Netegrity SiteMinder
The requester is authenticated by a Netegrity server. If selected, the
WebGUI prompts for the following properties:
Host
Port
65
66
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
67
Disabled
Disables caching of authentication data
Maximum
Compares the explicit TTL with the received TTL (if any). Use the
data-specific TTL if it is less than the explicit TTL. Otherwise, use
the explicit value.
Minimum
Compares the explicit TTL specified by the Cache Lifetime
property with the received TTL (if any). Use the data-specific TTL
if it is greater than the explicit TTL. Otherwise, use the explicit
value.
Cache Lifetime
Specify the explicit TTL in seconds. This defaults to 3.
3. Click Apply to commit AAA Policy properties.
4. Optional: Click Save Config to save the changes to the startup configuration.
68
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Resource tab
After authenticating a client, an AAA policy identifies the specific resource being
requested by that client.
Use the Resource panel to designate the methods used to identify the resource
requested by an authenticated client.
1. Click the Resource tab to display the AAA Policy Configuration (Resource)
screen.
2. Use the check boxes to enable (on) or disable (off) one or more resource
identification methods.
URL sent to back end
The identity of the requested resource is extracted from the (possibly
rewritten) URL sent to the server. The URL can be rewritten by a URL
Rewrite Policy attached to the service or by another processing action
before the AAA Policy.
URL sent by client
The identity of the requested resource is extracted from the original URL
sent by the client. This URL has not been rewritten.
URI of toplevel element in the message
The identity of the requested resource is extracted from the namespace of
the top level application element
Local name of request element
The identity of the requested resource is extracted from the simple name
of the top level application element
HTTP operation (GET/POST)
The identity of the requested resource is extracted from the HTTP method
of the client request
XPath expression
The identity of the requested resource is extracted from the client request
by an XPath expression. If selected, the WebGUI prompts for the
following property:
Appendix A. Referenced objects
69
XPath Expression
Specify the operative XPath expression.
3. Click Apply to commit AAA Policy properties.
4. Optional: Click Save Config to save the changes to the startup configuration.
Authorize tab
After authenticating a service requester and extracting the identity of the requested
resource, an AAA Policy next authorizes the client, that is, determines if the
authenticated service requester is allowed access to the requested resource. The
authorization process can use internal or external resources. Use the Authorize
panel to designate the authorization method.
1. Click Authorize to display the AAA Policy Configuration (Authorize) screen.
2. From the Method list, select an authentication method.
70
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
71
Base
Specifies that the search matches only the input itself
One Level
Specifies that the search matches the search input and any
object that is one-level below
Subtree
(Default) Specifies that the search matches the input and any
descendents
LDAP Search Filter
Optionally enable the specification of an LDAP search filter which
allows tailored LDAP searches. LDAP filter syntax is defined in RFC
2254, The String Representation of LDAP Search Filters.
Contact Netegrity SiteMinder
The requester is authorized by a Netegrity server. If selected, the WebGUI
prompts for the following properties:
Host
Specify the IP address or domain name of the Netegrity
authorization server.
Port Specify the Netegrity authorization server port number.
Netegrity Base URI
Specify the appropriate URI string.
Netegrity Operation Name Extension
The Netegrity Base URI is combined with the Host, Port, and
Netegrity Operation Name Extension configuration items to form
the URL for attempting Netegrity authentication. The URL is of the
following form:
http://Host:Port/NetegrityBaseURI/operationNetegrityOpNameExtension
72
r (Read)
u (Update)
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Always Allow
All messages are forwarded to the backend server.
Generate a SAML Attribute Query
The requester is authorized by a SAML attribute query/response
exchange between the DataPower appliance and a SAML server. If
selected, the WebGUI prompts for the following properties:
URL
Specify the location of the SAML server.
SAML Match
Select the minimum authorization criteria.
All
All-Values
Authorization requires that all configured attribute names
and values be present in the SAML attribute statement
Any
Any-Value
Authorization requires that a single configured attribute
name and value be present in the SAML attribute statement
XPath Authorization requires that SAML server responses are
evaluated with an XPath expression
SAML XPath
If SAML Match is XPath, specify the operative XPath expression.
SAML Name Qualifier
Optionally specify the value of the NameQualifier attribute of the
NameIdentifier in the generated SAML query. Some SAML
implementations require this value to be present.
SAML Version
Select the SAML protocol version to use when employing SAML for
authorization. Versions 1.0, 1.1 and 2.0 are supported. The version
selected affects the format of the messages sent to SAML authorities.
SSL Proxy Profile
Select an SSL Proxy Profile to provide a secure connection to remote
authorization server. Retain the default value to use a non-SSL
connection.
Generate a SAML Authorization Query
The requester is authorized by a SAML authorization query/response
exchange between the DataPower appliance and a SAML server. If
selected, the WebGUI prompts for the following properties:
URL
Specify the location of the SAML server.
SAML Match
Select the minimum authorization criteria.
All
73
All-Values
Authorization requires that all configured attribute names and
values be present in the SAML attribute statement
Any Authorization requires the presence of a single SAML attribute
Any-Value
Authorization requires that a single configured attribute name
and value be present in the SAML attribute statement
XPath
Authorization requires that SAML server responses are
evaluated with an XPath expression
SAML XPath
If SAML Match is XPath, specifies the operative XPath expression
SAML Name Qualifier
Optionally specify the value of the NameQualifier attribute of the
NameIdentifier in the generated SAML query. Some SAML
implementations require this value to be present.
SAML Version
Select the SAML protocol version to use when employing SAML for
authorization. Versions 1.0, 1.1 and 2.0 are supported. The version
selected affects the format of the messages sent to SAML authorities.
SSL Proxy Profile
Select an SSL Proxy Profile to provide a secure connection to remote
authorization server. Retain the default value to use a non-SSL
connection.
Contact Tivoli Access Manager
The requester is authorized by a Tivoli Access Manager (TAM). A TAM
object must exist for this method to succeed. Refer to Creating Tivoli
Access Manager objects on page 89 for more information.
Use SAML Attributes from Authentication
The requester is authorized by the same SAML authentication or attribute
statements used to authenticate the requester. If selected, the WebGUI
prompts for the following property:
SAML Match
Select the minimum authorization criteria.
All
All-Values
Authorization requires that all configured attribute names
and values be present in the SAML attribute statement
Any
Any-Value
Authorization requires that a single configured attribute
name and value be present in the SAML attribute statement
XPath Authorization requires that SAML server responses are
evaluated with an XPath expression
SAML XPath
If SAML Match is XPath, specifies the operative XPath expression
74
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
off
75
off
SOAP Enveloping
Use the toggle to determine whether the external PDP
requires SOAP enveloping. If the custom binding style
sheet generated SOAP enveloping, retain the default
setting.
on
off
76
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Absolute
(Default) Caches all authorization data with an explicit TTL
(time-to-live), specified by the Cache Lifetime property
Disabled
Disables caching of authorization data
Maximum
Compares the explicit TTL with the received TTL (if any). Use the
data-specific TTL if it is less than the explicit TTL. Otherwise, use
the explicit value.
Minimum
Compares the explicit TTL (specified by the Cache Lifetime
property) with the received TTL (if any). Use the data-specific TTL if
it is greater than the explicit TTL. Otherwise, use the explicit value.
Cache Lifetime
Specify the explicit TTL in seconds. Defaults to 3.
3. Click Apply to commit AAA Policy properties.
4. Optional: Click Save Config to save the changes to the startup configuration.
77
78
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
79
80
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
(Default) Use the value explicitly assigned by the value for the
LTPA User Attribute Static Value property
81
82
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Note: An XML file could be used for one or more of these operations. Only the
part of the file that supports the desired operation needs to be completed.
For example, if the file is only used for Map Credentials, it does not need to
include an Authenticate, Map Resource, or Authorize section.
The schema for an AAA Info file uses the AAAInfo.xsd file in the store: directory.
One or more XML files could be used for these operations. In each case, the field
that offers the ability to select an XML file has the + (create) and ... (modify)
buttons. Clicking either button launches the AAA Info file editor. Refer to AAA
Info file editor on page 84 for more information.
Note: The AAA Info file can be edited outside of the AAA Info file editor and
uploaded to the appliance.
Authenticate element: The Authenticate element or elements contain the
database of identities that can be authenticated by this file. Identities can be
identified by one or more of the following attributes:
Appendix A. Referenced objects
83
v
v
v
v
v
v
User name
Password
IP address or host name
IP network
Distinguished name (DN)
Custom token
84
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Click Next if this file will not be used for authentication. Click Add to create new
identities that this file can authenticate. A new window opens with a form for
adding identities.
Host Name or IP Address
The host name or IP address of the client that submitted the message. The
IP address takes dotted decimal form w.x.y.z. The entry 0.0.0.0 (or 0) is
not allowed.
v Use this field only when the identity extraction method is set to Client
IP address.
v If this field is used, you cannot use the IP Network field.
IP Network
The IP network of the client that submitted the message. This entry takes
the form x.y.z.a/b (for example 192.168.2.25/24).
v Use this field only when the identity extraction method is set to Client
IP address.
v If this field is used, you cannot use the Host Name or IP Address field.
User name
The user name extracted from the message. User names can be extracted
from messages in a number of ways, including HTTP Basic Authentication,
WS-Security UserName, and Name from SAML headers. If those AAA
Policy identity extraction methods are not used, do not use this field.
Password
The password extracted from the message. Passwords can be extracted
from messages by HTTP Basic Authentication and WS-Security UserName.
If the Identity Extraction method used by the AAA Policy does not use
either of these methods, do not use this field.
Distinguished Name
The DN extracted from the message. The AAA Policy identity extraction
methods Subject DN from SSL certificate or Subject DN from SAML
signature return this value. If those methods are not used, do not use this
field.
Custom token
A custom token is extracted from the message. The AAA Policy identity
extraction methods Token extracted from the message and Token extracted
as cookie value return this value. If those methods are not used for
extraction, do not use this field.
Credential Name
The credential returned by the authentication. This can be the same as the
extracted identity or different. The value should be meaningful either to
the AAA Policy Map Credentials method or to the AAA Policy Authorize
method.
All of the fields that contain information must be matched for the authentication to
succeed. If the identity extraction method returns only a user name (such as with
SAML) and the Authenticate Identity entry contains both user name and password,
authentication will fail. The AAA policy, however, tests an extracted identity
against all entries in the order in which they are listed, stopping after it finds a
complete match. It is possible to create one entry for user name Bob that also has a
password of foo and another with no password entry. Should the extraction
method only retrieve the user name and not the password, Bob will still
authenticate.
Appendix A. Referenced objects
85
Map credentials: The Map Credentials page presents a list of all credential maps
contained in the file. When creating a new file, this list is empty.
Click Next to move to the next page if this file will not be used for mapping
credentials. Click Add to create a new credential map.
Input Credential
The credential input to the mapping. This field accepts PCRE expressions,
allowing a single expression to match more than one input credential.
Entering foo causes the AAA policy to match all input credentials that
contain the string foo.
Credential Name
The credential to output in place of the input credential. This is the value
to which the input credential is mapped. This is not a regular expression.
Click Submit to add the new map to the list of maps. Create as many mapping
entries as needed by clicking Add for each new entry.
Note: If this file is used for mapping credentials, any input credential that does
not match a map is converted to a blank credential for the purposes of
authorization.
Map resources: The Map Resource page presents a list of all resource mappings
contained in the file. Resource mapping is used to map the resource identifier
extracted from the message to something else. If the AAA Policy uses more than
one resource extraction method, all methods will be executed.
Click Next if this file will not be used for resource identity mapping. Click Add to
create a new map.
Original URL
The URL sent by the client submitting the message. This is a PCRE
expression.
Target URL
The URL used to send the message to the back end server, after the
firewall URL Rewrite Policy has executed. This is a PCRE expression.
Request URI
The Namespace URI of the action or method requested in the body of the
SOAP message. This is identified as the topmost element in the SOAP:Body
element.
Request Operation
The name of the operation requested in the body of the SOAP message.
HTTP Method
Select the desired method. Select any to allow any method.
Result of XPath Expression
Any value that is extracted from the message by an XPath expression. This
is a PCRE expression.
Resource
The resource string to which the input resource is mapped. This field is
required.
Note: If this file is used for mapping resources, any resource that does not mapped
by the file will be converted to a blank resource for the purposes of
authorization.
86
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
87
Although native TAM supports both local and remote clients, the appliance
supports only remote client operations. The TAM configuration supports only one
policy server and supports only LDAP directories. Although the configuration files
allow specifications for Microsoft Active Directory and Lotus Domino, the
appliance does not support these directory servers.
88
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
89
90
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
The TFIM trust service uses this information to determine which trust
chain to invoke. To determine the correct value, consult your TFIM
administrator.
3) When using TFIM 6.1 or TFIM 6.2, optionally specify the name of the
Web services port type to use in the Port Type field. A port type is a
group of Web services operations. For example:
EchoService
91
The TFIM trust service uses this information to determine which trust
chain to invoke with finer granularity. If a value is not specified, a
default value of NotSpecified is used. To determine the correct value,
consult your TFIM administrator.
4) When using TFIM 6.1 or TFIM 6.2, optionally specify the name of the
Web services operation to use in the Operation field. For example:
echo
The TFIM trust service uses this information to determine which trust
chain to invoke with finer granularity. If a value is not specified, a
default value of NotSpecified is used. To determine the correct value,
consult your TFIM administrator.
j. From the SSL Proxy Profile list, select an SSL Proxy Profile to manage
secure communications with the peer.
k. Use the Schema Validate Response toggle to specify whether to
schema-validate responses from the TFIM server. When enabled, TFIM
responses are schema-validated with the WS-Trust version that is defined by
the compatibility mode.
on
off
Kerberos objects
A basic description of the Kerberos authentication protocol is helpful for
understanding the support provided by the DataPower appliance.
The Kerberos authentication protocol uses a star topology. The Key Distribution
Center (KDC) is at the center of the star. Each Kerberos principal (a human, a
computer client, or an instance of a service running a specific computer) is
registered with the KDC and has a shared secret known only to the principal and
to the KDC. This shared secret takes the form of a password for human principals
and a randomly generated keytab file for nonhuman principals.
When a Kerberos client (for example, Alice) wants to communicate securely with a
Kerberos server (for example, the FTP service), Alice must access KDC of her
Kerberos realm and request a ticket for the FTP service. At this point, the KDC has
the option of requiring pre-authentication before responding, or the KDC can
immediately issue the ticket to Alice.
The KDC response contains two items:
v A randomly generated session key encrypted with Alices shared secret
v A ticket for the FTP service
The ticket contains:
v The idobj for Alice
v The idobj for the FTP service
v A ticket lifetime
v Another copy of the session key
92
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
The ticket is encrypted with the shared secret of the FTP service principal.
Consequently, there are two encrypted copies of the session key (one for Alice, and
one for the FTP service).
At this point, Alice uses her shared secret to decrypt her copy of the session key
and generates an authenticator (which proves that the person talking to the FTP
service is the client for which this ticket was issued, and not a malicious user
replaying a previously issued ticket) that she sends along with her ticket to the
FTP service. The ticket plus authenticator is called an AP-REQ message.
When the FTP service receives the AP-REQ from Alice, it decrypts the ticket and
verifies the authenticator. At this point the FTP server has authenticated Alice, and
they share a session key which can be used to secure the rest of their
communications.
93
off
94
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
off
95
96
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
97
98
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Count Monitor
Although the following objects support the configuration of count monitors, Web
Application Firewall services do not support this type of monitor:
v AAA Policy
v Error Policy
99
Error Rule
Select a Processing Rule when the mode is set to Error-rule. This rule is
executed against the error returned by the application server.
Monitor
Although the configuration supports count monitors, Web Application
Firewall services do not support this type of monitor
4. Click Apply to save the changes to the running configuration.
5. Optional: Click Save Config to save the changes to the startup configuration.
100
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
One level
Searches the entry level of the tree and any object that is one-level
below the input.
Subtree
(Default) Search the entry level of the tree and all of its descendents.
11. Click Apply to save the changes to the running configuration.
12. Optional: Click Save Config to save the changes to the startup configuration.
101
DataPower
appliance
Load Balancer
Group
Application
server A
Application
server B
Application
server C
Application
server D
Figure 3. Load balancer group with static members to support load balancing
102
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
DataPower
appliance
WebSphere
Cell
ODCInfo
Load Balancer
Group
The communication between the DataPower appliance and the cell in the
WebSphere environment is as follows:
1. The ODCInfo application retrieves data about the application servers in the cell.
2. The WebSphere cell configuration retrieves the information from the ODCInfo
application and updates the data in the load balancer group.
3. The load balancer group uses this data to adapt to changing traffic conditions
and application server capabilities to optimally distribute traffic among the
application servers in the cell.
If your application server must maintain session affinity, you can configure session
affinity to override load balancing decisions.
Required software
For dynamic membership and weights to work, you must install WebSphere
Application Server Network Deployment or WebSphere Virtual Enterprise.
v For WebSphere Application Server Network Deployment, an administrator uses
the WebSphere Administrative Console to manually update the membership and
weight information of application servers.
v For WebSphere Virtual Enterprise, membership and weight information is
updated dynamically based on runtime conditions. To enable dynamic updates,
an administrator uses the WebSphere Administrative Console to enable dynamic
workload management.
103
Hash
Least connections
Round robin
Weighted least connections
Weighted round robin
A weighted algorithm uses weight (or preference) to help determine which server
receives the next request. A server with a higher weight receives more traffic than
one with a lower weight. The percentage of traffic that is sent to each server is
approximately equal to its weight divided by the cumulative weight of all servers
in the group.
A non-weighted algorithm assumes that the capacity of all servers in the group to
be equivalent. Although non-weighted algorithms are typically faster than
weighted algorithms, some non-weighted algorithms, such as the hash algorithm,
could send more traffic to some servers. If there are servers with different
capacities in the group, processing cannot optimize the capacities of all the servers.
First alive
The first alive algorithm uses the concept of a primary server and backup servers.
v The primary server is the first server in the members list.
v A backup server is any subsequent server in the members list.
104
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
When the primary server is healthy, the DataPower service forwards all
connections to this server. When the primary server is quarantined or convalescent,
the DataPower service forwards connections to the next server in the list.
Hash
The hash algorithm uses the IP address of the client or the value of an HTTP
header as the basis for server selection.
When using an HTTP header, use the Load Balancer Hash Header property to
identify the header to read. This property is available for only Multi-Protocol
Gateway and Web Service Proxy services. Additionally, this property is available
on only the Main tab in the object view.
With the hash algorithm, the same client is served by the same server. Use this
algorithm for applications that require the storage of server-side state information,
such as cookies.
Least connections
The least connections algorithm maintains a record of active server connections and
forward a new connection to the server with the least number of active
connections.
Round robin
The round robin algorithm maintains a list of servers and forwards a new
connection to the next server in the members list.
105
Membership
A load balancer group generally contains two or more members. Members can be
defined through static or dynamic membership.
Static membership
A load balancer group that uses a static membership configuration contains the
configuration settings that an administrator on the DataPower appliance explicitly
defined and persisted. These configuration settings do not change except under the
following conditions:
v The processing of a style sheet changes configuration settings for group
members
v An administrator enables and configures the workload management feature
Dynamic configuration
A load balancer group that uses a dynamic membership configuration retrieves
membership data through the workload management feature. To create a dynamic
membership configuration, you need to enable and configure the workload
management feature.
Even after enabling and configuring the workload management feature, a firmware
load uses the persisted configuration. Only after retrieving the workload
management information and updating the membership of the load balancer group
can the load balancer group use dynamic weight and membership information in
any load balancing decision.
When enabled, the load balancer group retrieves runtime information from the
WebSphere On Demand Configuration (ODCInfo) application. This information
overrides the membership information in the running configuration of the load
balancer group. The retrieved workload management information alters the
membership and weight of application server members in the load balancer group
so that the load balancer group can route traffic to the application server that can
best handle the load.
As new servers are brought online or as existing servers are taken offline, the
membership information in the load balancer group adapts to these changes.
Health checks
A health check is essentially a scheduled rule that sends the same request to each
member. The successful completion of the health check requires that the server
passes normal TCP and HTTP connection criteria. Optionally, the health check
contains a filter to test the response from the server. If the filter accepts the
response, the server is considered to be healthy; otherwise, it is considered to be
convalescent.
106
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Session affinity
Session affinity overrides the load-balancing algorithm by directing all requests in
a session to a specific application server. For some applications to work correctly,
the application requires session affinity between the client and the application
server.
Session affinity enhances application performance by using in-memory caching, not
a database. Session affinity uses cookies to track session information and,
potentially, to maintain login credentials.
With session affinity, the application server that handles the first client request
generates session information and places it in a Set-Cookie header in the response.
The client inserts this information in a Cookie header in all future requests in this
session with this application server.
Session affinity populates these cookies with a session ID that contains the
following information:
v An identifier for the recovery of session data
v Routing information to ensure that all requests in this session are always routed
to the same application server
By default, session affinity is enabled for load balancer groups.
v For WebSphere servers, the load balancer group uses the session affinity
information provided by the application server.
v For non-WebSphere servers, you must configure session affinity.
107
Although session affinity applies to both static and dynamic configurations, you
must use a static configuration for active or active-conditional session affinity for
non-WebSphere servers.
108
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
5.
6.
7.
8.
v Optional for groups of WebSphere servers that will use intelligent load
distribution. Requires the Option for Application Optimization feature.
Optional: On the Session Affinity tab, override the session affinity from a
WebSphere cell. Requires the Option for Application Optimization feature.
Optional: On the Health tab, define health check criteria.
Click Apply to save the changes to the running configuration.
Optional: Click Save Config to save the changes to the startup configuration.
109
110
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
g. Click Save.
5. Repeat the previous step to add another server as a static member.
6. Click Apply to save the changes to the running configuration.
7. Optional: Click Save Config to save the changes to the startup configuration.
Procedure
1. Click Network Other Load Balancer Group
2. Click the name of load balancer group.
3. Click the Session Affinity tab.
4. Set the Override WebSphere Cell Configuration check box. The pane refreshes
to display additional parameters.
5. From the Mode list, select the type of session affinity.
6. For active-conditional: Define the cookies to monitor.
a. In the Monitored Cookies field, enter the name of the cookie to monitor.
b. Click Add
7. Optional: Repeat the previous step to add another cookie. The configuration
requires at least one cookie.
8. Click Apply to save the changes to the running configuration information.
9. Click Save Config to save the changes to the startup configuration.
Results
Session affinity is enabled for non-WebSphere application servers.
111
6. In the Remote Port field, enter the port on the target server to receive the
query.
You can override this value for one or more members of the load balancer
group with the Health Port property. This property is available during the
configuration of member servers in the group.
The response from the server is evaluated to determine the health status of
each member server in the group. The request is sent to the target URI and
remote port.
7. From the Health Check Type list, select the type of health check to perform.
8. Optional for standard health checks: Set Send SOAP Request? to off to access
the target URI with an HTTP GET operation instead of the default HTTP
POST operation.
9. For SOAP requests with an HTTP POST operation: In the SOAP Request
Document field, enter the location (URL) of the SOAP message to send as the
request.
10. In the Timeout field, enter the number of seconds to wait for the completion
of the health check.
11. In the Frequency field, enter the number of seconds between health checks.
12. For standard health checks: Define the filter for a valid server response.
a. In the XPath Expression, enter the XPath expression that must be found in
a valid server response. Use the XPath tool to help define the expression.
b. In the XSL Health Check Filter field, enter the location (URL) of the style
sheet to filter the server response.
13. Optional for standard health checks: From the SSL proxy profile list, select
the SSL proxy profile to provide for a secured connection.
14. Click Apply to save the changes to the running configuration.
15. Optional: Click Save Config to save the changes to the startup configuration.
Procedure
1. Click Objects Network Settings Load Balancer Group.
2. Click the name of the load balancer group to modify.
112
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Results
The load balancer group begins to request information from the ODCInfo
application.
Disabling members
If you need to disable a member, you can disable the member from the load
balancer group without deleting the member from the group.
To disable specific members to not participate in load balancing decisions:
1.
2.
3.
4.
113
Procedure
1. Install the ODCInfo application on the deployment manager.
2. Start the ODCInfo application.
3. Create or modify a load balancer group to use the ODCInfo application to
retrieve workload management information from the WebSphere cell.
114
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Procedure
1. Copy the ODCInfo.war file, ODCInfoCheckInstall.jacl, ODCInfoStart.jacl, and
ODCInfoDeploy.jacl to a local directory on the deployment manager.
2. Choose the Web archive file that matches the version of WebSphere Application
Server product.
v For version 6.0.x, use ODCInfo_ND60.war
v For version 6.1.x or version 7.0.x, use ODCInfo_ND61.war
3. Log in from the command line to the deployment manager.
4. Navigate to the /bin directory under the deployment manager profile. For
example:
cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
5. Install the ODCInfo application by entering:
./wsadmin.sh -f script_path/ODCInfoDeploy.jacl dmgr_server_name
dmgr_node_name path_to_war_file ODCInfo
For example:
./wsadmin.sh -f /tmp/ODCInfoDeploy.jacl dmgr wasnode2CellManager01
/tmp/ODCInfo_ND61.war ODCInfo
6. Verify the installation by entering:
./wsadmin.sh -f script_path/ODCInfoCheckInstall.jacl cellName
dmgr_server_name ODCInfo
A message is displayed indicating whether the application is installed.
7. Ensure that you define the host name and port for the ODCInfo application as
a host_alias for the default_host under WebSphere Application Server virtual
hosts.
What to do next
Start the ODCInfo application.
Procedure
1. Copy ODCInfoStart.jacl to a local directory on the deployment manager.
2. Log in from the command line to the deployment manager.
3. Navigate to the /bin directory under the deployment manager profile.
Appendix A. Referenced objects
115
cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
4. Start the application by entering:
./wsadmin.sh -f script_path/ODCInfoStart.jacl cellName
dmgr_node_name ODCInfo
For example:
./wsadmin.sh -f /tmp/ODCInfoStart.jacl dpblade34Cell01
dpblade34CellManager01 ODCInfo
5. Verify that the ODCInfo application started.
a. Log in to the WebSphere Administrative Console.
b. Click Applications Enterprise Applications.
What to do next
Create or modify a DataPower load balancer group.
Procedure
1. Copy the ODCInfoCheckUninstall.jacl file to a local directory on the
WebSphere deployment manager.
2. Log in from the command line to the deployment manager.
3. Navigate to the bin directory of the deployment manager profile. For example:
cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
4. Uninstall the application by entering:
./wsadmin.sh -f script_path/ODCInfoUninstall.jacl cellName
dmgr_server_name ODCInfo
For example:
./wsadmin.sh -f /tmp/ODCInfoUninstall.jacl wasnode2Cell01 dmgr
ODCInfo
5. Verify by entering:
./wsadmin.sh -f script_path/ODCInfoCheckInstall.jacl cellName
dmgr_server_name ODCInfo
The response indicates success or failure.
What to do next
Install the ODCInfo application.
116
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
off
d. Click Save.
Repeat this step to define another matching rule.
9. Click Apply to save the changes to the running configuration.
10. Optional: Click Save Config to save the changes to the startup configuration.
Name-Value Profile
Web applications communicate with clients using the various mechanisms of the
HTTP protocol. The protocol provides for HTTP headers, cookie values,
URL-encoded query strings, and URL-encoded request messages. Each of these
kinds of communication mechanisms operate using a string of name-value pairs
(such as token=valueA&token1;=valueB&broken;=reject). To provide integrity and
security for such an application, it is necessary to inspect and take action on these
names and values. A Name-Value Profile provides a means to implement this
inspection and action configuration.
A Name-Value Profile filters names, and for names that match a given expression,
sets constraints on the corresponding values, again expressed as a match
expression. The Name-Value Profile works by comparing each name in a
name-value pair to all entries in a configured Validation List. If a match is found,
the corresponding value is compared to a corresponding match expression. If a
match is found, the pair passes. If no match is found, one of several actions is
taken.
For example, given the URL-encoded string token=valueA&token1;=valueB
&broken;=reject, only names that contain the substring token will be accepted,
and those that are accepted must have a value that contains the string value. The
Appendix A. Referenced objects
117
name-value pair with a name of broken can optionally be passed through, stripped
from the string or replaced with a known value, or the entire string can be rejected
(in which case, the profile will fail to pass).
1. Select Objects Web Applications Name-Value Profile to display the
Name-Value Profile catalog. The catalog lists all available Name Value Pair
objects.
2. To edit an existing object, click the object name. To create a new object, click
Add. The Name-Value Profile configuration page appears.
3. Provide the following inputs:
Name
Specify an alphanumeric name for this profile object. This name appears
in all lists of available Name-Value Profiles.
Admin State
Retain the default setting. To place the object in an inactive administrative
state, click disabled.
Comments
Specify a descriptive object-specific summary.
Maximum Count
Specify an integer to determine the maximum number of name value
pairs allowed in a single entity (header, cookie set, Post body, or Query
String).
Total Size
Specify an integer to determine the maximum size, in bytes, of the
aggregated names and values in a single entity.
Max Name Length
Specify an integer to determine the maximum size, in bytes, of a name
attribute used in this profile. The default is 512 bytes.
Max Value Length
Specify an integer to determine the maximum size, in bytes, of a value
attribute used in this profile The default is 1024 bytes.
No Match Policy
Select an option to determine the action taken when a given name does
not match a Name Matching expression in the configured Validation List
(refer to Validation List tab on page 119).
Error
Pass-thru
The given Name Value pair is passed through to the next step in
processing.
Set
Strip
118
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Pass-thru
The given Name Value pair is passed through to the next step
in processing.
Set
Strip
The Name Value pair is removed from the entity (headers, Post
body, Query String, or cookie) and processing continues.
Map Value
Specify an alphanumeric string. The value will be replaced with this
constant value when the Failure Policy is Set.
Check XSS
When set to on, the values that do not match the Value Constraint
expression are checked for cross site scripting (sometimes called CSS or
XSS) signatures. These signatures are generally attempts to obfuscate
the real meaning of the value if the value were displayed directly in a
browser. Use to validate any data that might get stored and displayed
again later - such as the contents of a comment form. When set to on,
Appendix A. Referenced objects
119
Client to Server
A rule applied only to client-originated documents
Server to Client
A rule applied only to server-originated documents
Both Directions
A bidirectional rule applied to both client- and
server-originated documents
Input Filter
Select a decompression algorithm to apply to the entire message
payload prior to the first action of the rule executing.
gzip
PKZIP
The message will be decompressed using the pkzip algorithm.
If the message is not compressed using the selected algorithm, an error
will result. This is, in effect, a filter.
Output Filter
Select a compression algorithm to apply to the entire message payload
after the last action of the rule executes.
gzip
PKZIP
The message will be decompressed using the pkzip algorithm.
The created archive contains only one file. If the message contains
attachments, the attachments are contained in the one file.
Non-XML Processing
Select whether to enable or disable the processing of non-XML
documents.
120
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
on
off
Unprocessed
Select whether to determine whether the actions of the rule will take
effect on the message. This duplicates the Request Type and Response
Type properties of the services.
Actions
Use the Add and Delete buttons, with the list of available processing
actions, to manage actions for this processing rule.
4. Click Apply to save the changes to the running configuration.
5. Optional: Click Save Config to save the changes to the startup configuration.
Enforcement Style
Select the action taken when the rate limit is exceeded.
Notify Generate log message in the appropriate application domain.
Log targets must subscribe to this event to capture message.
Reject Requests are rejected until transaction rate drops below the
configured limit.
Shape Delay requests as much as possible to lower the transaction rate
to the configured limit. Once too many messages are buffered,
creating a low memory state, transactions are rejected until rate
drops. The ability to shape transactions is limited when
concurrent connections are high.
Distinct Users
The count is organized by the identity most recently used. When too
many distinct counts are observed, the users not seen in the longest
time are discarded. This parameter specifies how many distinct users to
track before discarding.
121
Concurrent Connections
The number of simultaneous connections allowed per user. Set to 0 to
disable this enforcement.
4. Click Apply to save the changes to the running configuration.
5. Optional: Click Save Config to save the changes to the startup configuration.
122
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Request
Applies to client requests only.
Response
Applies to server responses only.
4. Continue with Creating a URL Rewrite Policy.
123
post-body
Rewrites the body of an HTTP POST request. The POST body
contains the input values for a basic HTTP POST request.
rewrite
This rule type is deprecated.
Match Expression
Specify a PCRE (Perl-compatible regular expression) that defines the
match condition that triggers the rewrite rule. Depending on the rule
type, a candidate URL or specific HTTP header field is matched against
the expression.
v For absolute-rewrite, content-type, and post-body, defines the
expression to be matched against the URL.
.* or *
Matches any string.
(.*)xsl=(.*)\?(.*)
Matches a string of the following format:
a. A text subpattern.
b. Followed by xsl=.
c. Followed by a text subpattern.
d. Followed by ?. The backward slash (\) in the PCRE is a
URL escape.
e. Followed by a text subpattern.
(.*)&[Xx][Ss][Ll]=([^&]+)(.*)
Matches a string of the following format:
a. A text subpattern.
b. Followed by &.
c. Followed by X or x.
d. Followed by S or s.
e. Followed by L or l.
f. Followed by =.
g. Followed by a text subpattern that does not contain an
ampersand (&) character.
h. Followed by a text subpattern.
v For header-rewrite, defines the expression to be matched against the
contents of a specific HTTP header field. For example *.* matches
any value.
PCRE documentation is available at http://www.pcre.org.
Input Replace Expression
Specify a PCRE-style replacement that defines the rewritten URL, HTTP
header field, or HTTP POST body.
v For absolute-rewrite, defines the rewritten URL.
If the match pattern is .* or *, specify the complete replacement.
If the match pattern is (.*)xsl=(.*)\?(.*), specify the evaluation
replacement for any text subpattern or retain the original text
subpattern. To retain the first text subpattern, specify $1; to retain
the second text subpattern, specify $2, and so forth. To replace the
second text subpattern only, specify $1xsl=ident.xsl?$3.
If a rewritten URL begins with a host name or port that is different
from the configured remote address, the host name or port portion of
the rewritten URL is ignored.
124
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
off
off
Header Name
Identifies the name of the header to have its value rewritten. The
header name must be entered exactly as it is defined in the message.
This option is for header-rewrite only.
URL Normalization
Select whether to enable normalization of URL strings. Normalizing a
URL compresses "." and ".." and converts backward slashes (\) to
forward slashes (/).
on
off
Disables normalization.
4. Click Save to return to the URL Rewrite Policy Configuration (Main) screen.
Appendix A. Referenced objects
125
User Agent
A user agent is a client that initiates a request for a local service to establish a
connection to a remote server. An XML manager uses a user agent, for example, to
retrieve resources from elsewhere on the network. The settings for a user agent can
affect messages that a DataPower service sends out.
The DataPower provides the default user agent in each application domain. The
configuration of the default user agent is as follows:
v Allows a maximum of eight HTTP redirect messages before declaring the target
as unreachable
v Set the idle timeout to 300 seconds before timing out and closing the connection.
The default user agent does not provide configuration for the following types of
policies:
HTTP proxy
The user agent forwards requests that match the URL expression to an
HTTP server instead of to the target server.
SSL proxy
The user agent establishes a secure connection to the remote server for
requests that match the URL expression.
Basic authentication
The user agent uses these credentials for authentication with the remote
server for requests that match the URL expression. This feature is useful
for HTTP connections.
SOAP Action
The user agent includes the specified contents in the SOAPAction header in
requests that match the URL expression.
Public key authentication
The user agent uses these credentials for authentication with the remote
server for requests that match the URL expression. This feature is useful
for SCP and SFTP connections.
Allow compression
The user agent compresses the payload for requests that match the URL
expression.
Header retention
The user agent retains the specified message headers for requests that
match the URL expression.
Restrict to HTTP 1.0
The user agent restricts HTTP communication to HTTP 1.0 for requests that
match the URL expression.
Inject header
The user agent injects the specified headers into requests that match the
URL expression.
126
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Chunked uploads
The user agent uses HTTP 1.1 Chunked content encoding for requests that
match the URL expression. This feature is useful for streaming large
documents.
FTP client
The user agent controls the client settings for outgoing FTP connections for
requests that match the URL expression. These client settings can be
overridden by query parameters in the URL that initiates the file transfer.
Each type of these policies uses URL matching patterns. When there are multiple
configurations for a policy type, the policy evaluates each candidate URL against
the matching pattern in sequential order. Therefore, order is important.
When you create a new user agent, the configuration defines these default settings.
127
4. Add a policy.
a. Click Add.
b. In the URL Matching Expression field, enter a shell-style expression to be
the pattern to match against the URL set.
c. Set Skip to on to forward request to the specified HTTP server.
d. Define the remote HTTP server to forward requests.
1) In the Remote Host field, enter the host name or IP address of the
HTTP server.
2) In the Remote Port field, enter the listening port on the HTTP server.
e. Click Save to add this policy to the list.
5. Repeat the previous step to add another policy.
6. Click Apply to save the changes to the running configuration.
7. Optional: Click Save Config to save the changes to the startup configuration.
To secure the connection using SSL, add an SSL proxy policy.
128
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
129
130
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
TE
MQMD
To
1.
2.
3.
4. Add a policy.
a. Click Add.
b. In the URL Matching Expression field, enter a shell-style expression to be
the pattern to match against the URL set.
c. From the Header Retention list, select the check boxes for the headers to
retain.
d. Click Save to add this policy to the list.
5. Repeat the previous step to add another policy.
6. Click Apply to save the changes to the running configuration.
7. Optional: Click Save Config to save the changes to the startup configuration.
131
2) In the Header Value field, enter the value for the header.
d. Click Save to add this policy to the list.
5. Repeat the previous step to add another policy.
6. Click Apply to save the changes to the running configuration.
7. Optional: Click Save Config to save the changes to the startup configuration.
132
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
133
Rate limiting
Session start and timeout enforcement
URL-encoded name-value input processing
HTTP protocol filtering
Threat protection, such as SQL Injection
Cookie handling, including sign and encrypt
Error handling
XML and non-XML content processing
134
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
135
Response Security
If disabled (off), no response-side security policies are enforced. All
responses are allowed through. This property overrides the response
security policy that is defined in the selected Application Security
Policy.
4. Click Apply to save the changes to the running configuration.
5. Optional: Click Save Config to save the changes to the startup configuration.
136
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
137
When the appliance uses the HTTP 1.1 protocol, the body of the
document can be delimited by either Content-Length or chunked
encoding. While all servers can interpret Content-Length, many
applications fail to understand Chunked Encoded documents. For this
reason, Content-Length is the standard method.
Retaining the default value interferes with the ability of the appliance
to stream full documents. To stream full documents toward the
backend server, enable this property. When enabled, the backend server
must be RFC 2616 compatible. This feature cannot be renegotiated at
run time. All other HTTP 1.1 features can be negotiated at run time.
Alternatively, this property can be enabled at the User Agent on a
per-URL basis. Refer to User Agent on page 126 for more
information.
HTTP Client IP Label
Retain X-Client-IP, the default value, or provide another value (for
example, X-Forwarded-For).
3. Click Apply to save the changes to the running configuration.
4. Optional: Click Save Config to save the changes to the startup configuration.
When enabled, the Crypto Profile of the selected SSL Proxy Profile
handles these requests.
4. Click Save.
5. Repeat steps 2 through 4 to define additional source addresses.
6. Click Apply to save the changes to the running configuration.
7. Optional: Click Save Config to save the changes to the startup configuration.
138
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Manage sessions
Filter HTTP methods
Filter HTTP header, URL-encoded HTTP POST, and HTTP Query String values
Manage XML traffic
Allow or disallow, encrypt or sign, and filter cookies
Provide service threat protection, such as filtering SQL injection attacks
7. Optional: On the Name Value tab, filter on HTTP headers (names and
corresponding values).
8. Optional: On the Cookie tab, define how to manage cookies.
9. Optional: On the Multipart Form tab, define how to impose limits on
multipart/form submissions.
10. Optional: On the Threat Protection tab, define protection against threats in
requests.
11. Click Apply to save the changes to the running configuration.
12. Optional: Click Save Config to save the changes to the startup configuration.
139
Prerequisite
If a request passes the criteria defined in this profile, any other profile
that matches the request can now run. The request is not necessarily
forwarded to the backend service. However, if there are no other
matching profile and the request passes this profile, the request is
passed to the backend service.
Each transaction could match more than a single request profile on the same
transaction. If this happens, the satisfaction style helps determine how the
results of those profiles are combined. A failed profile always results in the
failure of the transaction; however, a passed profile of the prerequisite
satisfaction style does not, on its own, guarantee acceptance of the transaction.
In those circumstances, any other matching profiles will be run and the whole
transaction only passes if no failure is found. The admission style, on the other
hand, passes the transaction as soon as the profile is declared passing.
Most profiles will be admission style, but a typical use of a prerequisite profile
would be a broad match that enforces some very basic items (maximum sizes
for example) that is followed up with more specific matches for stronger
criteria.
7. Click Apply to save the changes to the running configuration.
8. Optional: Click Save Config to save the changes to the startup configuration.
140
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
141
alternate values. Mappings provide ways to control the name-value pairs that are
passed to the remote application server. Using mappings provide both content
control and threat protection.
To
1.
2.
3.
4.
define mappings:
Click Objects Web Applications Web Request Profile.
Click the name of the Web request profile to modify.
Click the Name Value tab.
Optional: From the Header Name-Value Profile list, select the name-value
profile to filter HTTP headers. This profile defines the rules to apply to HTTP
headers.
5. Optional: From the URL-Encoded Body Name-Value Profile list, select the
name-value profile to filter URL-encoded HTTP POST body content. This
profile defines the rules to apply to each element in the POST body.
6. Optional: From the Allow Query String list, select how to handle query strings.
7. If allowing or requiring query strings: From the Query String Name-Value
Profile list, select the name-value profile to filter query strings. This profile
defines the rules to apply to each query string.
8. Click Apply to save the changes to the running configuration.
9. Optional: Click Save Config to save the changes to the startup configuration.
For information about creating a name-value profile, refer to Name-Value Profile
on page 117.
Managing cookies
A Web request profile can manage cookies. Cookies can be allowed, denied, or
required. When cookies are not denied, the profile can sign or encrypt cookies, as
well as enforce filters on the name-value pairs in the cookie.
To manage cookies:
1. Click Objects Web Applications Web Request Profile.
2. Click the name of the Web request profile to modify.
3. Click the Cookie tab.
4. From the Allow Cookies list, select how to handle cookies.
5. Optional: From the Sign/Encrypt Cookies list, select how to enable signing or
encrypting of cookie content.
6. If signing or encrypting: Define cryptographic materials:
v Use a shared secretSigning or encrypting cookies requires a secret
password phrase for the cryptographic operation. If this key is the same on
multiple appliances, each appliance can verify or decrypt a cookie from
another appliance without the need to maintain state information.
v Use an IP address-specific cookieNormally a signed or encrypted cookie
contains the client IP address, which prevents another client from using this
cookie. Some environments make this behavior undesirable.
7. Optional: From the Cookie Content Name-Value Profile list, select the
name-value profile for cookie contents. This profile allows the validation of
data members. Validation can filter out unknown ones or map certain names
to known values. For information about creating a name-value profile, refer to
Name-Value Profile on page 117.
8. Optional: Clear Sign or Encrypt All Cookies to sign or encrypt specific
cookies.
142
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
9. If signing or encrypting specific cookies: In the Cookie Names field, create the
list of cookies.
10. Click Apply to save the changes to the running configuration.
11. Optional: Click Save Config to save the changes to the startup configuration.
Multipart forms
A Web request profile can impose limits on multipart form submissions. The
following example shows a multipart/form submission.
POST 116.xml HTTP/1.0
Host: patriot
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12)
Gecko/20051010 Firefox/1.0.7 (Ubuntu package 1.0.7)
Accept: text/xml,application/xml,application/xhtml+xml,text/html;
q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate,rot13
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Content-Type: multipart/form-data; boundary=
-----------------------------1943549852707912569510983863
Content-Length: 1289
-----------------------------1943549852707912569510983863
Content-Disposition: form-data; name="upfile"; filename="NOTES"
Content-Type: application/octet-stream
/home/mcm/iso>sudo cdrecord dev=ATAPI:0,1,0 -v speed=4 x86-basic-1.4-20030911.iso
-----------------------------1943549852707912569510983863
Content-Disposition: form-data; name="hdrx21"
PRE1776
-----------------------------1943549852707912569510983863
Content-Disposition: form-data; name="hdrx25"
Post2000
-----------------------------1943549852707912569510983863
143
144
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Procedure
1. Define an HTML forms-based authentication policy.
2. Create an AAA policy for secured (private) Web pages and a Web request
profile referencing this AAA policy.
3. Create an AAA policy for unsecured (public) Web pages and a Web request
profile referencing this AAA policy.
Procedure
1.
2.
3.
4.
5.
145
Notes
Appliance (local)
8. Optional: In the Login form properties section, override the HTML form
content for the login page.
9. Optional: In the Timeouts section, modify the default values.
10. Click Apply to save the changes to the running configuration information.
11. Optional: Click Save Config to save the changes to the startup configuration.
What to do next
Create your AAA policies for user authentication and authorization on your
application server.
146
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Procedure
1.
2.
3.
4.
What to do next
Create a Web request profile referencing this AAA policy where the match section
identifies the secure pages. If you have not already done so, create an AAA policy
to specify who can access unsecured (public) Web pages.
Procedure
1. Click Object XML Processing AAA Policy.
2. Click Add.
3. In the Name field, enter a name of the policy.
4. Define the identity extraction method.
a. Click the Identity tab.
b. From the Methods list, select HTML Forms-based Login Policy. The pane
refreshes.
Appendix A. Referenced objects
147
What to do next
Create a Web request profile referencing this AAA policy where the match section
identifies the unsecure pages. If you have not already done so, create an AAA
policy to specify who can access secured (private) Web pages.
Main tab
Provide the following inputs:
Name Specify the name of the object.
148
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Admin State
Retain the default setting. To place the object in an inactive administrative
state, click disabled.
Comments
Specify a descriptive object-specific summary.
Mode Select the satisfaction style.
Admission
If a response passes the criteria defined in this profile, the server
response (the transaction response) is immediately forwarded to
the client. No other matching profile is run.
Prerequisite
If a response passes the criteria defined in this profile, any other
profile that matches the response can now run. The response is not
necessarily forwarded to the backend service. However, if there are
no other matching profile and the response passes this profile, the
response is passed to the backend service.
Each transaction could match more than a single response profile on the
same transaction. If this happens, the satisfaction style helps determine
how the results of those profiles are combined. A failed profile always
results in the failure of the transaction; however, a passed profile of the
prerequisite satisfaction style does not, on its own, guarantee acceptance of
the transaction. In those circumstances, any other matching profiles will be
run and the whole transaction only passes if no failure is found. The
admission style, on the other hand, passes the transaction as soon as the
profile is declared passing.
Most profiles will be admission style, but a typical use of a prerequisite
profile would be a broad match that enforces some very basic items
(maximum sizes for example) that is followed up with more specific
matches for stronger criteria.
Profile tab
Click the Profile tab.
Provide the following inputs:
Error Policy
Select an Error Policy. This Error Policy will run when any client response
violates this Web response Profile. The Error Policy selected will also
override any Error Policy selected at the Web Application Firewall object
level.
Retain the default (none) to enforce no error policy. Refer to Creating
Error Policy objects on page 100 for more information.
Content-Type List
Specify which content-type headers to allow on the response. Use a PCRE
to define the allowed content types, such as text/xml. If you do not define
any content type, all content types are allowed.
v Responses without a content type are assumed to have their
content-type header set to an empty string.
v Responses without a body are not subject to this constraint.
149
Processing tab
It is possible to perform actions on Web responses (such as transform XML content,
if encountered, or send a copy of response content to a third location).
Click the Processing tab to access these configuration options.
Provide the following inputs:
XML Processing
Select how to process responses containing an XML MIME type in the
HTTP header Content-Type field (for example, text/xml).
No processing
(Default) No processing performed.
Well Formed XML
The appliance parses the response to validate that the response is
well-formed XML. The XML Transformation Rule specified then
runs on the response and the result is used as the response content.
Well Formed SOAP
The appliance parses the response to validate that the response
adheres to the SOAP specifications. The XML Transformation Rule
specified then runs on the response and the result is used as the
response content.
XML Transformation Rule
Select a Processing Rule. The appliance applies this Processing Rule to
responses when the response contains an XML MIME type and the XML
processing policy is set to Well Formed XML or Well Formed SOAP. Refer
to Defining Processing Rule objects on page 120 for more information.
Non-XML Processing
Select how responses that do not contain an XML MIME type in the HTTP
header Content-Type field (www-url-encoded, for example), are processed.
No processing
(Default) No processing performed.
Side-Effect Rule
The appliance executes the Non-XML Processing Rule specified.
This rule cannot alter the content of the response (cannot access the
INPUT and OUTPUT multistep processing contexts). The Rule can
150
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
XML Manager
The firmware creates a default XML Manager object in the default domain and in
each application. The default instance in each domain can be edited like any other
instance of an XML Manager object. The default instance in each domain operates
independently of each other.
An XML Manager object obtains and manages XML documents, style sheets, and
other document resources on behalf of one or more services. An XML Manager
also provides the following capabilities:
151
152
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Client ID
System Name
User Name
Password
Based on these properties and the request type, the following actions occur:
DataPower requests a secure connection to the z/OS Communications Server
RACF performs authentication of users
RACF performs authorization to resources
RACF logs authorized and unauthorized attempts to access RACF-protected
resources
v z/OS Communications Server NSS protocol provides return codes and reason
codes for connectivity requests
v
v
v
v
153
To support this functionality, the NSS server must be configured to support the
NSS client. See the following z/OS Communications Server documentation for
these configuration steps:
v Enable the XMLAppliance discipline support. For further information, refer to the
section on network security services server in the z/OS Communications Server: IP
Configuration Reference.
v Authorize the client userid to SAF profiles representing security services and
resources. For further information, refer to the section on preparing to provide
network security services in the z/OS Communications Server: IP Configuration
Guide.
v Configure SSL for the TCP connection between the client and server. For further
information, refer to the section on configuring the NSS server in the z/OS
Communications Server: IP Configuration Guide.
Only one physical connection per Remote Address, Remote Port, and Client ID is
allowed. Additional z/OS NSS Client objects might be configured, but if more than
one client with the same tuple try to connect, the connection will fail. If the
connection is not established or the provided parameters are not valid, the object
operational state is down and shows one of the following event codes:
v Invalid registration parameters
v
v
v
v
For additional information on logged NSS protocol return codes and reason codes,
refer to http://www.ibm.com/support/docview.wss?rs=852&uid=swg21329236 for
z/OS Communications Server: IP Diagnosis Guide updates.
Contact NSS for SAF Authentication is selected as the Authenticate method in the
AAA policy configuration and Contact NSS for SAF Authorization is selected for
the Authorization method.
154
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
11. Specify the user name to use to authenticate with the SAF in the User Name
field.
12. Specify the password to use to authenticate with the SAF in the Password
field.
13. Reenter the password in the Confirm Password field.
14. Click Apply to save the changes to the running configuration.
15. Optional: Click Save Config to save the changes to the startup configuration.
155
156
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
The local context does not persist beyond the scope of the multistep
transaction. A multistep transaction can include both a request component
and a response component. The local context cannot be accessed by any
object outside of the scope of the multistep transaction. In other words, the
service cannot read and use the variable.
A local context variables can be user-defined or based on an extension
variable. For a complete list of the available extension variables, refer to
Extension variables on page 166.
var://context/context/variable
Addresses a variable called variable in a context called context. The
following example transforms the document in the tmp1 context with a
style sheet that is referenced by the stylesheet-1 variable (in the apple
context) and stores the transformed document in the tmp2 context:
xform tmp1 var://context/apple/stylesheet-1 tmp2
A named context does not persist beyond the scope of the multistep
transaction. A multistep transaction can include both a request component
and a response component. The local context cannot be accessed by any
object outside of the scope of the multistep transaction. In other words, the
service cannot read and use the variable.
Note: Creating variables in a named context is the recommended
approach. This form decouples the variable from the input and
output contexts and allows the variable to be accessed from any step
in a multistep scope.
A named context variables can be user-defined or based on an extension
variable. For a complete list of the available extension variables, refer to
Extension variables on page 166.
var://service/variable
Address a variable that is made available to a service (such as HTTP or
XSL Co-Processor) that is attached to a multistep session. The majority of
service variables are read-only and cannot be set.
157
Service variables
Service variables enable the setting and retrieval of pieces of state that usually
reflect the state of the current transaction.
The available service variables are separated alphabetically into the following
categories:
v Service variables that are available to all DataPower services
v Service variables that are available to only Multi-Protocol Gateway and Web
Service Proxy services
v Configuration services
v Load balancer service
v Legacy MQ-specific services
Permission
var://service/soap-fault-response
Read-write
Read-write variables
var://service/soap-fault-response
Set when the response input rule is treated as a SOAP fault.
158
Variable name
Permission
var://service/mpgw/backend-timeout
Read-write
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Table 6. Names and permissions for general service variables that are available to only
Multi-Protocol Gateway and Web Service Proxy services (continued)
Variable name
Permission
var://service/mpgw/skip-backside
Write-only
var://service/reply-to-q
Write-only
var://service/reply-to-qm
Write-only
Write-only variables
var://service/mpgw/skip-backside
For Multi-Protocol Gateway and Web Service Proxy services only, indicates
that the service skips backside processing.
Set this variable to 1 to prevent backside processing. Use this variable as a
custom redirect implementation, not as the point of the service. Because
the service is not aware of the processing flow, unusual messages might be
written to the event log.
Read-write variables
var://service/mpgw/backend-timeout
For Multi-Protocol Gateway and Web Service Proxy services only, gets or
sets the backend timeout, in seconds. Setting this variable overrides the
default timeout. Use an integer in the range of 1 through 86400.
var://service/reply-to-q
Read and write the value in the ReplyToQ (Reply to Queue) MQ header.
When read, shows the input message value. When write, changes the
dynamic routing.
var://service/reply-to-qm
Read and write the value in the ReplyToQMgr (Reply to Queue Manager)
MQ header. When read, shows the input message value. When write,
changes the dynamic routing.
Permission
var://service/config-param
Write-only
var://service/max-call-depth
Read-write
Write-only variables
var://service/config-param/parameterName value
Sets the specified stylesheet parameter to the specified value.
Read-write variables
var://service/max-call-depth
Gets or sets the maximum call depth for each transaction. This variable
controls how many levels of called rules can be layered before an error is
thrown. The default is 128.
Appendix B. Working with variables
159
Permission
var://service/lbhealth/
Write-only
Write-only variables
var://service/lbhealth/
Sets the member and state of a load balancer group.
Permission
var://service/correlation-identifier
Read-write
var://service/expiry
Read-write
var://service/format
Read-write
var://service/message-identifier
Read-write
var://service/message-type
Read-write
var://service/mq-ccsi
Write-only
var://service/mqmd-reply-to-q
Write-only
var://service/mqmd-reply-to-qm
Write-only
var://service/persistence
Read-write
var://service/priority
Read-write
var://service/reply-to-q
Read-write
var://service/reply-to-qm
Read-write
var://service/report
Read-write
Write-only variables
var://service/mq-ccsi
Sets the MQ message descriptor character set for an MQ Host or MQ
Proxy service.
var://service/mqmd-reply-to-q
Sets the output MQ message descriptor.ReplyToQ value for an MQ Host
or MQ Proxy service.
var://service/mqmd-reply-to-qm
Sets the output MQ message descriptor.ReplyToQMgr value for an MQ
Host or MQ Proxy service.
160
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Read-write variables
var://service/correlation-identifier
Read and write the MQ value in the Correlation Identifier header for
MQ Host and MQ Proxy services.
var://service/expiry
Read and write the MQ value in the Expiry header for MQ Host and MQ
Proxy services.
var://service/format
Read and write the MQ value in the Format header for MQ Host and MQ
Proxy services.
var://service/message-identifier
Read and write the MQ value in the Message Identifier header for MQ
Host and MQ Proxy services.
var://service/message-type
Read and write the MQ value in the Message Type header for MQ Host
and MQ Proxy services.
var://service/persistence
Read and write the MQ value in the Persistence for MQ Host and MQ
Proxy services.
var://service/priority
Read and write the MQ value in the Priority header for MQ Host and
MQ Proxy services.
var://service/reply-to-q
Read and write the MQ value in the ReplyToQ (Reply to Queue) header for
MQ Host and MQ Proxy services. When read, shows the input message
value. When write, changes the dynamic routing.
var://service/reply-to-qm
Read and write the MQ value in the ReplyToQMgr (Reply to Queue
Manager) header for MQ Host and MQ Proxy services. When read, shows
the input message value. When write, changes the dynamic routing.
var://service/report
Read and write the MQ value in the Report header for MQ Host and MQ
Proxy services.
Multistep variables
This section contains information about system variables in alphabetic order by
permission category. Multistep variables usually impact the behavior of specific
actions in the context of a processing rule. Table 10 lists the names and permission
for these variables.
Table 10. Names and permissions for variables that are available to all services
Variable name
Permission
var://service/log/soapversion
Read-write
Read-write variables
var://service/log/soapversion
Gets or sets the version of SOAP for use by a SOAP log targets. Use a
setvar action before a log action to change the version of SOAP to use
when logging this message.
Appendix B. Working with variables
161
Transaction variables
The available transaction variables are separated alphabetically into the following
categories:
v Asynchronous transactions
v Error handling
v Headers
v Persistent connections
v Routing
v URL
v Web Services Management (WSM)
Permission
var://service/soap-oneway-mep
Read-write
var://service/transaction-key
Write-only
var://service/transaction-name
Write-only
var://service/transaction-timeout
Write-only
Write-only variables
var://service/transaction-key
Sets the token for asynchronous transactions.
var://service/transaction-name
Sets the name for asynchronous transactions.
var://service/transaction-timeout
Sets the timeout for asynchronous transactions.
Read-write variables
var://service/soap-oneway-mep
Gets or sets the SOAP one-way Message Exchange Pattern (MEP)
notification.
v When true, notifies the service layer that this transaction is performing a
one-way MEP operation. This setting enables the service layer to
optimize resource usage while preventing Web Services Addressing
(WSA) from waiting for and faulting on a response that will never
arrive.
v When false, no notification is sent. When using WSA and one-way
MEPs, the service layer will time out waiting for a response.
When a DataPower service is configured for WSA-to-WSA and it receives a
WSA annotated message without the wsa:MessageId, the DataPower service
162
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
assumes that this is a one-way MEP and notifies the service layer by
setting this value of this variable to true.
This variable is not needed for Web Service Proxy services, as one-way
MEPs are identified by reviewing the specifics of the port operation.
Permission
var://service/error-code
Read-write
var://service/error-ignore
Read-write
var://service/error-message
Read-write
var://service/error-protocol-reason-phrase
Write-only
var://service/error-protocol-response
Write-only
var://service/error-subcode
Read-write
var://service/strict-error-mode
Read-write
Write-only variables
var://service/error-protocol-reason-phrase
Sets the protocol-specific reason phrase for an error. This variable
overwrites the reason phrase in the response to provide a short description
that an be understood by people.
var://service/error-protocol-response
Sets the protocol-specific response for an error. This variable overwrites the
protocol-specific response code in an error condition.
Read-write variables
var://service/error-code
Gets or sets the assigned error code from the Result Code table.
var://service/error-ignore
Gets or sets a flag that controls how the Front Side Handler processes error
condition. If the value is set and greater than zero, it does not run any
error handling action and produces a regular response. The content of the
message is produced by an error rule.
The default value is 0.
Currently, on the TIBCO EMS and WebSphere JMS Front Side Handler use
this variable. If any error happens and the variable is set, the Front Side
Handler acknowledges a request message and puts the response message
in the PUT queue. This response message will be a SOAP-fault or any
output that error rule generates.
var://service/error-message
Gets or sets the generic error message that is sent to the client. This
variable contains the error condition that stopped multistep processing.
Setting this variable overwrites the error response that is sent to the client
in an error condition. To set the error message that is written to the log
file, use the var://service/formatted-error-message variable.
Appendix B. Working with variables
163
var://service/error-subcode
Gets or sets the error sub-code. This variable can help to disambiguate the
reason for which the error rule was invoked. Often, the sub-code is the
same as the value of the var://service/error-code variable. Sometimes,
the sub-code is a more specific result code.
var://service/strict-error-mode
Gets or sets the strict error mode. This variable controls the error mode for
multistep processing.
v If the value is set, an invocation of the dp:reject extension element
stops multistep processing.
v If the value is not set, an invocation of the dp:reject extension element
logs a message but does not stop multistep processing.
Permission
var://service/append-request-header/
Write-only
var://service/append-response-header/
Write-only
var://service/set-request-header/
Write-only
var://service/set-response-header/
Write-only
Write-only variables
var://service/append-request-header/
Appends to the protocol request header.
var://service/append-response-header/
Appends to the protocol response header.
var://service/set-request-header/
Sets the protocol request header. This variable directly correlates to the
dp:set-request-header() extension function. Setting the
var://service/set-request-header/FOO variable to the value BAR would
set the request header FOO to BAR.
var://service/set-response-header/
Sets the protocol response header. This variable directly correlates to the
dp:set-response-header() extension function. Setting the
var://service/set-response-header/FOO variable to the value BAR would
set the response header FOO to BAR.
164
Variable name
Permission
var://service/connection/note
Read-write
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Read-write variables
var://service/connection/note
Gets or sets the annotation for the current connection. This variable allows
the user to annotate the current protocol session. The value could be an
identifier that could be used to maintain the state based on an existing
protocol session.
Permission
var://service/routing-url
Write-only
var://service/routing-url-sslprofile
Write-only
Write-only variables
var://service/routing-url
For XML Firewall, Multi-Protocol Gateway, and Web Service Proxy
services, sets the routing URL. This variable can be set one time only and
takes the following format:
<dp:set-variable name="var://service/routing-url"
value="'protocol://target/URI'" />
165
Table 16. Names and permissions for variables that are available for URL-based
transactions
Variable name
Permission
var://service/protocol-method
Read-write
var://service/URI
Read-write
Read-write variables
var://service/protocol-method
Gets or sets the HTTP method of the transaction.
var://service/URI
Gets or sets the request URI of the transaction.
Permission
var://service/wsa/timeout
Read-write
var://service/wsa/genpattern
Read-write
var://service/wsm/wsdl-error
Write-only
var://service/wsm/wsdl-warning
Write-only
Write-only variables
var://service/wsm/wsdl-error
Sets the WSDL error.
var://service/wsm/wsdl-warning
Sets the WSDL warning.
Read-write variables
var://service/wsa/timeout
Gets or sets the timeout value for the WS-Addressing asynchronous reply.
var://service/wsa/genpattern
Gets or sets the pattern for the WS-Addressing asynchronous reply.
Extension variables
This section contains information about system variables in alphabetic order by
permission category. Extension variables usually impact the behavior of specific
actions, particularly fetch, results, and results-async actions. Table 18 lists the
names and permission for these variables.
Table 18. Names and permissions for extension variables
166
Variable name
Permission
var://local/_extension/allow-compression
Write-only
var://local/_extension/donot-follow-redirect
Write-only
var://local/_extension/header/
Write-only
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Permission
var://local/_extension/http-10-only
Write-only
var://local/_extension/prevent-persistent-connection
Write-only
var://local/_extension/sslprofile
Write only
Write-only variables
var://local/_extension/allow-compression
Enables compression of HTTP requests. Set this variable to allow
compression of outgoing results content and negotiate the returned
document to be compressed if the underlying protocol supports it. For
HTTP, this means the content-encoding and accept-encoding headers.
var://local/_extension/donot-follow-redirect
Disables HTTP redirects. Set this variable to prevent the following of
protocol-level redirect sequences on the outgoing results and fetch calls
that are associated with this context. By default, redirects are followed.
var://local/_extension/header/
Appends the specified header field to the protocol connection. Variables of
the following form can be set to append headers to the dp:url-open()
extension function or results action or fetch action connection when a
context that contains them is used as the input context:
_extension/header/*
The following example would add the HTTP header X-foo: bar to the
HTTP request:
setvar tmpvar2 var://local/_extension/header/X-foo bar
results tmpvar2 http://foo.bar.com/foome.asp tmpvar3"
var://local/_extension/http-10-only
Restricts HTTP to version 1.0. Set this variable to prevent the use of
HTTP/1.1 on the related context of a results action or fetch action.
var://local/_extension/prevent-persistent-connection
Disables HTTP persistent connection. Set this variable to prevent persistent
connections of the outgoing a results action call or fetch action call that is
associated with this context. Persistent connections are supported by
default, where appropriate.
var://local/_extension/sslprofile
Sets the SSL proxy profile for the request. This variable can be set on the
input context to a dp:url-open() extension function or to a results action or
to a fetch action to override the selection of an SSL Proxy Profile. For
instance:
results tmpvar2 https://foo.bar.com/foome.asp tmpvar3
would normally use the SSL Proxy Profile that is associated with any
user-agent configuration for the URL
https://foo.bar.com/foome.asp
167
var://local/_extension/timeout
Sets the request timeout on an input context to override any previously set
timeout parameter. Set the value in seconds.
System variables
This section contains information about system variables in alphabetic order by
permission category. Table 19 lists the names and permission for these variables.
Table 19. Names and permissions for system variables
Variable name
Permission
var://system/map/debug
Read-write
var://system/tasktemplates/debug
Read-write
Read-write variables
var://system/map/debug
Gets or sets the debugging level for role-based management (RBM).
var://system/tasktemplates/debug
Gets or sets the debugging level for task templates.
168
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Category
allow-compression
var://local/_extension/allow-compression
Extension
append-request-header
var://service/append-request-header
Transaction,
headers
append-response-header
var://service/append-response-header
Transaction,
headers
backend-timeout
var://service/mpgw/backend-timeout
Service, general
config-param
var://service/config-param
Service,
configuration
correlation-identifier
var://service/correlation-identifier
Service, MQ
debug
var://system/map/debug
System
var://system/tasktemplates/debug
donot-follow-redirect
var://local/_extension/donot-follow-redirect
Extension
error-code
var://service/error-code
Transaction, error
handling
error-ignore
var://service/error-ignore
Transaction, error
handling
error-message
var://service/error-message
Transaction, error
handling
error-protocol-reason-phrase
var://service/error-protocol-reason-phrase
Transaction, error
handling
error-protocol-response
var://service/error-protocol-response
Transaction, error
handling
error-subcode
var://service/error-subcode
Transaction, error
handling
expiry
var://service/expiry
Service, MQ
format
var://service/format
Service, MQ
genpattern
var://service/wsa/genpattern
Transaction, WSM
header
var://local/_extension/header
Extension
http-10-only
var://local/_extension/http-10-only
Extension
lbhealth
var://service/lbhealth
Service, load
balancer
max-call-depth
var://service/max-call-depth
Service,
configuration
message-identifier
var://service/message-identifier
Service, MQ
message-type
var://service/message-type
Service, MQ
mq-ccsi
var://service/mq-ccsi
Service, MQ
mqmd-reply-to-q
var://service/mqmd-reply-to-q
Service, MQ
mqmd-reply-to-qm
var://service/mqmd-reply-to-qm
Service, MQ
note
var://service/connection/note
Transaction,
persistent
connection
169
Category
persistence
var://service/persistence
Service, MQ
prevent-persistent-connection
var://local/_extension/prevent-persistentconnection
Extension
priority
var://service/priority
Service, MQ
reply-to-q
var://service/reply-to-q
Service, MQ
reply-to-qm
var://service/reply-to-qm
Service, MQ
report
var://service/report
Service, MQ
routing-url
var://service/routing-url
Transaction,
routing
routing-url-sslprofile
var://service/routing-url-sslprofile
Transaction,
routing
set-request-header
var://service/set-request-header
Transaction,
headers
set-response-header
var://service/set-response-header
Transaction,
headers
skip-backside
var://service/mpgw/skip-backside
Service, general
soap-fault-response
var://service/soap-fault-response
Service, general
soap-oneway-mep
var://service/soap-oneway-mep
Transaction,
asynchronous
soapversion
var://service/log/soapversion
Service, multistep
sslprofile
var://local/_extension/sslprofile
Extension
strict-error-mode
var://service/strict-error-mode
Transaction, error
handling
timeout
var://service/wsa/timeout
Transaction, WSM
transaction-key
var://service/transaction-key
Transaction,
asynchronous
transaction-name
var://service/transaction-name
Transaction,
asynchronous
transaction-timeout
var://service/transaction-timeout
Transaction,
asynchronous
URI
var://service/URI
Transaction, URL
wsdl-error
var://service/wsm/wsdl-error
Transaction, WSM
wsdl-warning
var://service/wsm/wsdl-warning
Transaction, WSM
170
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Getting a fix
A product fix might be available to resolve your problem. To determine what fixes
are available for your IBM product, check the product support site by performing
the following steps:
1. Go to the IBM Support site at the following Web address:
http://www.ibm.com/support
2. Select Support & Downloads Download to open the Support & downloads
page.
3. From the Category list, select WebSphere.
4. From the Sub-Category list, select WebSphere DataPower SOA Appliances.
5. Click the GO icon to display the list of most recent updates.
6. Click the link for the firmware and documentation download that is specific to
your WebSphere DataPower product.
7. Follow the instructions in the technote to download the fix.
171
172
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Trademarks
IBM, the IBM logo, CICS, developerWorks, DB2, DataPower, IMS, RACF,
Redbooks, Tivoli, WebSphere, and z/OS are registered trademarks of the
International Business Machines Corporation in the United States or other
countries.
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered
trademarks or trademarks of Adobe Systems Incorporated in the United States,
and/or other countries.
Microsoft and Windows are trademarks of Microsoft Corporation in the United
States, other countries, or both.
Java and all Java-based trademarks and logos are trademarks or registered
trademarks of Sun Microsystems, Inc. in the United States and other countries.
Copyright IBM Corp. 2002, 2009
173
Other company, product, and service names may be trademarks or service marks
of others.
174
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Index
Special characters
.. (dot dot) filter
threat protection
Web request profiles 144
... button
list of referenced object 7
referenced object 6
.exe filter
threat protection
Web request profiles 144
.java.policy file 37
[configuration-database] stanza, file
entry 88
[ldap] stanza, ssl-keyfile-pwd entry 88
[manager] stanza, replica entry 88
+ button
list of referenced object 7
referenced object 6
A
AAA
authentication
search parameters 101
search parameters 101
TFIM 89
AAA Info file
Authenticate element 83
Authorize element 84
editor
authenticated identities 84
authorized access to resources
confirmation 87
credentials 84
default credential 84
file information 87
map credentials 86
map resources 86
overview 84
unauthenticated identity 84
MapCredentials element 84
MapResource element 84
overview 83
AAA policy
Web request profile
enabling 145
secured Web pages 146
unsecured Web pages 147
AAA Policy
AAA Info file
Authenticate element 83
Authorize element 84
MapCredentials element 84
MapResource element 84
overview 83
file editor
authenticated identities 84
authorized access to resources
confirmation 87
credentials 84
Copyright IBM Corp. 2002, 2009
87
87
B
backend-timeout variable 159
body size
threat protection
Web request profiles 144
bold typeface xii
builder
deployment policy 55
buttons
... 6
+ 6
Apply 8
Cancel 8
Delete 9
175
buttons (continued)
Edit 7
Logout 5
Save Config 5, 8
Undo 9
View 7
C
CA Unicenter Manager 151
caches
flushing
document cache 153
stylesheet cache 153
Cancel button 8
cert: directory 33
certificate files
location 33
Certificate objects
export packages 43
certificates
DER 13
exporting 15
generating 14
importing 16
PEM 13
PKCS #12 13
PKCS #8 13
security
location, shared 34
location, Web browsers 34
supported formats 13
uploading 37
checkpoint configuration files
location 33
chkpoints: directory 33
CICS Transaction Server 79
clear pdp cache CLI 96
clear xsl cache CLI 96
Clone link 10
commands
clear pdp cache 96
clear xsl cache 96
web-mgmt 5
compression policy, user agent 130
config: directory 33
configuration
managing appliance configuration 41
configuration checkpoints
defining number to allow 48
deleting 50
listing 49
loading 50
overwriting 49
rolling back 50
saving 49
configuration data
applying 8
backing up
WebGUI 43, 44
backing up application domains 44
comparing
WebGUI 52
configuration checkpoints 48
copying
files 47
objects 47
176
171
29
dashboard 5
DataPower discussion forum x
DataPower product Web site x
default log
location 33
Delete button 9
list of referenced object 7
deployment policy
accepted configuration 54
creating 54
filtered configuration 54
modified configuration 54
using the builder 55
Deployment Policy
object pages 54
deployment policy builder
creating matching statements 55
DER
certificate format 13
key format 13
developerWorks Web site x
directories
audit: 33
available 33
cert: 33
chkpoints: 33
config: 33
displaying contents 35
dpcert: 33
export: 33
hiding contents 35
image: 33
local: 33
logstore: 33
logtemp: 33
managing 33
pubcert: 34
refreshing contents 36
sharedcert: 34
store: 34
tasktemplates: 35
temporary: 35
disabled administrative state 10
discussion forum, DataPower x
documentation conventions,
typefaces xii
Domain list 5
down operation state 10
dpcert: directory 33
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
E
Edit button 7
enabled administrative state 10
encoding, chunked content 132
error handling variables
listing 163
service/error-code 163
service/error-ignore 163
service/error-message 163
service/error-protocol-reasonphrase 163
service/error-protocol-response 163
service/error-subcode 163
service/strict-error-mode 164
error maps
application security policy
purpose 97
Error Policy
object pages 100
Export link 9
export packages
admin account 43
files not included 43
objects not included 43
permission 43
export: directory 33
Extensible Access Control Markup
Language
See XACML PDP
extension functions
node-set() 151
extension variables
listing 166
local/_extension/allowcompression 167
local/_extension/donot-followredirect 167
local/_extension/header/ 167
local/_extension/http-10-only 167
local/_extension/prevent-persistentconnection 167
local/_extension/sslprofile 167
local/_extension/timeout 168
external resources, accessing x
F
file entry, [configuration-database]
stanza 88
File Management utility, launching
file system
See directories
files
.java.policy 37
AAAInfo.xsd 83
auto-config.cfg 8
certificates
location 33
checkpoint configurations
location 33
configurations
location 33
copying 38
remote URL 38
deleting 40
35
files (continued)
editing
during configuration 8
File Management utility 40
exported, location 33
fetching 38
loginPage.htm 144
managing 33
moving 39
not in export packages
firmware files 43
log files 43
private keys
location 33
renaming 39
TAM
ASCII configuration 88
creating configuration 88
modifying configuration 88
obfuscated configuration 88
SSL key 88
SSL stash 88
uploading
JKS 37
remote 38
workstation 36
viewing
during configuration 8
File Management utility 40
filtered configuration
deployment policy 54
Firewall Credentials
configuring 19
creating 19
firmware files
between release levels 43
export packages 43
firmware images
location 33
fixes, obtaining 171
flash drive
See directories
FTP client
command channel
encrypting 133
stopping encryption after
authentication 133
data (ASCII, binary) 133
encrypting file transfers 133
NAT compatibility 133
passive mode 133
sending command to server 133
unique file names (STOU, STOR) 133
user agent 133
G
general variables
listing 158
service/soap-fault-response
158
H
header injection policy, user agent 132
header retention policy, user agent 131
I
IBM Tivoli Access Manager
See TAM
IBM Tivoli Federated Identity Manager
See TFIM
icons
Web Application Firewall 29
ICRX token 79
Identification Credentials
configuring 19
creating 19
image: directory 33
Import Package
creating 42
Include Configuration File
creating 41
object pages 41
installation images
See firmware images
intellectual property 173
italics typeface xii
J
J2RE (j2re1.4.2) 37
j2re1.4.2 (J2RE) 37
j2sdk1.4.2 (SDK) 37
Java Crypto Extension
See SunJCE
Java Crypto Extension Key Store
See JCEKS
Java Key Store
See JKS
java.security package 37
JCE
See SunJCE
JCEKS 37
JKS
crypto extension 37
Index
177
JKS (continued)
granting permissions 37
java.security package 37
keytool utility 37
managing 37
required software 37
uploading certificates 37
working with 37
K
KDC, Kerberos 92
Kerberos
AP-REQ message 92
configuring KDC server 93
KDC 92
keytab 92
principal 92
Kerberos AP-REQ
post processing, AAA 78
Kerberos KDC server
configuring 93
creating 93
object pages 93
Kerberos keytab
configuring 94
definition 92
Kerberos Keytab File
object pages 94
Key Distribution Center
See KDC
Key objects
export packages 43
key-certificate pairs
creating 13
keys
DER 13
exporting 15
generating 14
importing 16
PEM 13
PKCS #12 13
PKCS #7 13
supported formats 13
knowledge bases
searching 171
L
LDAP
authentication
search parameters 101
credentials mapping
search parameters 101
search parameters 101
licensing
sending inquiries 173
links
Clone 10
Export 9
Show Probe 11
View Logs 9
View Status 10
load balancer group
adding members 110
basic configuration 109
178
M
MapCredentials element, AAA Info
file 84
MapResource element, AAA Info file
Matching Rule
object pages 117
matching statements
deployment policy builder 55
deployment policy, manual 56
message catalogs 34
message monitors
count monitors 99
modified configuration
deployment policy 54
Modified configuration state 10
84
monitors
count monitors
configuring 99
message monitors
count monitors 99
monospaced typeface xii
MQ Host variables
listing 160
service/correlation-identifier 161
service/expiry 161
service/format 161
service/message-identifier 161
service/message-type 161
service/mq-ccsi 160
service/mqmd-reply-to-q 160
service/mqmd-reply-to-qm 160
service/persistence 161
service/priority 161
service/reply-to-q 161
service/reply-to-qm 161
service/report 161
MQ Proxy variables
listing 160
service/correlation-identifier 161
service/expiry 161
service/format 161
service/message-identifier 161
service/message-type 161
service/mq-ccsi 160
service/mqmd-reply-to-q 160
service/mqmd-reply-to-qm 160
service/persistence 161
service/priority 161
service/reply-to-q 161
service/reply-to-qm 161
service/report 161
MQMD header, retaining 131
Multi-Protocol Gateway
service variables
backend-timeout 159
service/reply-to-q 159
service/reply-to-qm 159
skip-backside 159
multistep variables
log/soapversion 161
N
Name-Value Profile
object pages
Main 117
Validation List 119
name-value profiles
Web request profiles
HTTP headers, filtering 141
query strings, filtering 141
URL-encoded content,
filtering 141
namespace mappings, AAA Policy 82
NAT
FTP clients 133
navigation
Administration menu 5
Network menu 5
Objects menu 5
Services menu 5
Status menu 5
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
O
object pages
AAA Policy
Authenticate 62
Authorize 70
Identity 60
LTPA Attributes 81
Main 57
Map Credentials 68
Map Resource 70
Namespace Mapping 80
Resource 69
SAML Attributes 80
Transaction Priority 81
Crypto Certificate 17
Crypto Firewall Credentials 19
Crypto Identification Credentials 19
Crypto Key 20
Crypto Profile 22
Crypto Validation Credentials 26
Deployment Policy 54
Error Policy 100
Include Configuration File 41
Kerberos KDC server 93
Kerberos Keytab File 94
Matching Rule 117
Name-Value Profile
Main 117
Validation List 119
Processing Rule 120
Rate Limiter 121
Session Management Policy 122
SSL Proxy Profile 24
TAM 89
TFIM 90
URL Rewrite Policy
Main 123
URL Rewrite Rule 123
Web Application Firewall
HTTP Options 137
Main 134
Proxy Settings 136
Source Addresses 138
Web Response Profile
Codes & Versions 150
Main 148
Name Value 151
Processing 150
Profile 149
Threat Protection 151
XACML PDP 95
XML Manager 151
objects
administrative state 10
configuration state 10
not in export packages
Certificate 43
Key 43
User 43
objects (continued)
operational state 10
referenced
... button 6
+ button 6
creating 6
modifying 6
selecting 6
status 10
TFIM 89
Objects menu 5
operational states, objects
10
P
patents 173
PEM
certificate format 13
key format 13
persistent connections variables
listing 164
service/connection/note 165
PKCS #12
certificate format 13
key format 13
PKCS #7
certificate format 13
PKCS #8
key format 13
Policy Decision Point
See XACML PDP
post processing, AAA
available activities 77
CICS Transaction Server 79
custom style sheet 77
ICRX token 79
Kerberos AP-REQ 78
LTPA 79
SAML assertion 77
SPNEGO 79
TFIM 79
WS-Security UsernameToken 79
WS-Trust 78
z/OS identity propagation 79
principal, Kerberos 92
private key files
location 33
private keys
uploading 37
Processing Rule
object pages 120
product documentation Web site x
product Web site, DataPower x
pubcert: directory 34
R
Range header, retaining
Rate Limiter
object pages 121
Redbooks Web site x
referenced objects
... button 6
+ button 6
creating 6
modifying 6
131
S
SAML assertion
post processing, AAA 77
SAML attributes
defining, AAA Policy 82
Save Config button 5, 8
Saved configuration state 10
scenarios
Web Application Firewall
benefits management site 2
college enrollment form 1
trading site 2
schemas
location 34
SCP protocol
authentication policy, user agent 130
public keys 130
SDK (j2sdk1.4.2) 37
search parameters, LDAP 101
security certificates
shared
location 34
Web browsers
location 34
SecurityContextToken, WS-Trust
post processing, AAA 78
server pool
See load balancer group
server state
load balancer group 102
service variables
listing 158
types 158
service/append-request-header/
variable 164
service/append-response-header/
variable 164
service/config-param/ variable 159
service/connection/note variable 165
service/correlation-identifier
variable 161
service/error-code variable 163
Index
179
180
T
TAM
ASCII configuration file 88
authorization server replicas 89
configuration, general 87
configuring TAM objects 89
creating configuration files 88
creating TAM objects 89
licensing 87
modifying configuration files 88
obfuscated configuration file 88
object pages 89
refreshing certificates 89
security 88
SSL key file 88
SSL stash file 88
tasktemplates: directory 35
TE header, retaining 131
temporary: directory 35
TFIM
AAA 89
object 89
object pages 90
post processing, AAA 79
TFIM endpoint
WS-Trust messages 90
threat protection
Web request profiles 144
Tivoli Access Manager
See TAM
trademarks 173
transaction headers variables
listing 164
service/append-request-header/ 164
service/append-response-header/
164
service/set-request-header/ 164
U
Undo button 9
Unicode filter
threat protection
Web request profiles 144
up operational state 10
URI fragments
threat protection
Web request profiles 144
URI length
threat protection
Web request profiles 144
URL Rewrite Policy
object pages
Main 123
URL Rewrite Rule 123
User Agent
creating 127
default configuration 126
modifying basic configuation 127
overview 126
policies
allow-compression policy 130
basic authentication 126, 129
chunked upload 132
chunked uploads, HTTP 1.1 126
compression 126
compression policy 130
FTP client 126, 133
header injection 126, 132
header retention 126, 131
HTTP 1.0 restriction policy 131
HTTP proxy 126
HTTP proxy policy 128
public key authentication 126, 130
restriction, HTTP 1.0 126
SOAP action 129
SOAPAction 126
SSL proxy 126
SSL proxy policy 128
User objects
export packages 43
UsernameToken
post processing, AAA 79
utilities
keytool 37
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
V
Validation Credentials
creating
non expiring, non-passwordprotected certificates 26
select certificates 27
types of lists 26
variables
asynchronous
service/soap-oneway-mep 162
asynchronous transactions
listing 162
service/transaction-key 162
service/transaction-name 162
service/transaction-timeout 162
configuration service
listing 159
service/config-param/ 159
service/max-call-depth 159
error handling
listing 163
service/error-code 163
service/error-ignore 163
service/error-message 163
service/error-protocol-reasonphrase 163
service/error-protocolresponse 163
service/error-subcode 163
service/strict-error-mode 164
extension
listing 166
local/_extension/allowcompression 167
local/_extension/donot-followredirect 167
local/_extension/header/ 167
local/_extension/http-10-only 167
local/_extension/preventpersistent-connection 167
local/_extension/sslprofile 167
local/_extension/timeout 168
general
listing 158
service/soap-fault-response 158
list, all available 169
load balancer service
listing 160
service/lbhealth/ 160
MQ Host
listing 160
service/correlation-identifier 161
service/expiry 161
service/format 161
service/message-identifier 161
service/message-type 161
service/mq-ccsi 160
service/mqmd-reply-to-q 160
service/mqmd-reply-to-qm 160
service/persistence 161
service/priority 161
service/reply-to-q 161
service/reply-to-qm 161
service/report 161
MQ Proxy
listing 160
service/correlation-identifier 161
variables (continued)
MQ Proxy (continued)
service/expiry 161
service/format 161
service/message-identifier 161
service/message-type 161
service/mq-ccsi 160
service/mqmd-reply-to-q 160
service/mqmd-reply-to-qm 160
service/persistence 161
service/priority 161
service/reply-to-q 161
service/reply-to-qm 161
service/report 161
Multi-Protocol Gateway
backend-timeout 159
service/reply-to-q 159
service/reply-to-qm 159
skip-backside 159
multistep
log/soapversion 161
persistent connections
listing 164
service/connection/note 165
service
listing 158
type 158
system
listing 168
system/map/debug 168
system/tasktemplates/debug 168
transaction
listing 162
type 162
transaction headers
listing 164
service/append-request-header/
164
service/append-response-header/
164
service/set-request-header/ 164
service/set-response-header/ 164
transaction routing
listing 165
service/routing-url 165
service/routing-url-sslprofile 165
transaction URL
listing 165
service/protocol-method 166
service/URI 166
types 157
using 157
Web Service Proxy
backend-timeout 159
service/reply-to-q 159
service/reply-to-qm 159
skip-backside 159
WSM
listing 166
service/wsa/genpattern 166
service/wsa/timeout 166
service/wsm/wsdl-error 166
service/wsm/wsdl-warning 166
View button 7
View Logs link 9
View Status link 10
W
Web Application Firewall
configuring 29
Control Panel icon 29
enabling secured communication 30
general configuration 29
high-level configuration 29
object pages
HTTP Options 137
Main 134
Proxy Settings 136
Source Addresses 138
scenarios
benefits management site 2
college enrollment form 1
trading site 2
Web Management Interface 5
Web request profiles
AAA policy
enabling 145
secured Web pages 146
unsecured Web pages 147
basic configuration 139
cookies 142
creating 139
description 139
HTTP headers, filtering 141
HTTP methods 141
HTTP versions 141
modifying profile 140
multipart forms submission 143
processing rules 141
query strings, filtering 141
request processing 141
threat protection 144
URL-encoded content, filtering 141
Web Response Profile
creating 148
object pages
Codes & Versions 150
Main 148
Name Value 151
Processing 150
Profile 149
Threat Protection 151
overview 148
Web Service Proxy
service variables
backend-timeout 159
service/reply-to-q 159
service/reply-to-qm 159
skip-backside 159
Web sites
DataPower product x
developerWorks x
discussion forum x
product documentation x
Redbooks x
web-mgmt command 5
WebGUI
accessing 5
Administration menu 5
applying configuration changes 8
canceling changes 8
cloning services 10
common tasks 8
dashboard 5
Index
181
WebGUI (continued)
deleting objects 9
Domain list 5
exporting objects 9
logging in 5
Logout button 5
Network menu 5
Objects menu 5
resetting configuration 9
reverting changes 9
Save Config button 5
saving configuration changes 8
Services menu 5
Status menu 5
viewing configuration-specific logs
viewing object status 10
viewing probe data 11
Welcome screen 5
Welcome screen 5
workstation
uploading files 36
WS-Security Management
See WSSM
WS-Trust
post processing, AAA 78
WS-Trust messages
TFIM endpoint 90
WSM variables
listing 166
service/wsa/genpattern 166
service/wsa/timeout 166
service/wsm/wsdl-error 166
service/wsm/wsdl-warning 166
X
XACML PDP
configuring 95
object pages 95
XML Manager
caches
flushing the document cache 153
flushing the stylesheet cache 153
configuring 151
document cache, flushing 153
modifying 151
object pages 151
XPath bindings
AAA Policy 82
Z
z/OS identity propagation
z/OS NSS Client
creating 154
overview 153
182
79
IBM WebSphere DataPower Integration Appliance XI50: Web Application Firewall Developers Guide
Printed in USA