Use the following information and procedures to configure X509 Certificate Authentication for Waveset.
To support X509 certificate-based authentication in Waveset, ensure that two-way (client and server) SSL authentication is configured properly. From the client perspective, this means that an X509-compliant user certificate should have been imported into the browser (or be available through a smart card reader), and that the trusted certificate used to sign the user certificate should be imported into the Web application server’s keystore of trusted certificates.
Also, the client certificate used must be enabled for client authentication.
Using Internet Explorer, select Tools, and then select Internet Options.
Select the Content tab.
In the Certificates area, click Certificates.
Select the client certificate, and then click Advanced.
In the Certificate Purposes area, verify that the Client Authentication option is selected.
Log in to the Administrator Interface as Configurator (or with equivalent permissions).
Select Configure, and then select Login to display the Login page.
Click Manage Login Module Groups to displays the Login Module Groups page.
Select a login module group from the list.
Select Waveset X509 Certificate Login Module from the Assign Login Module list. Waveset displays the Modify Login Module page.
Set the login success requirement.
The following values are acceptable:
Required. The login module is required to succeed. Irrespective of whether it succeeds or fails, authentication proceeds to the next login module in the list. If it is the only login module, the administrator is successfully logged in.
Requisite. The login module is required to succeed. If it succeeds, authentication proceeds to the next login module in the list. If it fails, authentication does not proceed.
Sufficient. The login module is not required to succeed. If it does succeed, authentication does not proceed to the next login module, and the administrator is successfully logged in. If it fails, authentication continues to the next login module in the list.
Optional. The login module is not required to succeed. Irrespective of whether it succeeds or fails, authentication continues to the next login module in the list.
Select a login correlation rule. This could be a built-in rule or a custom correlation rule. (See the following section for information about creating custom correlation rules.)
Click Save to return to the Modify Login Module Group page.
Optionally, reorder the login modules (if more than one login module is assigned to the login module group, and then click Save.
Assign the login module group to a login application if it is not yet assigned. From the Login Module Groups page, click Return to Login Applications, and then select a login application. After assigning a login module group to the application, click Save.
If the allowLoginWithNoPreexistingUser option is set to a value of true in the waveset.properties file, then when configuring the Waveset X509 Certificate Login Module, you are prompted to select a New User Name Rule. This rule is used to determine how to name new users created when one is not found by the associated Login Correlation Rule. The New User Name Rule has the same available input arguments as the Login Correlation Rule. It returns a single string, which is the user name used to create the new Waveset user account. A sample new user name rule is included in idm/sample/rules, named NewUserNameRules.xml.
A Login Correlation Rule is used by the Waveset X509 Certificate Login Module to determine how to map the certificate data to the appropriate Waveset user. Waveset includes a built-in correlation rule, named Correlate via X509 Certificate subjectDN.
You can also add your own correlation rules. Refer to LoginCorrelationRules.xml, which is located in the idm/sample/rules directory, as an example.
Each correlation rule must follow these guidelines:
Its authType attribute must be set to LoginCorrelationRule
It is expected to return an instance of a list of AttributeConditions to be used by the login module to find the associated Waveset user. For example, the login correlation rule might return an AttributeCondition that searches for the associated Waveset user by email address.
Arguments passed to login correlation rules are:
Standard X509 certificate fields (such as subjectDN, issuerDN, and valid dates)
Critical and noncritical extension properties
The naming convention for certificate arguments passed to the login correlation rule is
cert.field name.subfield name
Example argument names that are available to the rule include:
cert.subjectDN
cert.issuerDN
cert.notValidAfter
cert.notValidBefore
cert.serialNumber
The login correlation rule, using the passed-in arguments, returns a list of one or more AttributeConditions. These are used by the Waveset X509 Certificate Login Module to find the associated Waveset user.
A sample login correlation rule is included in idm/sample/rules, named LoginCorrelationRules.xml.
After creating a custom correlation rule, you must import it into Waveset. From the Administrator Interface, select Configure, and then select Import Exchange File to use the file import facility.
To test the SSL connection, go to the configured application interface’s URL using SSL (for example, https://idm007:7002/idm/user/login.jsp). You are notified that you are entering a secure site, and then prompted to specify which personal certificate to send to the Web server.
Report any problems authenticating using X509 certificates as error messages on the login form.
For more complete diagnostics, enable trace on the Waveset server for these classes and levels:
com.waveset.session.SessionFactory 1
com.waveset.security.authn.WSX509CertLoginModule 1
com.waveset.security.authn.LoginModule 1
If the client certificate attribute is named something other than javaxservlet.request.X509Certificate in the HTTP request, then you will receive a message that this attribute cannot be found in the HTTP request.
Enable trace for SessionFactory to see the complete list of HTTP attributes and determine the name of the X509 Certificate.
Use the Waveset debug facility (The Waveset Debug Page) to edit the LoginConfig object.
Change the name of the <AuthnProperty> in the <LoginConfigEntry> for the Waveset X509 Certificate Login Module to the correct name.
Save, and then retry.
You may also need to remove, and then re-add the Waveset X509 Certificate Login Module in the login application.