WebSphere

 

Portal Express, Version 6.0
Operating systems: i5/OS, Linux, Windows

 

Set up Client Certificate Authentication

This section describes the steps that are necessary to configure IBM® WebSphere® Portal Express for SSL client certificate authentication. The supported scenario is a "client certificate only" setup that switches completely to this authentication method and does not allow form-based login via username and password. Other configuration scenarios are possible, but are neither recommended nor supported.

Perform the following steps to configure WebSphere Portal Express for SSL client certificate authentication:

  1. Use the following steps to configure IBM WebSphere Application Server for SSL support with client certificates:

    1. Perform the following steps to create a new SSL Repertoire:

      1. Check the Client Authentication checkbox for the SSL repertoire.

      2. Choose the IBMJSSE provider and the SSL_TLS protocol.

      3. Reference the correct key and trust files. IBM recommends to create new key and trust files using the IKEYMAN tool and the PKCS12 format for maximum browser compatibility.

        The key file must contain the server certificate. The trust file must contain either all the client certificates of users that will be authenticated or a certification authority certificate (CA key) that can be used to verify the client certificates of users.

    2. Associate the secure transport chain with the new SSL Repertoire.

    3. Configure your advanced LDAP security settings. Certificate-based authentication requires that you configure the authentication mechanism so that one of the following conditions apply:

      • WebSphere Application Server maps the entire Distinguished Name (DN) from the subject field of the certificate to a corresponding Distinguished Name in your LDAP. To use this option, set the mapping technique in the LDAP configuration panel to exact.

      • WebSphere Application Server maps the entry in the subject field to a different attribute than the Distinguished Name in your user registry. To use this option, set up the mapping technique in the LDAP configuration panel to use the certificate filter option. Using the certificate filter option allows you more flexibility in using attributes other than the Distinguished Name to identify the users. For example, the filter uid=${SubjectCN} maps the SubjectCN field of the client certificate to the uid attribute in your LDAP.

      If you use a custom user registry or an LDAP with realm support, define the certificateFilter attribute at the wmm tag in portal_server_root/wmm/wmm.xml, for example certificateFilter="uid=${SubjectCN}".

  2. Perform the following steps if you use an external HTTP server:

    1. Regenerate the plug-in. To do this, click Servers > Web Servers. Select the Web server and click Generate Plug-in. Update the HTTP server with the generated plug-in.

    2. Restart the HTTP server for the changes to take effect.

    3. Enable client certificate authentication in your Web server. For IBM HTTP Server (IHS), refer to http://www.redbooks.ibm.com/ and search for security handbook for the latest information about WebSphere Application Server.

  3. Modify the web.xml file of the web application; see Deploying customized themes and skins for information about extracting and redeploying wps.ear files. Then perform the following steps:

    1. Edit the web.xml file located in the exported ear directory under /wps.war/WEB-INF.

    2. Change the login-config tag to the client certificate authentication method.

      <login-config id="LoginConfig_1">	
      		<auth-method>CLIENT-CERT</auth-method>	
      		<realm-name>WPS</realm-name>	
      		<!--<form-login-config id="FormLoginConfig_1">		    
      			<form-login-page>/redirect</form-login-page>	    
      			<form-error-page>/error.html</form-error-page>	
      		</form-login-config> -->
      </login-config>

    3. Change the transport guarantee setting in the security constraint for the protected area to CONFIDENTIAL:

      <security-constraint id="SecurityConstraint_1">  
      		<web-resource-collection id="WebResourceCollection_1">    
      			<web-resource-name/>   
      			    
      			<url-pattern>/myportal/*</url-pattern>
      			
      			
      			<http-method>DELETE</http-method>    
      			<http-method>GET</http-method>    
      			<http-method>POST</http-method>    
      			<http-method>PUT</http-method>    
      			<http-method>HEAD</http-method> 
      		</web-resource-collection>  
      		<auth-constraint id="AuthConstraint_1">	
      			<description/>	
      			<role-name>All Role</role-name>  
      		</auth-constraint>  
      		<user-data-constraint id="UserDataConstraint_4">    
      			<transport-guarantee>CONFIDENTIAL</transport-guarantee>  
      		</user-data-constraint>
      </security-constraint>

    4. Save your changes.

  4. Use the following steps to update the themes and settings for a better user experience:

    1. Modify the URLs for login and logout in the themes that are used in your scenario. In the default theme, these are located in the banner_toolbar.jspf and mainMenu.jsp files in the %wps_ear_expanded$/wps.war/themes/ directory.

      If you have a cluster installation, perform this step on the Network Deployment server:

      • For the login link, use an arbitrary protected page. The login link will then implicitly trigger the SSL handshake in WebSphere Application Server due to the security constraint. For example, you can generate the URL to point to the protected welcome page:

        <%-- Login button --%>
        <%-- comment this to enable screen login --%> 
        <portal-logic:if loggedIn="no">
        <portal-navigation:urlGeneration 
        contentNode="ibm.portal.Home.Welcome" home="protected">	    
        				<a tabIndex="7" class="toolbarLink" href='<% 
        wpsURL.write(escapeXmlWriter); %>'>	    
        				<portal-fmt:text key="link.login" bundle="nls.engine"/>	    
        </a></portal-navigation:urlGeneration>
        </portal-logic:if>

      • For the logout, you need to consider whether or not a logout should redirect you back to HTTP. If so, you need to set the property redirect.logout.ssl in the configuration service to true. Also, set the host.port.http in the same service to the correct port. If you want to stay in the HTTPS protocol after the logout, you do not need to perform any configuration steps here.

    2. Remove the login portlet from all pages where it is placed, for example the welcome and the login page.

    3. If you want to completely disable the entry points 'login portlet' and 'login URL' to WebSphere Portal Express, set the property command.login in the configuration service to the value LoginUserBlocked. This ensures that a login can only be triggered after being authenticated by WebSphere Application Server, in this case by the client certificate handshake.

  5. Repackage and redeploy the wps.ear as outlined in Deploying customized themes and skins and restart your server (or cluster).

  6. Follow these steps to verify your setup:

    1. Import one of the client certificates that are accepted by the server to your browser.

    2. Launch the home page in this browser through an HTTP URL that is not secure; for example, http://hostname.example.com:10038/wps/portal, where hostname.example.com is the fully qualified host name of the machine where WebSphere Portal is running and 10038 is the default transport port that is created by WebSphere Application Server..

    3. Click the login link.

    4. Verify that the server switches to HTTPS and you are prompted for the client certificate.

    5. After selecting and confirming the correct client certificate, you are redirected to the protected area served with HTTPS.

 

Parent topic:

Secure Socket Layer