Configuring Endpoint Aliases for Web Services
About Web Service Endpoint Aliases
A web service endpoint alias represents the network address and, optionally, any security credentials to be used with web services. You can use the network address properties to enable dynamic addressing for web services. The security credentials can be used to control both transport-level and message-level security for web services.
In web service descriptors, an endpoint alias is associated with a binder. Integration Server uses a binder to collect the definitions for addresses, communication protocols, and data formats for a particular port type in one container. For more information about associating an endpoint alias with a binder, see webMethods Service Development Help .
For a consumer web service descriptor and its associated web service connectors (WSC), the alias information (including the addressing information and any security credentials), is used at run time to generate a request and invoke an operation of the web service.
For provider web service descriptors, the endpoint alias is used to construct the "location=" attribute of the address element (which is contained within the port element) when a WSDL file is requested from the web service. The security credentials might be used when constructing a response to a web service request.
When you create a provider web service descriptor, you can specify an existing endpoint alias, which will be displayed (and can be changed) from the default binder of the web service descriptors.
Integration Server uses message addressing endpoint aliases to send responses to endpoints other than the one that initiated or sent the request. That is, when WS-Addressing is enabled and the request SOAP message contains a non-anonymous ReplyTo or FaultTo endpoint, Integration Server uses the message addressing endpoint alias to determine the authentication details to be used to send a response to the ReplyTo and FaultTo endpoints.
An endpoint alias is usually created for one or more of the following reasons:
- Dynamic endpoint addressing. Because the actual value of the endpoint is looked up at run time, using an endpoint alias saves you from having to specify or change the server information each time you use the web service.
- WS-ReliableMessaging. Reliable messaging properties ensure the reliable delivery of the message between the two endpoints (web service and client or reliable messaging source and destination). You can configure reliable messaging properties specific to a web service endpoint or at a global level for all web service endpoints defined in the Integration Server.
When you create web service endpoint aliases, keep the following points in mind:
- Alias names must be unique within the specified usage (provider or consumer) and protocol. This can result in multiple endpoint aliases with the same name. For example, you can have a provider alias named "aliasOne" for the HTTP protocol. You could also have a consumer alias named "aliasOne" for the HTTP protocol and a provider alias named "aliasOne" for the HTTPS protocol.
- Integration Server saves web service endpoint aliases at the following location: Integration Server_directory \instances\instance_name\config\endpoints
- The host name and port are required for a provider HTTP/S web service endpoint alias, but are optional for a consumer HTTP/S web service endpoint alias.
- If the Integration Server on which a consumer web service descriptors resides sits behind a firewall and the web service request needs to be routed through a proxy server, you can assign a proxy alias to the consumer web service endpoint alias.
- You can identify default provider web service endpoint aliases for HTTP and HTTPS. If a provider web service descriptor contains a binder set to the default alias, Integration Server uses the information in the default alias when constructing the WSDL for the descriptor.
Creating an Endpoint Alias for a Provider Web Service Descriptor for Use with HTTP/S
About this task
When creating a web service endpoint alias for provider web service descriptor that uses an HTTP/S binder, you need to supply information that falls into the following categories:
- Web Service Endpoint Alias. Endpoint name, description, and transport type.
- HTTP/S Transport Properties. Server on which the web service resides.
-
WS Security Properties. Information the SOAP processor needs to decrypt and verify the inbound SOAP request and/or encrypt and sign the outbound SOAP response and the details for adding the timestamp information.
Note: WS-Security credentials such as private keys and public keys do not always need to be provided in a web service endpoint alias. If this information is not provided in the alias, Integration Server can obtain the information from other locations. For more information about usage and resolution order of certificates and keys for WS-Security, see the Web Services Developer’s Guide . - Message Addressing Properties. WS-Addressing information that Integration Server uses to generate the WS-Addressing headers of the SOAP requests and responses. This includes the destination address of a message or fault and the authentication credentials required to send a response to a different address than the one from which request was received.
- Reliable Messaging Properties. Reliable messaging information specific to the web service endpoint. By default, Integration Server applies the reliable messaging configuration defined on the Settings > Web services > Reliable messaging > Edit configuration page to all web service providers and consumers. If you want to override the server-level reliable messaging configuration for a specific web service provider or consumer, define reliable messaging properties for the associated web service endpoint alias.
To create a WS provider web service endpoint alias for use with HTTP/S
Procedure
Setting a Default Endpoint Alias for Provider Web Service Descriptors
About this task
Integration Server uses the default provider endpoint alias in the following situations:
- When constructing the WSDL for the a provider web service descriptor that contains a binder with a Port alias property set to DEFAULT(aliasName) or binder that does not explicitly set an alias for the Port alias property.
- During run-time processing for provider web service descriptor that contains a binder with a Port alias property set to DEFAULT(aliasName) or a binder that does not explicitly set an alias for the Port alias property.
- As an available alias when creating the endpoint for a service first provider web service
- As an available alias when setting the endpoint for a binder.
- When creating the binders for a WSDL first provider web service descriptor generated from a WSDL document with an HTTP or HTTPS binding. Integration Server assigns the default provider endpoint alias of the transport protocol to the binder. Integration Server uses the information from the alias during WSDL generation and run-time processing.
Keep the following points in mind when setting a default provider endpoint alias for use with provider web service descriptors:
- You can set a default provider endpoint alias for provider web services only.
- You can set a default provider endpoint alias for the HTTP and HTTPS protocols. You cannot set a default endpoint alias for JMS.
- Integration Server does not require that a default provider endpoint alias be set. If there is no default alias for a protocol, the Port alias property for a binder in a provider web service descriptor lists a blank row as a possible value. If you select the blank row and later specify a default alias for the protocol used by the binder, Integration Server uses the information in the default provider endpoint alias when generating the WSDL document and during run-time processing for the web service descriptor. That is, once a default provider endpoint alias is set for a protocol, any previously blank Port alias properties are effectively set to DEFAULT(aliasName) for binders that use that protocol.
- You cannot delete a web service endpoint alias used as a default alias.
To set a default endpoint alias for provider web service descriptors
Procedure
Creating an Endpoint Alias for a Consumer Web Service Descriptor for Use with HTTP/S
About this task
When you create an HTTP/S web service endpoint alias for use with consumer web service descriptors, you need to supply information that falls into the following categories:
- Web Service Endpoint Alias. Endpoint name, description, and transport type.
- HTTP/S Transport Properties.Optional. The host and port used to build the endpoint URL. If the web service provider requires transport-based authentication, these properties specify the authentication credentials to be added to the HTTP/S header. For HTTPS transport, these properties specify the keystore alias and key alias of the private key used for SSL communication with the web service provider. If the web service request must be routed through a proxy server, these properties specify the proxy server alias for the proxy server through which Integration Server routes the HTTP/S request.
-
WS Security
Properties. Information for the WS-Security header as determined by the
security policy for the web service. A web service security policy can require
that:
- SOAP message requests include a UserName token.
- SOAP message responses be decrypted.
- SOAP message requests be signed.
- X.509 authentication be supported.
- A Timestamp element be added to the security header.
Note: WS-Security credentials such as private keys and public keys do not always need to be provided in a web service endpoint alias. If this information is not provided in the alias, Integration Server can obtain the information from other locations. For more information about usage and resolution order of certificates and keys for WS-Security, see the Web Services Developer’s Guide . - Message Addressing Properties. Addressing information about the response delivery. This information includes the reply endpoint where the replies should be sent, the fault endpoint that specifies where the faults should be sent, and optional metadata (such as WSDL or WS-Policy) about the service. This also includes additional parameters, called Reference Parameters, that Integration Server uses to route the message to the destination.
- Reliable Messaging Properties. Provides reliable messaging information specific to the web service endpoint. By default, Integration Server applies the reliable messaging configuration defined on the Settings > Web services > Reliable messaging > Edit configuration page to all web service providers and consumers. If you want to override the server-level reliable messaging configuration for a specific web service provider or consumer, define reliable messaging properties for the associated web service endpoint alias.
To create a consumer web service endpoint alias for use with HTTP/S
Procedure
Creating an Endpoint Alias for Message Addressing for Use with HTTP/S
About this task
- Web Service Endpoint Alias. Identifies the endpoint name, description, and transport type.
-
HTTP/S Transport
Properties. Specifies the authentication details that
Integration Server uses to send responses. For HTTPS transport, also
specifies the keystore alias and key alias of the private key used for SSL
communication with the receiver of the SOAP response.
If the web service response must be routed through a proxy server, specify the proxy server alias for the proxy server through which Integration Server routes the HTTP/S message.
-
WS Security Properties. Provides information for the WS-Security header as determined by the security policy for the web service.
Note: WS-Security credentials such as private keys and public keys do not always need to be provided in a web service endpoint alias. If this information is not provided in the alias, Integration Server can obtain the information from other locations. For more information about usage and resolution order of certificates and keys for WS-Security, see the WS-Security Certificate and Key Requirements . - Message Addressing Properties. Provides addressing information relating to the delivery of the response message. This includes the reply endpoint where the replies should be sent, the fault endpoint that specifies where the faults should be sent, and optional metadata (such as WSDL or WS-Policy) about the service. This also includes additional parameters, called Reference Parameters, that Integration Server uses to route the message to the destination.
To create a message addressing web service endpoint alias for use with HTTP/S
Procedure
Creating an Endpoint Alias for a Provider Web Service Descriptor for Use with JMS
About this task
- JMS message header information for the request message, such as delivery mode, time to live, and the destination for replies. Integration Server uses this information to populate the binding elements in the WSDL generated for the web service descriptor.
- The SOAP-JMS trigger that listens for SOAP over JMS messages for the web service descriptor. The SOAP-JMS trigger also provides the JMS connection information needed to create a connection on the JMS provider. Integration Server uses the information provided by the SOAP-JMS trigger to construct most of the JMS URI (the web service descriptor determines the targetService). The JMS URI appears in the WSDL document as the value of the "location=" attribute for the address element within the port element.
-
WS Security Properties that specify the information needed by the SOAP processor to decrypt and verify the inbound SOAP request and/or encrypt and sign the outbound SOAP response and the details for adding the timestamp information.
Note: WS-Security credentials such as private keys and public keys do not always need to be provided in a web service endpoint alias. If this information is not provided in the alias, Integration Server can obtain the information from other locations. For more information about usage and resolution order of certificates and keys for WS-Security, see the Web Services Developer’s Guide . - Message addressing properties that provides addressing information relating to the delivery of a message to a web service. This includes the destination address of a message or fault and the authentication credentials required to send a response to a different address than the one from which the request was received.
Keep the following information in mind when creating a web service endpoint alias for a JMS binder in a provider web service descriptor:
- You
can associate the web service endpoint alias with:
- A SOAP-JMS trigger that already exists.
- A WS endpoint trigger that you create at the same time you create the endpoint alias.
- If you use a SOAP-JMS trigger in the web service endpoint alias and subsequently assign the alias to a JMS binder in a provider web service descriptor, the web service descriptor has a dependency on the SOAP-JMS trigger. Consequently, at start up or when reloading the package containing the web service descriptor, Integration Server must load the SOAP-JMS trigger before loading the web service descriptor. If the SOAP-JMS trigger and web service descriptor are not in the same package, you need to create a package dependency for the package that contains the web service descriptor on the package that contains the SOAP-JMS trigger.
- If you rename the SOAP-JMS trigger assigned to an alias, you need to update the alias to use the renamed trigger.
- The
following properties are optional.
- Delivery Mode
- Time to Live
- Priority
- Reply To Name
- Reply To Type
To create a provider web service endpoint alias for use with JMS
Procedure
Results
Creating an Endpoint Alias for a Consumer Web Service Descriptor for Use with JMS
About this task
When creating a consumer web service descriptor, Integration Server extracts the JMS information from the WSDL document and saves it with the binder information in the web service descriptor. However, as indicated in the SOAP over Java Message Service standard, the only JMS information required in the WSDL is the lookup variant and the destination name. Consequently, it is possible that some information necessary to connect to the JMS provider is absent from the WSDL. Integration Server uses the information in a JMS consumer web service endpoint alias to replace or supplement the JMS information specified in the WSDL document.
When creating a consumer web service descriptor, the message addressing properties define the WS-addressing headers information that can be attached to the SOAP message.
Keep the following points in mind when creating a web service endpoint alias for use with a consumer web service descriptor with a SOAP over JMS binding:
-
A JMS consumer web service endpoint alias can specify one of the following options to connect to a JMS provider:
- JNDI provider alias and a connection factory.
- JMS connection alias.
Only specify a JNDI provider alias and connection factory, or JMS connection alias, if information for connecting to the JMS provider was not included in the WSDL document used to create the consumer web service descriptor or if you want to overwrite the connection information included in the WSDL document.
Note: Using a JMS connection alias to connect to the JMS provider might offer better performance. Keep in mind that a JMS connection alias can connect to the JMS provider by using JNDI to retrieve a connection factory and then establishing a connection or by connecting natively to the webMethods Broker. - If you want to use the client side queue with the web service descriptor to which the alias is assigned, you must specify a JMS connection alias as the way to connect to the JMS provider.
- Information in the JMS consumer web service endpoint alias can supplement or replace the JMS URI information obtained from a WSDL.
- You
can use the endpoint alias to provide information for the WS-Security header as
determined by the security policy for the web service. A web service security
policy can require that:
- SOAP message requests include a UserName token.
- SOAP message response be decrypted.
- SOAP message requests to be signed.
- X.509 authentication.
- A Timestamp element be added to the security header.
Note: WS-Security credentials such as private keys and public keys do not always need to be provided in a web service endpoint alias. If this information is not provided in the alias, Integration Server can obtain the information from other locations. For more information about usage and resolution order of certificates and keys for WS-Security, see the WS-Security Certificate and Key Requirements .
To create a consumer web service endpoint alias for use with JMS
Procedure
Creating an Endpoint Alias for Message Addressing for Use with JMS
About this task
Keep the following points in mind when creating a web service endpoint alias for message addressing for use with a web service descriptor with a SOAP over JMS binding:
-
A JMS message addressing web service endpoint alias can specify one of the following options to connect to a JMS provider:
- JNDI provider alias and a connection factory.
- JMS connection alias.
Only specify a JNDI provider alias and connection factory, or JMS connection alias, if information for connecting to the JMS provider was not included in the WSDL document used to create the consumer web service descriptor or if you want to overwrite the connection information included in the WSDL document.
Note: Using a JMS connection alias to connect to the JMS provider might offer better performance. Keep in mind that a JMS connection alias can connect to the JMS provider by using JNDI to retrieve a connection factory and then establishing a connection or by connecting natively to the webMethods Broker. - You
can use the endpoint alias to provide information for the WS-Security header as
determined by the security policy for the web service.
Note: WS-Security credentials such as private keys and public keys do not always need to be provided in a message addressing web service endpoint alias. If this information is not provided in the alias, Integration Server can obtain the information from other locations. For more information about usage and resolution order of certificates and keys for WS-Security, see the Web Services Developer’s Guide .
- If you want to use the client side queue with the web service descriptor to which the alias is assigned, you must specify a JMS connection alias as the way to connect to the JMS provider.
To create a message addressing web service endpoint alias for use with JMS
Procedure
Timestamps in the WS-Security Header
The WS-Security header can contain Timestamp elements and tokens. Integration Server uses the timestamp to specify or detect whether an outbound or inbound message expires, specifically:
- For outbound messages, if the WS-Security policy attached to the web service descriptor includes the <sp:IncludeTimestamp/> assertion, Integration Server adds a Timestamp element, which includes the creation and expiry time, to the security header.
- For inbound messages, if the message has a Timestamp token, based on the Timestamp token, Integration Server verifies that the message has not arrived after the expiration time.
In the web service endpoint alias, you can specify the precision of the message timestamp, the message time to live, and whether to account for any difference in the clocks on the sending and receiving machines.