Configuration

This section provides a detailed description of all security configuration. A snippet is provided for each configuration object showing the syntax for specifying all of the configuration values.

Security configuration map

Figure 5.10. Security configuration map


Security configuration has a configuration type of com.tibco.ep.dtm.configuration.security.

KerberosAuthenticationRealm

The KerberosAuthenticationRealm root configuration object defines Kerberos authentication for a node. There can only be a single KerberosAuthenticationRealm defined on a node.

Figure 5.11, “KerberosAuthenticationRealm relationships” shows the relationships to other configuration objects.

KerberosAuthenticationRealm relationships

Figure 5.11. KerberosAuthenticationRealm relationships


A detailed description of the configuration object properties is in Table 5.1, “KerberosAuthenticationRealm object properties” and a snippet for these properties is in Example 5.1, “KerberosAuthenticationRealm object snippet”.

Table 5.1. KerberosAuthenticationRealm object properties

NameTypeDescription
fallbackAuthenticationRealmNameStringThe name of the realm used for all authorization. This must be the name of an active LDAPAuthenticationRealm or LocalAuthenticationRealm. If the fallback realm is not defined, configuration activation will fail. Required.
internalClientLoginConfigurationFileStringThe Java Authentication and Authorization Service (JAAS) login configuration file that configures internal client use of Kerberos. If specified, file must be valid on the machine where the node is running. If not specified, then the internalClientPrincipalName configuration property must be specified. A login file will be generated using that principal and the internalClientKeytabFile if specified, or the serverKeytabFile if internalClientKeytabFile is not specified. Optional. No default value.
internalClientKeytabFileStringThe internal client Kerberos keytab file name, used for internal client login without kinit. The file must be valid on the machine where the node is running. Optional. Default value is the value of the serverKeytabFile configuration property.
internalClientPrincipalNameStringThe internal client Kerberos principal name, as it is known to the Kerberos Key Distribution Center (KDC) specified in the Kerberos system configuration file. If not specified, then an internal client JAAS login configuration file containing a principal name must be specified in internalClientLoginConfigurationFile. Optional. No default.
jaasDebugBooleanThe JAAS debugging flag. Set to true to enable JAAS debug logging, false to disable. Optional. Default value is false.
kerberosConfigurationFileStringThe location of the Kerberos system configuration file, specifying among other things the location of the KDC. This file must be valid on the machine where the node is running. Required.
nameStringName of the authentication realm. This name must be unique across all authentication realms. Required.
requireTrustedHostMembershipBooleanA value of true only allows users to connect from a trusted host, a value of false allows users to connect from any host. Optional. Default value is false.
serverKeytabFileStringThe server Kerberos keytab file name, used for principal login without kinit. This file must be valid on the machine where the node is running. Required.
serverPrincipalNameStringThe server Kerberos principal name, as it is known to the KDC specified in the Kerberos system configuration file. Required.
ticketCacheFileStringThe location of a Kerberos ticket cache file. The file must be valid on the machine where the node is running. Optional. Default is a system default location.

Example 5.1. KerberosAuthenticationRealm object snippet

name = "kerberos-authentication-realm"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    KerberosAuthenticationRealm =
    {
        name = "my-kerberos-authentication-realm"
        requireTrustedHostMembership = false
        fallbackAuthenticationRealmName = "my-local-realm"
        internalClientLoginConfigurationFile = "/opt/kerberos/client-configuration"
        internalClientKeytabFile = "/opt/kerberos/keytab/client"
        internalClientPrincipalName = "client-principal@ACME.COM"
        jaasDebug = false
        kerberosConfigurationFile = "/opt/kerberos/kerberos-configuration"
        serverKeytabFile = "/opt/kerberos/keytab/server"
        serverPrincipalName = "HTTP/my.host.com@ACME.COM"
        ticketCacheFile = "/opt/kerberos/ticket/cache/file"
    }
}


LDAPAuthenticationRealm

The LDAPAuthenticationRealm root configuration object defines LDAP integration for a node. Figure 5.12, “LDAPAuthenticationRealm relationships” shows the relationships to other configuration objects.

LDAPAuthenticationRealm relationships

Figure 5.12. LDAPAuthenticationRealm relationships


A detailed description of the configuration object properties is in Table 5.2, “LDAPAuthenticationRealm object properties” and a snippet for these properties is in Example 5.2, “LDAPAuthenticationRealm object snippet”.

Table 5.2. LDAPAuthenticationRealm object properties

NameTypeDescription
allowSecureCommunicationClientAuthenticationBooleanAutomatically authenticate if user is connecting over a secure communication channel. A value of true allows automatic authentication, a value of false disables automatic authentication. Optional. Default value is false.
serversLDAPServer [ ]LDAP server configuration. Multiple LDAP servers can be configured. Authentication is attempted to each server in the order they are defined in this configuration property until authentication is successful, or there are no more servers configured. Required.
nameStringName of the authentication realm. This name must be unique across all authentication realms. Required.
requirePasswordBooleanRequire a password if user is connecting from a trusted host unless automatically authenticated because of a secure communication channel. A value of true requires a password when connecting from a trusted host, a value of false allows connection from a trusted host without a password. Optional. Default value is true.
requireTrustedHostMembershipBooleanA value of true only allows user to connect from a trusted host, a value of false allows user to connect from any host. Optional. Default value is false.

Example 5.2. LDAPAuthenticationRealm object snippet

name = "ldap-authentication-realm"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    LDAPAuthenticationRealm =
    {
        name = "my-ldap-authentication-realm"
        requireTrustedHostMembership = true
        allowSecureCommunicationClientAuthentication = true
        requirePassword = false
        servers =
        [
            { ... }
            { ... }
        ]
    }
}


LDAPServer

The LDAPServer configuration object defines LDAP server configuration. Figure 5.13, “LDAPServer relationships” shows the relationships to other configuration objects.

LDAPServer relationships

Figure 5.13. LDAPServer relationships


A detailed description of the configuration object properties is in Table 5.3, “LDAPServer object properties” and a snippet for these properties is in Example 5.3, “LDAPServer object snippet”.

Table 5.3. LDAPServer object properties

NameTypeDescription
hostStringLDAP server host name. Optional. Default value is localhost.
portNumberShortLDAP server port number. Optional. Default value is 389.
principalAuthenticationAlgorithmEnumeration with these valid values, BIND, LOCAL_PASSWORD_COMPARE, and REMOTE_PASSWORD_COMPARE.The type of authentication to perform. BIND authenticates principals by connecting to the LDAP server using the principal name and credentials. LOCAL_PASSWORD_COMPARE authenticates principals by connecting to the LDAP server using the system principal, searching for the user, retrieving its password attribute, and comparing the values locally with the principal's credentials. REMOTE_PASSWORD_COMPARE is the same as LOCAL_PASSWORD_COMPARE except that the comparison is performed by the LDAP server. Optional. Default value is BIND.
principalPasswordAttributeStringThe password attribute for this LDAP server's principals. Optional. Default value is userPassword.
principalSearchRootsString [ ]A list of Distinguished Names under which principals are searched for during search-based authentication operations or user name to Distinguished Name conversions. Required. Must contain at least on element.
principalSearchFilterStringThe LDAP filter expression used when searching for principals. The filter permits Java pattern substitution expressions. {0} is bound to the input principal and {1} is bound to its corresponding distinguished name. Optional. Default value is CN={0}.
roleSearchRootsString [ ]A list of Distinguished Names under which roles are searched for. Optional. Default value is the principalSearchRoots value.
roleSearchFilterStringThe LDAP filter expression used when searching for roles of which a principal is a member. The filter permits Java pattern substitution expressions. {0} is bound to the input principal and {1} is bound to its corresponding Distinguished Name. Optional. Default value is roleOccupant={1}.
roleNameAttributeStringAttribute of a role entry that is used to map to privileges. Optional. Default value is CN.
secureCommunicationProfileNameStringName of a secure communication client profile to use when configuring secure communications with an LDAP server. Optional. No default value. If not set LDAP server connections are not secure.
systemPasswordStringThe system principal password to log in to the LDAP server to perform authentication operations. Opaque passwords are generated using the epadmin secret target. See the section called “secret target”. Required.
systemPrincipalStringThe system principal to log in to the LDAP server to perform authentication operations. Required.

Example 5.3. LDAPServer object snippet

name = "ldap-authentication-realm"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    LDAPAuthenticationRealm =
    {
        servers =
        [
            {
                host = "ldap.primary.acme.com"
                portNumber = 390
                principalAuthenticationAlgorithm = LOCAL_PASSWORD_COMPARE
                principalPasswordAttribute = "password"
                principalSearchRoots = [ "ou=users,dc=example.dc=com" ]
                principalSearchFilter = "cn={0}"
                roleSearchRoots = [ "ou=roles,dc=example.dc=com" ]
                roleSearchFilter = "membership={1}"
                roleNameAttribute = "roleID"
                secureCommunicationProfileName = "secure-ldap-client-profile"
                systemPassword = "secret"
                systemPrincipal = "cn=SBLDAPUser,cn=Users,dc=ldap,dc=example,dc=com"
            }
            {
                host = "ldap.backup.acme.com"
                portNumber = 390
                principalAuthenticationAlgorithm = LOCAL_PASSWORD_COMPARE
                principalPasswordAttribute = "password"
                principalSearchRoots = [ "ou=users,dc=example.dc=com" ]
                principalSearchFilter = "cn={0}"
                roleSearchRoots = [ "ou=roles,dc=example.dc=com" ]
                roleSearchFilter = "membership={1}"
                roleNameAttribute = "roleID"
                secureCommunicationProfileName = "secure-ldap-client-profile"
                systemPassword = "secret"
                systemPrincipal = "cn=SBLDAPUser,cn=Users,dc=ldap,dc=example,dc=com"
            }
        ]
    }
}


LocalAuthenticationRealm

The LocalAuthenticationRealm foot configuration object defines the characteristics and initial principals in the local authentication realm for a node. Figure 5.14, “LocalAuthenticationRealm relationships” shows the relationships to other configuration objects.

LocalAuthenticationRealm relationships

Figure 5.14. LocalAuthenticationRealm relationships


A detailed description of the configuration object properties is in Table 5.4, “LocalAuthenticationRealm object properties” and a snippet for these properties is in Example 5.4, “LocalAuthenticationRealm object snippet”.

Table 5.4. LocalAuthenticationRealm object properties

NameTypeDescription
allowSecureCommunicationClientAuthenticationBooleanAutomatically authenticate if user connecting over a secure communication channel. A value of true allows automatic authentication, a value of false disables automatic authentication. Optional. Default value is false.
initialPrincipalsPrincipal [ ]Initial set of principals (see the section called “Principal”) in this realm. The values in this field cannot change when this configuration is updated. If the values do change, configuration audit will fail. Optional. No default value.
nameStringName of the authentication realm. This name must be unique across all authentication realms. Required.
requirePasswordBooleanRequire a password if user is connecting from a trusted host unless automatically authenticated because of a secure communication channel. A value of true requires a password when connecting from a trusted host, a value of false allows connection from a trusted host without a password. Optional. Default value is true.
requireTrustedHostMembershipBooleanA value of true only allows users to connect from a trusted host, a value of false allows users to connect from any host. Optional. Default value is false.

Example 5.4. LocalAuthenticationRealm object snippet

name = "local-authentication-realm"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    LocalAuthenticationRealm =
    {
        name = "my-local-authentication-realm"
        requireTrustedHostMembership = true
        allowSecureCommunicationClientAuthentication = true
        requirePassword = false
        initialPrincipals =
        [
            { ... }
            { ... }
        ]
    }
}


OIDCAuthenticationRealm

The OIDCAuthenticationRealm root configuration object defines OpenId Connect authentication for a node. Figure 5.15, “OIDCAuthenticationRealm relationships” shows the relationships to other configuration objects.

OIDCAuthenticationRealm relationships

Figure 5.15. OIDCAuthenticationRealm relationships


A detailed description of the configuration object properties is in Table 5.5, “OIDCAuthenticationRealm object properties” and a snippet for these properties is in Example 5.5, “OIDCAuthenticationRealm object snippet”.

Table 5.5. OIDCAuthenticationRealm object properties

NameTypeDescription
defaultRedirectURLStringThe default address to redirect a user to after authentication if no redirect URL was provided in the authentication request. Optional. Default value is null.
identityProvidersAssociative array of OIDCIdentityProvider configuration objects keyed by identity provider names.An associative array of OIDCIdentityProvider (see Table 5.6, “OIDCIdentityProvider object properties”) configuration objects indexed by provider names. Provider names must be URL safe and non-empty. Required.
fallbackAuthenticationRealmNameStringThe name of the realm used for all authorization. This must be the name of an active LDAPAuthenticationRealm or LocalAuthenticationRealm. If the fallback realm is not defined, configuration activation will fail. Required.
nameStringName of the authentication realm. This name must be unique across all authentication realms. Required.
pendingAuthenticationTimeoutSecondsIntegerThe amount of time to wait for a provider's response in seconds before timing out. Optional. Default is 300 seconds.
requireTrustedHostMembershipBooleanA value of true only allows users to connect from a trusted host, a value of false allows users to connect from any host. Optional. Default value is false.

Example 5.5. OIDCAuthenticationRealm object snippet

name = "oidc-authentication-realm"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    OIDCAuthenticationRealm =
    {
        name = "my-oidc-authentication-realm"
        requireTrustedHostMembership = false
        defaultRedirectURL = "http://redirect.acme.com"
        fallbackAuthenticationRealmName = "my-ldap-realm"
        pendingAuthenticationTimeoutSeconds = 600
        identityProviders =
        {
            "Google" = { ... }
            "Auth0" = { ... }
        }
    }
}


OIDCIdentityProvider

The OIDCIdentityProvider object defines the configuration for OpenId Connect providers.

Support is provided for federated identity providers like Auth0. Federated providers use subject prefixes to map to the actual provider defined in this configuration. This mapping is configured using the subjectProviderMappings configuration property. For example:

//
//    Subject provider mappings in Auth0 configuration
//    A subject prefix of google-oauth2 maps to the 
//    configured "Google" identity provider
//
subjectProviderMappings =
{
    "google-oauth2" = "Google"
}

//
//    Auth0 identity contains "sub" claims
//
//    The "|" is the delimiter, so "google-oauth2" is the prefix that 
//    identifies the actual provider providing the identity information.
//    105569619522230371597 is the subject for the principal from the identity 
//    provider represented by google-oauth2
//
sub: 'google-oauth2|105569619522230371597'

//
//    The same principal authenticated directly against "Google"
//    would have the same identity information in the "sub" field.
//
sub: '105569619522230371597'

Figure 5.16, “OIDCIdentityProvider relationships” shows the relationships to other configuration objects.

OIDCIdentityProvider relationships

Figure 5.16. OIDCIdentityProvider relationships


A detailed description of the configuration object properties is in Table 5.6, “OIDCIdentityProvider object properties” and a snippet for these properties is in Example 5.6, “OIDCIdentityProvider object snippet”.

Table 5.6. OIDCIdentityProvider object properties

NameTypeDescription
clientIDStringThe client's authentication identifier. Required
clientSecretStringThe client's authentication secret key. Opaque passwords are generated using the epadmin secret target. See the section called “secret target”. Required.
documentDiscoveryURLStringThe identity provider's Document Discovery URL for obtaining discovery information. Required.
identityAttributeNameStringThe attribute in a given principal's ID Token to be used as the identity for this principal. Required.
subjectProviderMappingsAssociative array of subject prefixes to identity provider names.Map federated identity provider subject prefixes to configured identity provider names. The provider names must be configured in this configuration. This field is only valid for federated identity providers like Auth0. Optional. Default is null (no mappings).

Example 5.6. OIDCIdentityProvider object snippet

name = "oidc-authentication-realm"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    OIDCAuthenticationRealm =
    {
        identityProviders =
        {
            "Google" =
            {
                documentDiscoveryURL = "https://accounts.google.com/.well-known/openid-configuration"
                clientID = "my-google-client-identifier"
                clientSecret = "my-google-client-secret"
                identityAttributeName = "email"
            }
            "Auth0" =
            {
                documentDiscoveryURL = "https://tibco.auth0.com/.well-known/openid-configuration"
                clientID = "my-auth0-client-identifier"
                clientSecret = "my-auth0-client-secret"
                identityAttributeName = "email"
                subjectProviderMappings =
                {
                    "google-oauth2" = "Google"
                }
            }
        }
    }
}


Principal

The Principal configuration object defines a principal managed by the local authentication realm. Figure 5.17, “Principal relationships” shows the relationships to other configuration objects.

Principal relationships

Figure 5.17. Principal relationships


A detailed description of the configuration object properties is in Table 5.7, “Principal object properties” and a snippet for these properties is in Example 5.7, “Principal object snippet”.

Table 5.7. Principal object properties

NameTypeDescription
lockedBooleanControl whether the user account is locked. If true the user account is locked and cannot be accessed, if false the account is enabled and can be accessed. Optional. Default value is false.
passwordStringOpaque credential. Opaque text credentials are generated using the epadmin secret target. See the section called “secret target”. Required.
passwordExpirationPeriodDaysIntegerAn optional expiration time for the password in days. Default value is 0 (no expiration).
rolesString [ ]An array of role names. Optional. No default.
userNameStringPrincipal name. Required.

Example 5.7. Principal object snippet

name = "local-authentication-realm"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    LocalAuthenticationRealm =
    {
        initialPrincipals =
        [
            {
                userName = "FredTheAdministrator"
                password = "LKJALISJDOIQUWEOIAJSLKDJALSJDL"
                roles =
                [
                      "administrator"
                ]
                passwordExpirationPeriodDays = 12
                locked = true
            }
        ]
    }
}


RoleToPrivilegeMappings

The RoleToPrivilegeMappings object defines the roles and their associated privileges. Figure 5.18, “RoleToPrivilegeMappings relationships” shows the relationships to other configuration objects.

RoleToPrivilegeMappings relationships

Figure 5.18. RoleToPrivilegeMappings relationships


A detailed description of the configuration object properties is in Table 5.8, “RoleToPrivilegeMappings object properties” and a snippet for these properties is in Example 5.8, “RoleToPrivilegeMappings object snippet”.

Table 5.8. RoleToPrivilegeMappings object properties

NameTypeDescription
privilegesAssociative array of Privilege objects keyed by role name.Role definitions with associated privileges. Required.

Example 5.8. RoleToPrivilegeMappings object snippet

name = "my-target-role-mappings"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    RoleToPrivilegeMappings =
    {
        privileges =
        {
            administrator = [ ... ]
            monitor = [ ...]
        }
    }
}


Privilege

The Privilege object defines permissions for a resource. Figure 5.19, “Privilege relationships” shows the relationships to other configuration objects.

Privilege relationships

Figure 5.19. Privilege relationships


A detailed description of the configuration object properties is in Table 5.9, “Privilege object properties” and a snippet for these properties is in Example 5.9, “Privilege object snippet”.

Table 5.9. Privilege object properties

NameTypeDescription
privilegeEnumeration. Valid values are ADMIN_RUN_COMMAND.Privilege type. Required.
resourceStringResource name specified as <target>.<command>. Required for administration commands, optional for other resources. No default.

Example 5.9. Privilege object snippet

name = "my-target-role-mappings"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    RoleToPrivilegeMappings =
    {
        privileges =
        {
            administrator =
            [
                {
                      resource = "mytarget.start"
                      privilege = "AdminRunCommand"
                },
                {
                      resource = "mytarget.stop"
                      privilege = "AdminRunCommand"
                }
            ]
            monitor = 
            [
                {
                      resource = "mytarget.display"
                      privilege = "AdminRunCommand"
                }
            ]
        }
    }
}


SecureCommunicationClientProfile

The SecureCommunicationClientProfile root configuration object defines a secure communication profile for client connectivity. Figure 5.20, “SecureCommunicationClientProfile relationships” shows the relationships to other configuration objects.

SecureCommunicationClientProfile relationships

Figure 5.20. SecureCommunicationClientProfile relationships


A detailed description of the configuration object properties is in Table 5.10, “SecureCommunicationClientProfile object properties” and a snippet for these properties is in Example 5.10, “SecureCommunicationClientProfile object snippet”.

Table 5.10. SecureCommunicationClientProfile object properties

NameTypeDescription
excludedCipherSuitePatternsString [ ]A list of Java regular expression patterns for excluded cipher suites. This value is exclusive of the includedCipherSuites property. Optional. Default is ^.*_(MD5|(?<!TLS_DHE_RSA_WITH_AES_\\d\\d\\d_CBC_)SHA|SHA1)$ if no includedCipherSuites are specified.
includedCipherSuitesString [ ]A list of allowed cipher suites. This value is exclusive of the excludedCipherSuitePatterns property. Optional. Default is the JRE's full set of supported cipher suites.
includedProtocolsString [ ]A list of allowed protocols. Optional. Default is TLSv1.1 and TLSv1.2. An empty array uses the JRE's full set of supported protocols.
keyPasswordStringThe password to access the key within the keystore. Opaque text credentials are generated using the epadmin secret target. See the section called “secret target”. Optional. Default is keyStorePassword.
keyStorePasswordStringKey store password, used to access the key store contents. Opaque text credentials are generated using the epadmin secret target. See the section called “secret target”. Required if keyStore specified.
keyStoreStringAbsolute path to a key store file that contains the client's certificate as well as optional trust store information, depending on key store format. If the key store contains multiple private key entries (aliases), the first is used. This file must be valid on the machine where the client is running. If provided, clients can perform mutual authentication with a server. Optional. No default.
keyStoreTypeStringKey store type. Optional. Default is jks.
nameStringThe name of the profile. This name must be unique across all secure communication profiles - both client and server. Required.
requireClientAuthenticationBooleanEnable (true) or disable (false) required client authentication. If enabled a keyStore must be configured to sign the secure communication protocol handshake. Optional. Default is false.
trustStoreStringAn absolute file path to the trust store used to verify client trust. This file must be valid on the machine where the client is running. Required.
trustStorePasswordStringThe password to access the trust store. Opaque text credentials are generated using the epadmin secret target. See the section called “secret target”. Required if trustStore specified.
trustStoreTypeStringTrust store type. Optional. Default is jks.

Example 5.10. SecureCommunicationClientProfile object snippet

name = "my-secure-client-settings"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    SecureCommunicationClientProfile =
    {
        name = "my-secure-client-profile"
        keyStore = "/absolute/path/myKeyStore.jks"
        keyStorePassword = "secret"
        keyPassword = "anothersecret"
        keyStoreType = "JCEKS"
        trustStore = "/absolute/path/myTrustStore.jks"
        trustStorePassword = "athirdsecret"
        trustStoreType = "JCEKS"
        requireClientAuthentication = true
        excludedCipherSuitePatterns = [ "^.*_(MD5|SHA|SHA1)$" ]
        includedProtocols = [ ] // use JRE's supported protocols
    }
}


SecureCommunicationServerProfile

The SecureCommunicationServerProfile root configuration object defines a secure communication profile for listeners. Figure 5.21, “SecureCommunicationServerProfile relationships” shows the relationships to other configuration objects.

SecureCommunicationServerProfile relationships

Figure 5.21. SecureCommunicationServerProfile relationships


A detailed description of the configuration object properties is in Table 5.11, “SecureCommunicationServerProfile object properties” and a snippet for these properties is in Example 5.11, “SecureCommunicationServerProfile object snippet”.

Table 5.11. SecureCommunicationServerProfile object properties

NameTypeDescription
excludedCipherSuitePatternsString [ ]A list of Java regular expression patterns for excluded cipher suites. This value is exclusive of the includedCipherSuites property. Optional. Default is ^.*_(MD5|(?<!TLS_DHE_RSA_WITH_AES_\\d\\d\\d_CBC_)SHA|SHA1)$ if no includedCipherSuites are specified.
includedCipherSuitesString [ ]A list of allowed cipher suites. This value is exclusive of the excludedCipherSuitePatterns property. Optional. Default is the JRE's full set of supported cipher suites.
includedProtocolsString [ ]A list of allowed protocols. Optional. Default is TLSv1.1 and TLSv1.2. An empty array uses the JRE's full set of supported protocols.
keyPasswordStringThe password to access the key within the keystore. Opaque text credentials are generated using the epadmin secret target. See the section called “secret target”. Optional. Default is keyStorePassword.
keyStorePasswordStringKey store password, used to access the key store contents. Opaque text credentials are generated using the epadmin secret target. See the section called “secret target”. Required.
keyStoreStringAbsolute path to a key store file that contains the server's certificate as well as optional trust store information, depending on key store format. If the key store contains multiple private key entries (aliases), the first is used. This file must be valid on the machine where the node is running. Required.
keyStoreTypeStringKey store type. Optional. Default is jks.
nameStringThe name of the profile. This name must be unique across all secure communication profiles - both client and server. Required.
requireClientAuthenticationBooleanEnable (true) or disable (false) required client authentication. If enabled a trustStore must be configured to verify client trust. Optional. Default is false.
subjectNameElementToUserNameMappingsAssociative array of certificate based principal names to authorization user names.A map whose keys are certificate-based principal names and whose values are authorization user names. Used in cases where an incoming client certificate is used for authentication, but none of the elements of its subject name are suitable for mapping to roles during authorization. Optional. No default, subject name element extracted with the userNameObjectIdentifierSearchPath must yield a valid user name for authorization purposes.
trustStoreStringAn absolute file path to the trust store used to verify client trust. This file must be valid on the machine where the node is running. If provided, servers can perform mutual authentication with clients. Optional.
trustStorePasswordStringThe password to access the trust store. Opaque text credentials are generated using the epadmin secret target. See the section called “secret target”. Required if trustStore specified.
trustStoreTypeStringTrust store type. Optional. Default is jks.
userNameObjectIdentifierSearchPathString [ ]An array of attribute keywords, or X.509 object identifiers (OIDs), indicating the order in which the client's X.509 certificate subject Distinguished Name attributes are searched to find a user name for authorization purposes. This key is only relevant if requireClientAuthentication is enabled and a trust store is present. Supported attribute keywords are userID, CN, emailAddress, and DN. Optional. Default is the search order emailAddress, CN, DN.

Example 5.11. SecureCommunicationServerProfile object snippet

name = "my-secure-server-settings"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"
configuration =
{
    SecureCommunicationServerProfile =
    {
        name = "my-secure-server-profile"
        excludedCipherSuitePatterns = [ "^.*_(MD5|SHA|SHA1)$" ]
        includedProtocols = [ ] // use JRE's supported protocols
        keyPassword = "anothersecret"
        keyStorePassword = "secret"
        keyStore = "/absolute/path/myKeyStore.jks"
        keyStoreType = "JCEKS"
        requireClientAuthentication = true
        subjectNameElementToUserNameMappings =
        {   
            "subjectNameElementFoo" = "userNameFoo"
            "subjectNameElementBar" = "userNameBar"
        }
        trustStore = "/absolute/path/myTrustStore.jks"
        trustStorePassword = "athirdsecret"
        trustStoreType = "JCEKS"
        userNameObjectIdentifierSearchPath = [ "userID", "CN", "1.2.3.4", "DN" ]
    }
}


TrustedHosts

The TrustedHosts object defines trusted hosts. Figure 5.22, “TrustedHosts relationships” shows the relationships to other configuration objects.

TrustedHosts relationships

Figure 5.22. TrustedHosts relationships


Multiple TrustedHosts configuration objects with different configuration names can be active at the same time. When a configuration is activated, all hosts in the new configuration are added to the trusted hosts for a node. When a configuration is deactivated, all hosts in the configuration being deactivated are removed from the trusted hosts for a node unless another active TrustedHosts configuration also defined the host as trusted.

A detailed description of the configuration object properties is in Table 5.12, “TrustedHosts object properties” and a snippet for these properties is in Example 5.12, “TrustedHosts object snippet”.

[Warning]

IP addresses specified in the hosts configuration property must be quoted. See Example 5.12, “TrustedHosts object snippet”.

Table 5.12. TrustedHosts object properties

NameTypeDescription
hostsString [ ]Trusted host names. Either a partially-qualified domain name, a fully-qualified domain name, a simple host name, an IPv4 or IPv6 address, or an IPv4 or IPv6 CIDR block. Optional. No default.

Example 5.12. TrustedHosts object snippet

name = "trusted-hosts"
version = "1.0.0"
type = "com.tibco.ep.dtm.configuration.security"

configuration =
{
    TrustedHosts =
    {
        hosts =
        [
              "host1",
              "host2",
              "*.some.domain.org",
              "host4.tibco.com",
              "189.4.5.6",
              "192.168.2.0/24",
              "201:db8::30:4/101",
              "2601:646:4102:9184:d56c:b9bc:f9ed:1ee4%en1"
        ]
    }
}