Beginning with release 9.0, Enterprise Server offers options for enhanced security for HTTP and MFBINP conversations. These options are supported by the Web Services and J2EE conversation type, and some of the HTTP-related options apply to the Remote File Access (RFA) and Web conversation types.
Enhanced security works in conjunction with other Enterprise Server features, such as external security and conversation filtering (firewall), to improve the overall security posture of the enterprise server instance and provide defense in depth.
Enhanced security is configured in the listener Custom Configuration filed.
Enhanced security includes the following features, most of which can be used independently.
Authentication verifies the identity of the client connecting to the enterprise server listener. Typically, it is the end user who is authenticated, but in some cases an organization might authenticate the client system using SSL/TLS and a client certificate.
With enhanced security, if authentication is enabled, it can be required — all clients must authenticate successfully or the conversation is terminated — or it can be optional. Optional authentication lets a client authenticate, in which case it may be granted additional access that is not available to an unauthenticated client.
Authentication requires that Enterprise Server External Security is configured for the enterprise server region.
Authentication options apply to RFA as well as Web Services and J2EE.
Authorization restricts what requests a client is allowed to make. If authorization is enabled, then a security access check is performed using either the authenticated user, or a default user account if authentication is optional and the client is not authenticated.
The parameters of the access check depend on the protocol (HTTP or MFBINP), the type of request, and the resource, such as the HTTP URL, named in the request.
By default, access requests are made against the resource class "Communications Server Service Control". The name of the class can be changed in the listener configuration.
For HTTP, the path portion of the URL in the request is the resource name used for the access request.
The HTTP method determines the required permission level:
For example, a web service client making a POST request to a Web service with the following URL:
https://eshost:9000/tempuri/account_update/credit?account=12345&amount=500.00This would require update permission for the resource /tempurl/account_update/credit in the resource class "Communications Server Service Control".
MFBINP requests always ask for execution permission. The resource name for MFBINP access requests is the service name for normal service requests, and BINP control message for other types of MFBINP messages such as transaction control.
COBOL programs deployed to Enterprise Server as EJBs have their service names specified as part of interface mapping, and the service names will also be visible in the service objects configured in ESCWA for an enterprise server region. Built-in services used by functions such as casfile and casout include the following:
With COBOL Application Server (CAS) service names, you might need to experiment and consult the logs to see precisely which service is being allowed or denied for a given task.
Constraints restrict which features of the Web Services and J2EE conversation type a given listener supports. They are useful to disable features you never use, in order to reduce the attack surface, or to create specific listeners for different purposes, which might be bound to different interfaces, use different firewall rules, or have different authentication and authorization settings.
With constraints you can disable any number of the following features:
All of these security options are set in the [Security] section of the Custom Configuration filed for the listener.
[Security] authenticate=required|enabled|optional|ignore failure|disabled default user=username authorize=required|disabled restricted=yes|http|mfbinp|no authentication=types realm=string keep authentication when passive=yes|no allow HTTP=yes|no allow MFBINP=yes|no allow ESMAC=yes|no allow CAS services=yes|no allow MFBINP FH=yes|no allow dynamic debugging=yes|no
The default value is disabled unless restricted (see below) is enabled for the protocol, in which case the default is enabled.
This setting applies to RFA and Web listeners as well.
The default is disabled.
The authenticate setting applies to all requests (HTTP and J2EE). This is the default if authenticate is set to anything other than disabled.
The value of this setting is one or more of the following tokens, separated by spaces and/or commas:
Like certificate, but if the client sends an unrecognized certificate, try the other enabled authentication mechanisms (for example HTTP). If the client is authenticated using one of them, register the client's certificate under that identity for future use.
The default value is "MF Communications Server for region region-name".
If this is not enabled, clients trying to reactivate an MFBINP session will have to re-authenticate. This is more secure if an attacker attempts to get the session ID of a passivated session. For example, because the client stored it in a file.
The default value is no.
The default value is yes for all features.