Live Forms v5.3 is no longer supported. Click here for information about upgrading to our latest GA Release.

Configuring the LDAP Container Security Manager

Sometimes, is deployed to an existing servlet container that is already handling user authentications through, for instance, LDAP. Here the authentication is the responsibility of the container, but is still responsible for the runtime authorization and the design time querying of user metadata. The LDAP Container Security Manager reuses the existing LDAP connector but relies on the container for user authentications.

 

 

On this page:

Active Directory Requirements

  • There must be a frevvo.user group in Active Directory
  • All the users in your LDAP-CSM tenant must be members of this group
  • The tenant admin must have the roles of frevvo.TenantAdmin, frevvo.Designer and frevvo.User. 

Configuration Steps

  1. Stop  if it is running.
  2. Modify the <frevvo-home>\tomcat\conf\server.xml file. Here is an example of the changes needed when using tomcat.
    1. Edit this file with a text editor.
    2. Search for 'ldap://localhost:389 - you should find this in the org.apache.catalina.realm.JNDIRealm section of the file. 
    3. Notice lines 98 - 107 are commented out.
    4. Uncomment this section. Replace the existing code with the code shown below: 
    5. Replace the connectionURL, connectionName and the connectionPassword default values with your LDAP server information. 
    6. Refer to this website for detailed information about the remaining parameters.
	<Realm className="org.apache.catalina.realm.JNDIRealm"
		connectionURL="ldap://test.windows.frevvo.com:389" connectionName="TEST\Administrator"
		connectionPassword="FrevvoTest00" adCompat="true" referrals="follow"
		
		userBase="CN=Users,DC=test,DC=windows,DC=frevvo,DC=com" userSearch="(&amp;(objectClass=user)(sAMAccountName={0}))"
		userSubtree="true" userRoleName="memberOf"
		
		roleBase="CN=Users,DC=test,DC=windows,DC=frevvo,DC=com" roleSubtree="true"
	    roleName="cn" roleSearch="(&amp;(objectClass=group)(member={0}))" /> 
     
      3. Configure LDAP - The LDAP Container Security Manager uses the LDAP Security Manager so the setup for both is the same. Be sure to include all the context parameters needed. 

Here is a Sample LDAP Configuration: notice the ldap connection url, name and password have been changed to specify the LDAP server name and the administrator id/password. 

         <Parameter name="com.frevvo.security.ldap.connection.url" value="ldap://test.windows.frevvo.com:389" override="false"/>
         <Parameter name="com.frevvo.security.ldap.connection.name" value="TEST\Administrator" override="false"/>
         <Parameter name="com.frevvo.security.ldap.connection.password" value="FrevvoTest00" override="false"/>
         <Parameter name="com.frevvo.security.ldap.usersBase" value="CN=Users,DC=test,DC=windows,DC=frevvo,DC=com" override="false"/>
         <Parameter name="com.frevvo.security.ldap.groupsBase" value="CN=Users,DC=test,DC=windows,DC=frevvo,DC=com" override="false"/>
         <Parameter name="com.frevvo.security.ldap.userIdDisplayAttribute" value="sAMAccountName" override="false"/>
         <Parameter name="com.frevvo.security.ldap.groupIdDisplayAttribute" value="sAMAccountName" override="false"/>
         <Parameter name="com.frevvo.security.ldap.notifications" value="true" override="false"/>
         <Parameter name="com.frevvo.security.ldap.allGroupsFilter" value="(objectClass=group)" override="false"/>
         <Parameter name="com.frevvo.security.ldap.allUsersFilter" value="(objectClass=user)" override="false"/>
         <Parameter name="com.frevvo.security.ldap.distinguishedNameAttribute" value="distinguishedName" override="false"/>
         <Parameter name="com.frevvo.security.ldap.userMemberOfAttribute" value="memberOf" override="false"/>
         <Parameter name="com.frevvo.security.ldap.groupMemberAttribute" value="member" override="false"/>
         <Parameter name="com.frevvo.security.ldap.firstNameAttribute" value="givenName" override="false"/>
         <Parameter name="com.frevvo.security.ldap.lastNameAttribute" value="sn" override="false"/>
         <Parameter name="com.frevvo.security.ldap.emailAttribute" value="mail" override="false"/>
         <Parameter name="com.frevvo.security.ldap.managerAttribute" value="manager" override="false"/>
         <Parameter name="com.frevvo.security.ldap.ignoreCase" value="true" override="false"/>  

      4. Start .

      5. Create a tenant with the LDAP Container Security Manager class.

    1.  Login to Live Forms as a Live Forms administrator (user:admin@d and password:admin if you have not changed it). 
    2. Click on Manage and then Manage Tenants. 
    3. You will see a page where the current tenants are listed. If this is a new installation you will only see the default tenant d. 
    4. Click on the plus sign (+) to add a new tenant. 
    5. Configure the new tenant following the steps below:

      1. In the drop down Security Manager Class choose LDAP Container Security Manager. If your version does not have a drop down, enter the following in the Custom text box: com.frevvo.security.ldap.csm.LDAPContainerSecurityManager.
      2. Give it a tenant id. Provide the tenant name and description.
      3. The Max Concurrent Users is the maximum allowed by your license or less. Leave this field blank if you do not want to set a max.
      4. Specify the LDAP User ID that will have the tenant admin permission. The LDAP-CSM tenant admin must exist on the LDAP server and have the frevvo.TenantAdmin and frevvo.Designer roles.  
      5. Click Submit. You will see this message with the name of your newly created tenant and it will show in the tenant list.

Tenant Admin Properties in Active Directory

If the tenant admin user does not exist or it does not have the required roles, this error will display with the name of the tenant you are trying to add:

This error message can be seen in the <frevvo-home>\tomcat\logs\frevvo.log file if the LDAP-CSM tenant cannot be created.

Application error processing /frevvo/web/tn?edit=true javax.servlet.ServletException: javax.servlet.ServletException: Tenant admin user 111 does not exist! 
or
Tenant admin user lll must have roles: [frevvo.TenantAdmin,frevvo.Designer] if the tenant admin exists but does not have the correct roles.

     6.  Stop .

     7.  The <frevvo-home>\tomcat\webapps\frevvo.war file must be secure. This is done by enabling the <security-contraint/> found in the web.xml file included in the frevvo.war. 

 Follow these steps to secure web.xml: 

a. Unzip  <frevvo-home>\tomcat\webapps\frevvo.war to a temporary directory on your desk top. 

 b. Edit frevvo.war!WEB-INF/web.xml and uncomment the BASIC <security-constraint/> fragment. 

 c. Re-zip frevvo.war

Here is the sample <security-contraint/> found in web.xml:

<!--  
		Security constraint BASIC AUTH
-->	
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Secure frevvo</web-resource-name>
			<url-pattern>/*</url-pattern>
		</web-resource-collection>
		<auth-constraint>
	 		<role-name>frevvo.User</role-name>
		</auth-constraint>
	</security-constraint>
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Public Access</web-resource-name>
			<url-pattern>/heartbeat/*</url-pattern>
			<url-pattern>/web/public/*</url-pattern>
			<url-pattern>/js/*</url-pattern>
			<url-pattern>/css/*</url-pattern>
			<url-pattern>/images/*</url-pattern>
			<url-pattern>/fonts/*</url-pattern>
		</web-resource-collection>
	</security-constraint>
	<login-config>
		<auth-method>BASIC</auth-method>
	</login-config>
	<security-role>
 		<role-name>frevvo.User</role-name>
    </security-role>

     8. Start .  

Check if the configuration is correct

Here are some quick tests to check if the LDAP Container Security Manager tenant configuration is correct:

  1. Browse 'http://<IP>:<PORT>/frevvo/web/tn/<tenant id>/login'. Substitute the ip address/port of the  server and the name of your LDAPCSM tenant for the tenant id. The browser authentication light-box displays.



  2. Login as the tenant admin for the LDAP-CSM tenant. This admin must have the frevvo.User role in addition to the frevvo.tenantadmin and frevvo.designer roles.
  3. Click Manage Roles. You should see a list of groups.



  4. Click the Back to Manage Tenant link.
  5. Click Manage Users. 
  6. Click All. You should see a list of LDAP users. 



  7. Now, click Back To Manage Tenant
  8. Log out from .
  9. Try to login with the user name and password of a user in the LDAP-CSM tenant. You do NOT need to specify the LDAP-CSM tenant when logging in. For instance, if nancy is a valid LDAP user you should log in as nancy. The password would be nancy's password in LDAP. User nancy's home page will display.



Since you are using LDAP to define users and roles (i.e., groups), you do not see an Add User icon or Add Role icon on the Manage Users or Manage Roles pages.