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

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 HTTPS. Follow the prompts to choose an authentication level. See “Adding a Proxy Service” under Proxy Services in Using the AquaLogic Service Bus Console.
  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 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 HTTPS. 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 so 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. 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.
  5. 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.

  6. If the business service uses HTTPS with CLIENT CERT authentication, do the following:
    1. Create a proxy service provider to provide the key-pair that proxy services use for SSL client authentication with the business service. See Proxy Service Providers in Using the AquaLogic Service Bus Console.
    2. Create a proxy service or edit an existing proxy service so that it specifies the proxy service 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.

 


Additional Context Properties for HTTP and HTTPS Transport-Level Authentication

The HTTP and HTTPS transport providers pass an AquaLogic Service Bus implementation of the WebLogic Server ContextHandler during transport-level custom token identity assertion. There is no user configuration required for this feature.

This ContextHandler has four properties, as shown in Table 4-1.

Table 4-1 Transport-Level Context Properties
Property Name
Property Value
com.bea.contextelement.alsb.service-info
An instance of com.bea.wli.sb.services.ServiceInfo that contains information about the proxy service.
com.bea.contextelement.alsb.transport.endpoint
An instance of com.bea.wli.sb.transports.TransportEndPoint. This is the HTTP or HTTPS endpoint.
com.bea.contextelement.alsb.transport.http.http-request
This is the HttpServletRequest object.
com.bea.contextelement.alsb.transport.http.http-response
This is the HttpServletResponse object.

 


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

 


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 FTP, 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.

 


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