Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved


Chapter 10 Authentication and Authorization : WS Security Services Authentication

WS Security Services Authentication
TIBCO API Exchange Gateway supports the WebServices Security (WSS) authentication services for the northbound messages.
The configuration mechanism for WS security policies on Facade Operations tab in TIBCO API Exchange Gateway 2.x is provided for the backward compatibility to use with TIBCO ActiveMatrix Service Gateway 1.2.0 product release. This configuration mechanism is deprecated in 2.x release of the software.
TIBCO API Exchange Gateway supports the following security token profiles:
TIBCO API Exchange Gateway provides the user authentication for the northbound requests with the LDAP system.
TIBCO API Exchange Gateway provides SAML based sign-in authentication of the northbound requests.
TIBCO API Exchange Gateway uses X.509 protocol to process the requests and confirm that integrity and confidentiality is maintained.
TIBCO API Exchange Gateway provides the processing of northbound messages as follows:
The Core Engine can verify the signature of the sender of the request using the trust store as well as can decrypt it.
The Core Engine can sign the response message using private key to maintain integrity, as well as can encrypt it using the trust store and public certificate of the receiver of the response.
TIBCO API Exchange Gateway ensures availability, integrity and confidentiality by implementing the following protocols:
Security Service Providers
This section describes the following types of security service providers:
Authenticated Service provider ensures that access is restricted to authenticated user. To access the web services managed by the API Exchange Gateway, the user must include an appropriate token in the SOAP header to authenticate.
The supported authentication tokens are:
Identity service providers makes use of public and private credentials for common trust and identity operations such as token signing, data encryption and creation of SSL connections. The main types of identity service providers are Trust Identity Provider and Subject Identity Provider.
Web Services Security (WSS) Properties
This section explains the Web Services Security (WSS) properties for TIBCO API Exchange Gateway .
Types of Security Service Providers
Table Types of Service Providers lists the types of service providers used by WSS configuration.
Configuring LDAP Authentication Service Provider (LDAP ASP)
Description
The LDAP authentication service provider is used to authenticate the user name and password against the LDAP server. The user name is specified as the usernameToken in the incoming request from the client.
Use Case
Verifying usernameToken in the incoming request.
Example Properties
See the following properties:
Properties
Table Properties for LDAP Authentication Service Provider describes the properties for LDAP Authentication Service Provider.
If the value of this property set to true, the request message must contain a valid username token.
The default value is com.sun.jndi.ldap.LdapCtxFactory (Sun's LdapCtxFactory).
Specifies the URL to connect to the LDAP directory server. The LDAP URL is defined as: ldap://hostname:port. The LDAP SSL URL is defined as: ldaps://hostname:port
The time (in milliseconds) to wait for a response from the LDAP directory server. A value of 0 causes it to wait indefinitely. If a negative number is specified, it uses the provider's default setting.
The name of the attribute in the user object that represents the user's name. The value depends on which LDAP server is used. If you are using ActiveDirectory LDAP Server, set this value as CN. If SunOne or OpenLDAP LDAP Server is used, set this value as uid.
For example, mail givenname
For example, ou=people,ou=na,dc=example,dc=org
This property is relevant only when credentialProvider property is set and the binding is done as an administrator; otherwise userDNTemplate is used.
For example, uid={0},ou=employee,ou=tsi,o=tibco
Same as userAttributesExtra property but this is specified in list form.
A boolean property which determines if the entire sub-tree is searched or not. If a true value is specified, the entire sub-tree starting at the base DN is searched. Otherwise, the nodes one level below the base DN are searched.
For example, ou=groups,ou=na,dc=example,dc=org
Indicates the flag to determine if nested groups should be searched for. If the value is not set to true, the groups are only returned in which the user is the direct member.
For example, its defined as uniquemember={0} for SunOne, cn={0} for OpenLDAP, member={0} for Active Directory.
A boolean property which determines if the entire sub-tree is searched or not. If a true value is specified, the entire sub-tree starting at the base DN for groups is searched. Otherwise, the nodes one level below the base DN are searched.
If the value has userHasGroups,you must specify the attribute name which points the groups the user belongs to in the userAttributeGroupsName property.
If the value has userDNHasGroups,the userAttributeGroupsName property has the attribute name which hold the DNs of groups to which the user belongs. You must specify groupAttributeGroupsName property to get a specific part of the DN name.
If the value has groupHasUsers,each group object includes a list of users that belong to the group.
If the value has noGroupInfo, group memberships are not handled.
Depends on value of groupIndication. Required if the groupIndication property has groupHasUsers value.
groupHasUsers: Specifies the group attribute holding the name of group.
For example, the value is defined as cn for OpenLDAP server, sAMAccountName for ActiveDirectory LDAP server.
userHasGroups:Specifies the name of the group. If this is not specified, the whole DN of the group is used. For example, the value is defined as cn for OpenLDAP server.
For example, the value is defined as uniqueMember for OpenLDAP server, member for ActiveDirectory LDAP server.
Specifies the attribute name if the groupIndication property has groupHasUsers value. It specifies the name of the attribute in each group object denoting its users.
For example, the value is uniqueMember for OpenLDAP, member for ActiveDirectory Server.
Required if the groupIndication property has groupHasUsers value.
Sample File
The properties and example configuration for LDAP authentication service providers are found in the following sample files:
ASG_CONFIG_HOME/default/wss/req_usernametoken_ldapbind.properties
This file lists the properties with the example configuration for the LDAP server in bind mode.
ASG_CONFIG_HOME/default/wss/req_usernametoken_ldapsearch.properties
This file lists the properties with the example configuration for the LDAP server in search mode.
ASG_CONFIG_HOME/default/wss/req_usernametoken_ldapbindssl.properties
This file lists the properties with the example configuration for the LDAP server in SSL mode.
Configuring Trust Identity Provider
Description
The Trust Identity Provider is used to retrieve public certificates from a credential store required to perform trust operations. You must store the public certificate and provide its location. The certificates are used by the Core Engine to verify the signatures when the payload in the incoming request is signed. The Core Engine uses the public certificate to encrypt the response payload before it sends the response back to the client.
Use Case
Example Properties
See the following properties:
Properties
Table Properties for Trust Identify Provider (TIP) describes the properties for Trust Identify Provider.
If the value of this property set to true, the request message must have valid signatures.
Sample File
See ASG_CONFIG_HOME/default/wss/req_verifysig.properties file for the properties and example configuration for verifying the signature in the request message.
See ASG_CONFIG_HOME/default/wss/resp_encrypt.properties file for the properties and example configuration for encrypting the response message.
Configuring Subject Identity Provider
Description
The Subject Identity Provider is used to retrieve private keys (credentials) from a credential store. You must store the private keys and provide its location. The private keys are used by the Core Engine to decrypt the message when the payload in the incoming request is encrypted. The Core Engine uses the private keys to sign the response message before sending it back to the client.
Use Case
Example Properties
See the following properties:
Properties
Table Properties for Subject Identify Provider (SIP) describes the properties for Subject Identify Provider.
If the value of this property set to true, the request message must be encrypted.
Sample File
See ASG_CONFIG_HOME/default/wss/req_decrypt.properties file for the properties and example configuration for decrypting a request message.
See ASG_CONFIG_HOME/default/wss/resp_sign.properties.properties file for the properties and example configuration for encrypting a request message.
Configuring WSS Service Provider
Description
You can combine the properties of LDAP, Subject Identity Provider (SIP) and Trust Identity Provider(TIP) to obtain more than one functionality. For example, you can verify the signatures in an incoming payload, when signed, and also decrypt the request payload, when encrypted.
Use Case
Example Properties
See the following properties:
Properties
The properties for WSS Service Provider are defined as a combination of LDAP authentication, Subject Identity and Trust Identity provider.
See the following properties to define the WSS Service Provider properties:
Sample File
See ASG_CONFIG_HOME/default/wss/req_decrypt_verifysig.properties file for the properties and example configuration for decrypting and verifying signatures for the request message.
See ASG_CONFIG_HOME/default/wss/resp_sign_and_encrypt.properties file for the properties and example configuration for signing and encrypting the response message.
Limitations
Configuring Web Services Security Authentication
This section explains the procedure to configure the web services security for the Core Engine.
Define the WSS Configuration Properties file
This section explains how to define the properties files required for the WSS shared resources configuration.
Sample Files
TIBCO API Exchange Gateway provides the sample configuration file for the shared resources for each of the security type profile. It is recommended to use the sample files as templates and edit the properties as per your requirement. The sample files are located in the ASG_CONFIG_HOME/asg/default/wss directory.
The property files are defined depending on the type of WSS configuration selected. The following section explains the WSS type and a sample property file which can be used for that type:
TIBCO API Exchange Gateway authenticates the user with the LDAP system and requires to create the configuration file for LDAP configuration as follows:
LDAP configuration for bind mode
This configuration type provides the authentication based on the user name token with a LDAP system for bind mode.
The sample file req_usernametoken_ldapbind.properties for LDAP shared resource configuration is located in the following directory: ASG_CONFIG_HOME/asg/default/wss
You can use this file as a template and edit the LDAP server properties as per your environment.
LDAP configuration in bind mode with SSL Enabled
This configuration type provides the authentication based on the user name token with a LDAP system with SSL enabled in bind mode.
The sample file req_usernametoken_ldapbindssl.properties for LDAP shared resource configuration is located in the following directory: ASG_CONFIG_HOME/asg/default/wss
You can use this file as a template and edit the LDAP server with SSL properties as per your environment.
LDAP configuration for search mode
This configuration type provides the authentication based on the user name token with an LDAP system for search mode.
The sample file req_usernametoken_ldapsearch.properties for LDAP shared resource configuration is located in the following directory: ASG_CONFIG_HOME/asg/default/wss
You can use this file as a template and edit the LDAP server properties for search mode as per your environment.
The configured keystore along with a valid key from keystore can be used to provide an identity of the interested subject. The Identity provider takes as an input the password of the Key alias, and it is used to access the private key of that particular alias. This is used for signing.
TIBCO API Exchange Gateway requires certain properties to be defined for this type. These properties are defined in a file, which can be imported in the configuration GUI. See Define the WSS Configuration Properties file
This configuration type provides the properties for the keystore configuration (private key) to sign the message or decrypt the message.
The sample file resp_sign.properties describes the keystore properties required to sign the message. This file is located in the following directory: ASG_CONFIG_HOME/asg/default/wss
You can use this file as a template and edit the keystore configuration as per your environment.
The trust store consumes a keystore provider and it is used for accessing public keys of the keys for signature verification or for encryption.
TIBCO API Exchange Gateway requires certain properties to be defined for this type. These properties are defined in a file, which can be imported in the configuration GUI. See Define the WSS Configuration Properties file
This configuration type provides the properties for the keystore configuration to verify the signatures or encrypt the message.
The sample file resp_encrypt.properties describes the certificate keystore properties required to encrypt the message. This file is located in the following directory: ASG_CONFIG_HOME/asg/default/wss
You can use this file as a template and edit the keystore configuration as per your environment.
Register WSS resources with TIBCO API Exchange Gateway
The WSS tab on the configuration allows you to register the WSS resources with TIBCO API Exchange Gateway.
To setup the WSS configuration, follow these steps:
1.
2.
Click WSS tab.
3.
Define the WSS security operations
This section explains the steps to define a WSS enabled security operation. An operation is WSS enabled using the Operations tab of the GUI.
To setup the WSS configuration, follow these steps:
1.
2.
Click the Facade Operations tab.
3.
4.
Check the Enable WSS check box.
5.
This is the name of the WSS configuration from WSS tab. The property file from this configuration is used for northbound request processing.
This is the name of the WSS configuration from WSS tab. The property file from this configuration is used for northbound response processing.

Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved