Security Guide

     Previous  Next    Open TOC in new window    View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Configuring Transport-Level Security

Transport-level security applies security checks as part of establishing a connection between service consumers, proxy services, and business services. The type of security checks that AquaLogic Service Bus can apply depends on the protocol that the proxy service or business service uses to communicate. Some protocols can also encrypt the communication between client and endpoint to prevent snooping from third parties.

Inbound transport-level secures the communication between clients and AquaLogic Service Bus proxy services. Outbound transport security secures all three techniques of sending outbound requests from AquaLogic Service Bus proxy services: route actions, publish actions, and callout actions.

The following sections describe configuring transport-level security:

Note: Transport-level security secures only the connection itself. Even if you use the HTTPS or JMS protocols to encrypt the communication, if there is an intermediary between a Web services client and an AquaLogic Service Bus proxy service, such as a router, message queue or another proxy service, the intermediary gets the SOAP message in plain text. When the intermediary sends the message to the second receiver, the second receiver does not know who the original sender was. To prevent unintended intermediaries from viewing or modifying SOAP or JMS messages, configure message-level security in addition to transport-level security. See Configuring Message-Level Security for Web Services.

 


Configuring Transport-Level Security for HTTPS

Note: In previous releases of ALSB, HTTPS was managed via the HTTPS transport. In this release of ALSB, HTTPS has been merged in to the HTTP transport.
Note: This section has been updated to reflect the new configuration model.

The HTTPS protocol uses SSL to secure communication. SSL can be used to encrypt communication, ensure message integrity, and to require strong server and client authentication. Before you can use HTTPS, you must configure SSL in WebLogic Server, see Configuring the WebLogic Security Framework: Main Steps.

The following sections describe configuring transport-level security for the HTTPS protocol:

HTTPS Authentication Levels

For each proxy service or business service that communicates over the HTTPS protocol, you can configure the service to require one of the following levels of authentication:

Configuring Inbound HTTPS Security: Main Steps

To configure inbound transport-level security for a proxy service:

  1. Make sure that you have configured the WebLogic security framework to support SSL, an authentication provider, and an identity assertion provider, depending on the HTTPS authentication level that you want to use:
    • For no client authentication (anonymous requests), set Client Authentication to None.
    • For basic authentication, set Client Authentication to Basic. See “Adding a User” under Security Configuration in Using the AquaLogic Service Bus Console.
    • For SSL client authentication, set Client Authentication to Client Certificate, configure the WebLogic Identity Assertion provider and the WebLogic CertPath Provider.
    • For custom authentication token, set Client Authentication to Custom Authentication. The custom authentication token can be any active token type previously configured for an Identity Assertion provider that is carried in an HTTPS header. Custom authentication concepts are described in Configuring Custom Authentication.
    • Note: You must first configure, or create and configure, a WebLogic Server Identity Assertion provider as described in Configuring Identity Assertion Providers for Custom Tokens, and add the user names and passwords of the clients that you want to allow access to the Security Configuration module of the AquaLogic Service Bus Console.

      See Configuring the WebLogic Security Framework: Main Steps.

  2. When you create a proxy service in the AquaLogic Service Bus Console, on the Transport Configuration page select HTTP.
  3. On the HTTP Transport Configuration page, click the HTTPS check box.
  4. Choose an authentication level, as described in HTTPS Authentication Levels. You may also want to see “Adding a Proxy Service” under Proxy Services in Using the AquaLogic Service Bus Console.
  5. Make your Dispatch Policy, Request Encoding, and Response Encoding choices, as described in “Adding a Proxy Service” under Proxy Services in Using the AquaLogic Service Bus Console.
  6. If the service you are creating has operations, make your selections on the Operation Selection Configuration page. Determine whether to enforce WS-I compliance (for SOAP 1.1 services only) and select the selection algorithm to use to determine the operation called by this proxy service. This option is available only for SOAP or XML services defined from a WSDL.

Configuring Outbound HTTPS Security: Main Steps

In outbound transport-level security, a proxy service is the client that opens a connection with a business service.

To configure outbound transport-level security:

  1. If you are configuring transport-level security for a production environment (as opposed to a development or testing environment), make sure that Host Name Verification is enabled. See “Using Host Name Verification” in Configuring SSL in Securing WebLogic Server.
  2. When you create a business service in the AquaLogic Service Bus Console, on the Transport Configuration page select HTTP. See “Adding a Business Service” under Business Services in Using the AquaLogic Service Bus Console.

    Follow the prompts to choose an authentication level.
  3. If you configured the proxy service such that AquaLogic Service Bus does not authenticate clients, configure the enterprise system to authenticate clients by selecting an authentication level of one-way SSL, BASIC authentication.

  4. The URI determines whether HTTP or HTTPS is used. HTTP business services can combine HTTP and HTTPS URLs unless the authentication method is Client Certificate, in which case all URLs must be HTTPS.
  5. If the business service uses HTTPS with BASIC authentication, create a service account to provide the user name and password that the business service requires.
  6. You can add a user name and password directly to the service account, or configure the service account to pass through the credentials that it received from its client’s request, or you can map a client user name to an AquaLogic Service Bus user. If you configured the proxy service so that AquaLogic Service Bus does not authenticate clients, create a service account that passes through the credentials. See Service Accounts in Using the AquaLogic Service Bus Console.

  7. If the business service uses Client Certificate authentication, do the following:
    1. Create a service key provider to provide the key-pair that proxy services use for SSL client authentication with the business service. See Service Key Providers in Using the AquaLogic Service Bus Console.
    2. Create a proxy service or edit an existing proxy service so that it specifies the service key provider. See “Viewing and Changing Proxy Services” under Proxy Services in Using the AquaLogic Service Bus Console.

 


Configuring Transport-Level Security for HTTP

The HTTP protocol does not encrypt communication between clients and proxy services or business services, but it does support BASIC authentication in which clients send user names and passwords in requests. HTTP also supports custom token authentication.

Caution: Unless you have configured strong network security, BEA recommends that you do not use BASIC authentication with HTTP in production environments because the password is sent in clear text. Instead, use BASIC authentication with HTTPS.

The following sections describe configuring transport-level security for the HTTP protocol:

Configuring Inbound HTTP Security: Main Steps

To configure inbound transport-level security for a proxy service:

  1. When you create a proxy service in the AquaLogic Service Bus Console, on the Transport Configuration page select HTTP. Choose the Client Authentication option None, Basic, or Custom Authentication. If you choose Custom Authentication, you must also specify the HTTP header that is to carry the token and the token type.
  2. The steps for configuring transport-level custom credentials are described in “Adding a Proxy Service” under Proxy Services in Using the AquaLogic Service Bus Console. Custom authentication concepts are described in Configuring Custom Authentication.

    The custom authentication token can be any active token type, previously configured for an Identity Assertion provider, that is carried in an HTTP header.

    Note: To use custom authentication you must first configure, or create and configure, a WebLogic Server Identity Assertion provider as described in Configuring Identity Assertion Providers for Custom Tokens.
    Note: If you want AquaLogic Service Bus to authenticate clients (Basic or Custom Authentication) you must create user accounts for the clients. See Configuring Administrative Security: Main Steps.
  3. Modify the proxy service’s default transport-level access control policy, which specifies conditions under which users, groups, or roles can access a proxy service. See “Editing Transport-Level Access Policies” under Security Configuration in Using the AquaLogic Service Bus Console.

Configuring Outbound HTTP Security: Main Steps

In outbound transport-level security, a proxy service is the client that opens a connection with a business service.

To configure outbound transport-level security:

  1. When you create a business service in the AquaLogic Service Bus Console, on the Transport Configuration page select HTTP. When prompted, select Basic Authentication Required.
  2. See “Adding a Business Service” under Business Services in Using the AquaLogic Service Bus Console.

  3. Create a service account to provide the user name and password that the business service requires. See Service Accounts in Using the AquaLogic Service Bus Console.
  4. You can add a user name and password directly to the service account, or configure the service account to pass through the credentials that it received from its client’s request, or you can map a client user name to an AquaLogic Service Bus user. If you configured the proxy service so that AquaLogic Service Bus does not authenticate clients, create a service account that passes through the credentials. See Service Accounts in Using the AquaLogic Service Bus Console.

  5. Create a proxy service or edit an existing proxy service so that it specifies the service account.

 


Configuring Transport-Level Security for JMS

While transport-level security for JMS does not provide end-to-end security for JMS messaging, it does provide the following:

The following sections describe configuring JMS transport-level security:

Configuring Inbound JMS Transport-Level Security: Main Steps

To configure inbound JMS transport-level security:

  1. When you create or edit a JMS proxy service in the AquaLogic Service Bus Console, on the Transport Configuration page, under Advanced Settings, select the Use SSL check box. See Proxy Services in the Using the AquaLogic Service Bus Console.
  2. AquaLogic Service Bus configures the JMS proxy service to use the T3S protocol.

  3. If the JMS administrator created access control policies that restrict access to a JMS connection pool, configure the proxy service to authenticate when it connects to the JMS server:
    1. Create a service account to provide the user name and password that the JMS server requires. See Service Accounts in Using the AquaLogic Service Bus Console.
    2. The JMS service account for the proxy service is used not only for the JMS object access, but also for the JNDI lookup.

      You must add a user name and password directly in the service account. JMS cannot use a service account that passes through the credentials that it received from its client’s request or that maps a client user name to an AquaLogic Service Bus user. See Service Accounts in Using the AquaLogic Service Bus Console.

    3. When you create or edit the proxy service in the AquaLogic Service Bus Console, on the Transport Configuration page, under Advanced Settings, click the Browse button next to JMS Service Account. Select the service account that you created in the previous step.

Configuring Outbound JMS Transport-Level Security: Main Steps

To configure outbound JMS transport-level security:

  1. When you create or edit a JMS business service in the AquaLogic Service Bus Console, on the Transport Configuration page, under Advanced Settings, select the Use SSL check box. See “Adding a Business Service” under Business Services in Using the AquaLogic Service Bus Console.
  2. AquaLogic Service Bus configures the JMS proxy service to use the T3S protocol.

  3. If the JMS administrator created access control policies that restrict access to a JMS connection pool, configure the business service to authenticate when it connects to the JMS server:
    1. Create a service account to provide the user name and password that the JMS server requires. See Service Accounts in Using the AquaLogic Service Bus Console.
    2. You must add a user name and password directly in the service account. JMS cannot use a service account that passes through the credentials that it received from its client’s request or that maps a client user name to an AquaLogic Service Bus user. See Service Accounts in Using the AquaLogic Service Bus Console.

    3. When you create or edit the business service in the AquaLogic Service Bus Console, on the Transport Configuration page, under Advanced Settings, click the Browse button next to JMS Service Account. Select the business account that you created in the previous step.
  4. If the JMS administrator has restricted access to JMS destinations in the JNDI tree, configure the business service to authenticate when it looks up entries in the JNDI tree:
    1. (You can skip this step if the JNDI tree and JMS server require the same user name and password.) Create a service account to provide the user name and password that the JNDI tree requires. See Service Accounts in Using the AquaLogic Service Bus Console.
    2. When you create or edit the business service in the AquaLogic Service Bus Console, on the Transport Configuration page, under Advanced Settings, click the Browse button next to JNDI Service Account. Select the service account that provides the credentials that the JNDI tree requires.
    3. You can use the same service account for both the JMS server and the JNDI tree if both objects require the same credentials.

  5. If the business service is configured to require a response, the JNDI Service Account is ignored for the response queue. In this case, the JMS Service Account is used for both looking up the queue name in JNDI and for reading messages from the queue.
Tip: Use the same service account for both the JMS Service Account and JNDI Service Account. That is, leave both fields blank, or use the same service account in both fields. This is the recommended best practice.

 


Configuring Transport-Level Security for SFTP Transport

As described in Using the SFTP Transport, this release of ALSB supports the SFTP transport for inbound and outbound transport-level security. The SFTP transport uses Secure Shell (SSH) version 2 to transfer files.

How Two-Way Authentication is Performed

The SFTP authentication is two– way: both the SFTP server and SFTP client (ALSB service) authenticate each other, via different mechanisms:

The SFTP client (the ALSB service) always uses the known_hosts file to determine whether to connect to an SFTP server, no matter which of the three authentication methods is chosen in the Transport Configuration page. That is, in all cases the SFTP server is authenticated by the ALSB service using the information present in this file. This ensures that the ALSB service is connecting to a known server.

For example, in case of Username Password authentication, the SFTP Client (ALSB Service) authenticates the SFTP server against the SFTP server’s public key in the known_hosts file. The SFTP server authenticates the client (ALSB service) with the username and password from the service account.

Use of the known_hosts File

No matter which authentication method you choose in the Transport Configuration page, a known_hosts file on the ALSB proxy service (inbound requests) or business service (outbound requests) system must have the hostname, IP address, and public key of the remote SFTP servers to which the proxy service or business service can connect.

The ALSB service authenticates the SFTP server with the public-key/host/IP combination present in the known_hosts file.

Note: This SSH authentication mechanism is outside of the typical ALSB service key provider/PKI credential mapper process.

The known_hosts file requirement must be satisfied during authentication. SFTP servers not listed in the known_hosts file are not authenticated.

Creating the known_hosts File

  1. Use the editor of your choice to create a known_hosts text file.
  2. The format for known_hosts is as follows:

    Hostname,IP   algorithm  public-key

    where Hostname, IP,and public_key identify the SFTP server.

    The algorithms supported are RSA (entered only as ssh-rsa) and DSA (entered only as ssh-dsa or ssh-dss).

    The public key format for this file is “OpenSSH public key format.”

    For example:

    getafix,172.22.52.130   ssh-rsa   AAAAB3NzaC1yc2EAAAABIwAAAIEAtR+M3Z9HFxnKZTx66fZdnQqAHQcF1vQe1+EjJ/HWYtgAnqsn0hMJzqWMatb/u9yFwUpZBirjm3g2I9Qd8VocmeHwoGPhDGfQ5LQ/PPo3esE+CGwdnCOyRCktNHeuKxo4kiCCJ/bph5dRpghCQIvsQvRE3sks+XwQ7Wuswz8pv58=

    Multiple entries are supported, one entry per line.

  3. Move the known_hosts file to the
  4. <BEA_HOME>\user_projects\domains\alsb_domain\alsb\transports\sftp

    directory. The directories \transports\sftp are not created automatically. You must create them.

SFTP Transport Authentication Process

The following general principles apply to the SFTP authentication process for both a proxy service and business service.

The SFTP authentication process is as follows:

Configuring Inbound SFTP Transport-Level Security: Main Steps

To configure inbound transport-level security for a proxy service:

  1. Create a known_hosts file, as described in Use of the known_hosts File, on the ALSB proxy service system.
  2. known_hosts keeps the information of the remote SFTP servers to which the ALSB proxy service can connect. Specifically, this file contains the host name, IP address, and public key of the accepted remote servers.

    SSH version 2 uses this public key to authenticate the connection. SFTP servers not listed in the known_hosts file are not authenticated.

  3. When you create a proxy service in the AquaLogic Service Bus Console, on the Transport Configuration page select SFTP.
  4. Specify the end point URI in sftp://hostname:port/directory format, where:
    • hostname is the host name or IP address of the SFTP server.
    • port is the port on which SFTP server is listening. Default port for SFTP is 22.
    • directory is the location that is periodically polled for files. This directory is relative to the home directory of the user.
  5. On the SFTP Transport Configuration page, select either Username Password, Host Based, or Public Key authentication.
  6. The authentication choices are summarized here. See Using the SFTP Transport for complete information.

    • Username/Password authentication specifies that a static service account (using user credentials on the SFTP server) is associated with this authentication method. The service account provides a user name and password that the proxy service uses for authentication to the SFTP server. The SFTP client is authenticated using the provided credentials. Only the static service account type is supported.
    • Host Based Authentication specifies that only connections from identified, known hosts are allowed. This authentication method requires a username and a service key provider.
    • The SFTP Server authenticates the proxy service with the public key of the proxy service.

      Note: The ALSB proxy service does not itself use the service key provider to authenticate any credentials from the SFTP server. It uses only the known_hosts file to authenticate the SFTP server.

      The public key of the proxy service is present in the key-pair referred by the service key provider. You need to extract this key when you set up the service key provider, and then configure the SFTP server to use the public key.

      For example, with SFTP server on Linux, you need to:

      • Edit the /etc/ssh/shosts.equiv file and add the host name or IP address of the machine on which ALSB domain is running.
      • Edit the /etc/ssh/ssh_known_hosts file and add the host name or IP address of the machine on which ALSB domain is running, followed by space and the public key.
      • The username is used to determine which directory on the SFTP server to poll.

    • Public Key specifies a username and service key provider are required to use this authentication method. Every user has their own private key.
    • The SFTP Server authenticates the proxy service with the public key.

      Note: The ALSB proxy service does not itself use the service key provider to authenticate any credentials from the SFTP server. It uses only the known_hosts file to authenticate the SFTP server.

      The public key of the proxy service is present in the key-pair referred by the service key provider. You need to extract this key when you set up the service key provider, and then configure the SFTP server to use the public key.

      For example, to allow access to a system for a given identity with an SFTP server on Linux, place the public key in a $HOME/.ssh/authorized_keys file on that system. All keys listed in that file are allowed access.

      The username is used to determine which directory on the SFTP server to poll. It is also use to identify the location of the public key on the SFTP server.

  7. If allowed by the remote SFTP server, the proxy service (SFTP client) polls a remote directory on the SFTP server and downloads any files present in the remote directory.
  8. The proxy service configuration determines which remote directory to poll, how often to poll it, and what to do with any files (messages) that it downloads.

    The directory to be polled is an absolute path.

Configuring Outbound SFTP Transport-Level Security: Main Steps

To configure outbound transport-level security for a business service:

  1. Create a known_hosts file, as described in Use of the known_hosts File, on the ALSB business service system.
  2. known_hosts keeps the information of the remote SFTP servers to which the ALSB business service can connect. Specifically, this file contains the host name, IP address, and public key of the accepted remote servers.

    SSH version 2 uses this public key to authenticate the connection. SFTP servers not listed in the known_hosts file are not authenticated.

  3. When you create a business service in the AquaLogic Service Bus Console, on the Transport Configuration page select SFTP.
  4. Specify the end point URI in sftp://hostname:port/directory format, where:
    • hostname is the host name or IP address of the SFTP server.
    • port is the port on which SFTP server is listening. Default port for SFTP is 22.
    • directory is the location to which files are uploaded. This directory is relative to the home directory of the user.
  5. On the SFTP Transport Configuration page, select either Username Password, Host Based, or Public Key authentication.
  6. The authentication choices are summarized here. See Using the SFTP Transport for complete information.

    • Username/Password authentication specifies that a static service account (using user credentials on the SFTP server) is associated with this authentication method. The service account provides a user name and password that the business service uses for authentication to the SFTP server. The SFTP client is authenticated using the provided credentials. Only the static service account type is supported.
    • Host Based Authentication specifies that only connections from identified, known hosts are allowed. This authentication method requires a username and a service key provider.
    • The SFTP Server authenticates the business service with the public key of the business service.

      Note: The ALSB business service does not itself use the service key provider to authenticate any credentials from the SFTP server. It uses only the known_hosts file to authenticate the SFTP server.

      The public key of the business service is present in the key-pair referred by the service key provider. You need to extract this key when you set up the service key provider, and then configure the SFTP server to use the public key.

      For example, with SFTP server on Linux, you need to:

      • Edit the /etc/ssh/shosts.equiv file and add the host name or IP address of the machine on which ALSB domain is running.
      • Edit the /etc/ssh/ssh_known_hosts file and add the host name or IP address of the machine on which ALSB domain is running, followed by space and the public key.
      • The username is used to determine the upload directory on the SFTP server.

    • Public Key specifies a username and service key provider are required to use this authentication method. Every user has their own private key.
    • The SFTP Server authenticates the business service with the public key.

      Note: The ALSB business service does not itself use the service key provider to authenticate any credentials from the SFTP server. It uses only the known_hosts file to authenticate the SFTP server.

      The public key of the business service is present in the key-pair referred by the service key provider. You need to extract this key when you set up the service key provider, and then configure the SFTP server to use the public key.

      For example, to allow access to a system for a given identity with an SFTP server on Linux, place the public key in a $HOME/.ssh/authorized_keys file on that system. All keys listed in that file are allowed access.

      The username is used to determine the upload directory on the SFTP server and for identifying the location of the public key on the SFTP server.

  7. If allowed by the remote SFTP server, the business service (SFTP client) uploads files to the remote directory on the SFTP server.
  8. The business service configuration determines in which remote directory to upload the file, how often to retry the upload, and any file prefix or suffix to add to the uploaded file name.

    The upload directory is an absolute path and is automatically created.

SFTP Security Attributes Preserved During Import

The following security attributes are preserved when Preserve Security and Policy Configuration Check Box is turned on during import:

SFTP Credential Lifecycle

Whenever the username/password or public key credential changes, the SFTP transport drops all idle connections made with the previous credential and attempts to reconnect. For active connections, the SFTP transport drops the connection after the current operation is finished.

 


Email, FTP, and File Transport-Level Security

The following sections describe the security measures that are available for communication over the email, FTP, and file protocols:

Email and FTP Transport-Level Security

Email and FTP are not secure protocols. They support weak authentication, typically over insecure channels. The supported security method for email or FTP transport is the username and password needed to connect to the email or FTP server.

To secure email, you must designate a service account as an alias for the username and password in the AquaLogic Service Bus Console. The service will use the username and password to authenticate to the SMTP server.

To secure the FTP transport, in the AquaLogic Service Bus Console, select external_user and designate a service account as an alias for the username and password. The service will use the username and password to authenticate to the FTP server.

For information about how to add security to email and FTP transport, see “Adding a Business Service” in Business Services in the Using the AquaLogic Service Bus Console.

File Transport Security

The supported security method for file transport is the user login to the computer on which the files are located.

The SFTP transport, described in Configuring Transport-Level Security for SFTP Transport, is the preferred mechanism to secure FTP.

 


Configuring Transport-Level Security for SB Transport

The Service Bus (SB) transport allows client ALSB servers to invoke an ALSB proxy service synchronously via RMI. RMI is the only mechanism by which client ALSB servers can access the SB transport. In this release of ALSB the associated API is for internal user only and is not documented.

The SB proxy service is accessed in one of two ways:

The SB business service can send messages only to SB proxy services. A JNDI provider, which is specified in the endpoint URI of the business service, is used to do a JNDI lookup on the remote ALSB server. Specifically, the JNDI provider points to the ALSB server where the service is deployed to retrieve the RMI stubs corresponding to the SB proxy service.

For example, the endpoint URI you specify in the business service could be sb://some_secured_jndi_provider/some_remote_sb_proxy.

A secure JNDI provider should have a provider URL with a secure protocol. In the SB business service case, you can use the HTTPS or t3s protocols.

The service account (of the business service) specifies the user credentials that should be used for invoking the remote SB proxy service. If no service account is specified, the user credentials of the inbound proxy service (the inbound client) of this business service are used for security context propagation.

The SB transport can use SSL to require strong server and client authentication. Before you can use the SB transport with SSL, you must configure SSL in WebLogic Server. See Configuring the WebLogic Security Framework: Main Steps.

Caution: When set, the Use SSL flag means that request must be sent over an SSL connection. However, the SB transport does not forbid unsecured connections. The proxy service will be advertised (via the effective WSDL or UDDI) with a secured URI (indicated by sbs), but secured access is not enforced.
Caution: The ALSB server administrator must close all unsecured protocols on the server (t3, http, and so forth) to strictly enforce secured-client connections.

Configuring SAML Authentication With Service Bus (SB) Transport

If you are using SAML-based authentication with the SB transport, be sure to follow these configuration requirements:

 


Configuring Transport-Level Security for WS Transport

Web service reliable messaging (WS-RM) functionality is available in ALSB as the WS transport. ALSB supports the specification submitted in February 2005. For more information about the specification, see Web Services Reliable Messaging Protocol (WS-ReliableMessaging).

The WS transport has both proxy service ( inbound) and business service (outbound) components that are based on SOAP1.1- and SOAP1.2-based WSDLs, along with WS-RM policy. It supports both one-way and request-response patterns, but response is unreliable.

Reliable Web Services Messaging Defined

As described in Overview of Web Service Reliable Messaging, WS-RM is a framework in which an application running in one application server can reliably invoke a web service running on another application server, assuming that both servers implement the WS-ReliableMessaging specification. “Reliable” is defined as the ability to guarantee message delivery between the two web services. In particular, the specification describes an interoperable protocol in which a message sent from a source endpoint (or client web service) to a destination endpoint (or web service whose operations can be invoked reliably) is guaranteed either to be delivered, according to one or more delivery assurances, or to raise an error.

WS Transport Resources Visible in WLS Console

WS proxy services are visible from the WLS console, but attempts to assign policies from WLS are ignored.

Specifically, administrators can navigate to the Home > Summary of Security Realms > myrealm > Realm Roles pages in the WLS console and seemingly edit the security policy for the WS proxy service, as shown in Figure 4-1.

However, this policy will have no effect and it will not be evaluated at runtime.

Figure 4-1 WS Transport Resource Displayed in WLS Console

The EAR application is auto-generated and deployed by ALSB when you activate the session. This is one EAR file for each WS proxy service.

Use of WS-Policy Files for Web Service Reliable Messaging Configuration

You configure WS transport security through WS-Policy files, either from a WSDL or bound directly to the service.

ALSB use WS-Policy files to enable a destination endpoint to describe and advertise its WS-RM capabilities and requirements. The WS-Policy specification provides a general purpose model and syntax to describe and communicate the policies of a web service.

These WS-Policy files are XML files that describe features such as the version of the supported WS-ReliableMessaging specification, the source endpoint's retransmission interval, the destination endpoint's acknowledgment interval, and so on.

WS-Policy with RM assertions and WSSP 1.2 transport-level security assertions are supported for the WS transport only.

Note: WSSP 1.2 message-level security assertions are not supported for any transport. 9.x BEA proprietary security assertions are not supported for the WS transport.

Preconfigured WS-RM Policy Files

ALSB includes two simple WS-RM WS-policy files that you can specify if you do not want to create your own WS-Policy files:

You cannot change these pre-packaged files. If their values do not suit your needs you must create your own WS-Policy file.

For example, the complete LongRunningReliability.xml file (as extracted from weblogic.jar) is shown in Listing 4-1:

Listing 4-1 LongRunningReliability.xml File
<?xml version="1.0"?>
<wsp:Policy
   xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
   xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
   xmlns:beapolicy="http://www.bea.com/wsrm/policy"
  >
  <wsrm:RMAssertion >
    <wsrm:InactivityTimeout
        Milliseconds="86400000" />
    <wsrm:BaseRetransmissionInterval
        Milliseconds="3000" />
    <wsrm:ExponentialBackoff />    
    <wsrm:AcknowledgementInterval
        Milliseconds="200" />
    <beapolicy:Expires Expires="P1M" optional="true"/>
  </wsrm:RMAssertion>
</wsp:Policy>

RM WS-Policy Required Prior to Activation

A proxy or business service that uses the WS transport must have a WS-Policy with RM assertions, either from a WSDL or bound directly to the service. Services that use any other transport must not have a WS-Policy with RM assertions.

You can bind RM assertions only at the service level and not at the operation or request/response levels.

Async Responses

WS-RM supports two messaging patterns: one way, and request/response. The WS transport supports both patterns, but does not support reliable response. That is, the response is not sent reliably but the request is always reliable.

Async responses from a proxy service using the WS transport to an RM client connect to the AcksTo or ReplyTo endpoint references specified by the RM client. The RM client is free to use an HTTP or HTTPS URL. When using HTTPS, the RM client is free to request a client certificate during the SSL handshake. The WS transport will use the SSL key-pair of the service key provider upon request.

Proxy Service Authentication

The WS transport supports the following HTTPS security modes via WS-Policy files:

Table 4-1 shows the preconfigured security policies that implement these modes and indicates when you might use them.

Table 4-1 WS Transport Authentication Matrix
HTTPS Required
Authentication Required
Preconfigured Transport Security Policy
Yes
None
Wssp1.2-Https.xml
Yes
BASIC
Wssp1.2-HttpsBasic.xml
Yes
Client-certificate
Wssp1.2-HttpsClientCert.xml

WS proxy services support both basic and client-certificate (2-way SSL) authentication, as determined by the WSSP 1.2 transport-level security assertions in the WS-Policy.

Consider the example of the HTTPS token and the Basic256 algorithm as extracted from the packaged Wssp1.2-Https.xml policy, as shown in Listing 4-2.

When basic authentication is specified in the WS-policy, all HTTPS requests (including RM protocol messages to the WS proxy service) must have a valid username and password.

Listing 4-2 Wssp1.2-Https.xml File (Partial)
:
<sp:TransportBinding>
    <wsp:Policy >
      <sp:TransportToken>
        <wsp:Policy>
          <sp:HttpsToken />
        </wsp:Policy>
      </sp:TransportToken>
      <sp:AlgorithmSuite>
        <wsp:Policy>
          <sp:Basic256/>
        </wsp:Policy>
      </sp:AlgorithmSuite>
      <sp:Layout>
        <wsp:Policy>
          <sp:Lax/>
        </wsp:Policy>
      </sp:Layout>
      <sp:IncludeTimestamp/>
    </wsp:Policy>
  </sp:TransportBinding>
</wsp:Policy>

Proxy service authentication is supported as follows:

Preserving Security Configuration on Import

If the Preserve Security and Policy Configuration flag is set, the WS transport provider preserves the following security configuration:

Configuring Inbound and Outbound WS Transport-Level Security

You configure WS transport security through WS-Policy, either from a WSDL or bound directly to the service.

 


Configuring Transport-Level Security for WebSphere Message Queue Transport

ALSB 3.0 provides support for a native Message Queue (MQ) transport that can send messages to and from WebSphere MQ. In this context, the MQ transport is a client that connects to an MQ Server using MQ libraries.

You configure the security-related properties for the transport when you create an MQ Connection resource. These properties are then used by the MQ proxy or business service.

Note: Make sure that you add the MQ client libraries to your environment, as described in Adding MQ Client Libraries to Your Environment.

The MQ Connection resource has two modes:

binding mode

You use the binding mode to connect to the MQ Queue Manager located on the same machine as ALSB. In this mode, the service calls directly into the existing queue manager API rather than communicating over the network. This mode provides a fast path to connect to local queue managers.

TCP mode

You use the tcp mode when the MQ Queue Manager is not available on the same machine as ALSB.

Configuring Inbound MQ Transport-Level Security: Main Steps

To configure inbound transport-level security for a proxy service:

  1. Before you create a proxy service that uses the MQ transport, create an MQ Connection resource for the transport to use. Choose from the following security configuration settings:
    • SSL Required. Select the check box to use HTTPS for sending messages. Only server-side SSL (server authenticates to client) is supported when the 2-way SSL Required option is not selected.
    • Cipher Suite. This option is available only when the SSL Required check box is selected. Select the Cipher Suite algorithm to be used by SSL.
    • A cipher suite is an SSL encryption method that includes the key exchange algorithm, the symmetric encryption algorithm, and the secure hash algorithm. A cipher suite is used to protect the integrity of a communication.

      The Cipher Suite algorithm is used to encrypt and decrypt message communications between the WebSphere MQ server and the MQ Transport.

    • 2-way SSL Required. This option is available only when the SSL Required check box is selected. Select the check box to force the use of both client-side and server-side SSL authentication.
    • Reference to the Service Key Provider. If you select 2-way SSL Required, you must provide a reference to the service key provider for obtaining the appropriate key manager for client-side SSL.
    • Enter the path (project/folder) and name of a service key provider, or click Browse to select one from the Select Service Key Provider page.

    • Reference to the Static Service Account. Required for user name and password authentication. Enter the path (project/folder) and name of a static service account, or click Browse to select a service account.
  2. When you create a proxy service in the AquaLogic Service Bus Console, on the Transport Configuration page select mq.

Configuring Outbound MQ Transport-Level Security: Main Steps

To configure outbound transport-level security for a business service:

  1. Before you create a proxy service that uses the MQ transport, create a MQ Connection resource for the transport to use. Choose from the following security configuration settings:
    • SSL Required. Select the check box to use HTTPS for sending messages. Only server-side SSL (server authenticates to client) is supported when the 2-way SSL Required option is not selected.
    • Cipher Suite. This option is available only when the SSL Required check box is selected. Select the Cipher Suite algorithm to be used by SSL.
    • A cipher suite is an SSL encryption method that includes the key exchange algorithm, the symmetric encryption algorithm, and the secure hash algorithm. A cipher suite is used to protect the integrity of a communication.

      The Cipher Suite algorithm is used to encrypt and decrypt message communications between the WebSphere MQ server and the MQ Transport.

    • 2-way SSL Required. This option is available only when the SSL Required check box is selected. Select the check box to force the use of both client-side and server-side SSL authentication.
    • Reference to the Service Key Provider. If you select 2-way SSL Required, you must provide a reference to the service key provider for obtaining the appropriate key manager for client-side SSL.
    • Enter the path (project/folder) and name of a service key provider, or click Browse to select one from the Select Service Key Provider page.

    • Reference to the Static Service Account. Required for user name and password authentication. Enter the path (project/folder) and name of a static service account, or click Browse to select a service account.
  2. When you create a business service in the AquaLogic Service Bus Console, on the Transport Configuration page select mq.

 


Transport-Level Security Elements in the Message Context

If you configure a proxy service to authenticate clients, then you can access the client’s identity and the security groups to which the client belongs from the proxy service’s pipeline. The identity and group information is located in the message context at $inbound/ctx:security/ctx:transportClient/ctx:username
and
$inbound/ctx:security/ctx:transportClient/ctx:principals/ctx:group
(the message context contains one ctx:group element for each group the user belongs to)

If a proxy service does not authenticate clients, then the value of $inbound/ctx:security/ctx:transportClient/ctx:username is <anonymous> and there will not be any ctx:group elements.

For more information, see “Inbound and Outbound Variables” in Message Context in the AquaLogic Service Bus User Guide and “Message Flow” in Proxy Services in the Using the AquaLogic Service Bus Console.


  Back to Top       Previous  Next