Configure a PAS for OpenEdge instance for client authentication
- Last Updated: February 11, 2026
- 3 minute read
- OpenEdge
- Version 13.0
- Documentation
Before you can use client authentication, you must complete a set of configuration tasks in PAS for OpenEdge:
- Import the CA root certificate of the ABL client into the trust keystore used by the PAS for OpenEdge instance.
- Enable TLS client authentication in the HTTPS port.
- Configure Tomcat user accounts.
- Set the container login model of the ABL web application.
- Ensure that HTTPS support is enabled in your production instance.
To configure a PAS for OpenEdge instance for client authentication:
- Import the CA root certificate of the ABL client into the trust keystore of
the
instance:
keytool -importcert -alias CA_certificate-alias -keystore instance-name\conf\tomcat-certstore.p12 -trustcacerts -file CA_certificate_filepath.cer -storepass storepass -nopromptThe CA root certificate is required to establish trust for the client certificate during an HTTPS connection.
In the preceding command syntax:
CA_certificate-alias—The alias of the CA root certificate in the trust keystoreinstance-name—The path of the PAS for OpenEdge instance directory on your machineCA_certificate_filepath—The full directory path of the ABL client's CA root certificate that you are importing into the trust keystore of the instancestorepass—The trust keystore password
Note: You must also import all required intermediate certificates into the trust keystore of the PAS for OpenEdge instance. - Configure the HTTPS port of the instance:
- Enable HTTPS client authentication for the instance by
setting the value of the
psc.as.https.clientauthproperty torequired:tcman config psc.as.https.clientauth=requiredNote that this property has two additional values that can be specified:
noneandoptional.If the property is set to:none, which is the default value, then client authentication is disabled.optional, then client authentication is performed if a client presents its certificate. But if the client does not present a certificate, then no authentication is performed, and a connection request is accepted.required, then client authentication must be performed for all ABL web applications deployed to the instance.
- Enable HTTPS client authentication for the instance by
setting the value of the
- Configure a user account (
username,password, androles) in theinstance-name\conf\tomcat-users.xmlfile for each client that must use client authentication.When a client is successfully authenticated, Tomcat validates the client against the corresponding user account configured in the
tomcat-users.xmlfile. Tomcat then grants or denies the client access to the instance according to the role that is defined for the user. The user account consists of comma-separated values, such as country (C), state (ST), organization (O), organizational unit (OU), and domain name server (CN). Note that you enter these details when you create your client certificate.The following is an example user account added to thetomcat-users.xmlfile:<user username="C=US,ST=client,O=Progress,OU=Openedge,CN=www.progress.com" password="password" roles="ROLE_PSCAdmin,ROLE_PSCOper,ROLE_PSCUser" />Note:- Use the
pkiutil -listcommand on the ABL client to retrieve details about the client username. - Username details are displayed in the opposite order
in the command window, starting with
CNand ending withC. When you add the details totomcat-users.xml, enter them in the following order:C,ST,O,OU, andCN. - The user ID in the CLIENT-PRINCIPAL object is set
to the Distinguished Name (
DN) in the client certificate. The following is an example of the CLIENT-PRINCIPAL user ID:"CN=www.progress.com,OU=Openedge,O=Progress,ST=client,C=US"
- Use the
- Configure your ABL web application:
Configure the ABL web application security
The Spring Security framework, which is an integral part of PAS for OpenEdge, is adaptable to a wide variety of authentication models and architecture. To configure security for your ABL web application, you must enable Spring Security in the PAS for OpenEdge instance:
- Open the
instance-name\webapps\webapp-name\WEB-INF\oeablSecurity.propertiesfile. - Enable Spring Security in the instance by setting the
apsv.security.enableproperty tocontainer. - Enable HTTPS client authentication in the
<login-config>element in theinstance-name\webapps\webapp-name\WEB-INF\web.xmldeployment descriptor file:<login-config> <auth-method>CLIENT-CERT</auth-method> <realm-name>OpenEdge</realm-name> </login-config>For ease of configuration, the
web.xml-clientcertdeployment descriptor file is provided in the same directory as theweb.xmldeployment descriptor file. Theweb.xml-clientcertfile includes the required login configuration and security constraints. Make a backup copy of theweb.xmlfile, and then rename theweb.xml-clientcertfile toweb.xml.By default, the security constraint defined in the
web.xml-clientcertdeployment descriptor file applies to all ABL web application transports. Customize the<url-pattern>element inside the<security-constraint>element according to your business needs.The following is an example<security-constraint>element definition that restricts container security to the APSV transport:<security-constraint> <display-name>PASOE oeabl Security Constraint</display-name> <web-resource-collection> <web-resource-name>Protected Area</web-resource-name> <url-pattern>/apsv/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>ROLE_PSCUser</role-name> </auth-constraint> </security-constraint> - To use TLS Client
authentication for Webapp using APSV transport, perform the
following:
- Open the instance-name\webapps\webapp-name\WEB-INF\oeablSecurity.properties file.
- Set client.login.model=container.
- Take a back-up of instance-name\webapps\webapp-name\WEB-INF\oeablSecurity.csv file.
- Open the instance-name\webapps\webapp-name\WEB-INF\oeablSecurity.csv file.
- In the "APSV Container Login model
Configuration" section, uncomment the following line:
"/apsv/**","OPTIONS","hasAnyRole('ROLE_PSCUser','ROLE_ANONYMOUS')".
And, comment the following:
"/apsv/**","OPTIONS","hasAnyRole('ROLE_PSCUser')".
- Then save and close the file.