Section | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Section | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Prerequisites
These instructions assume that you have an in-house installation of Live Forms up and running or you have signed up for an LDAP tenant on the cloud server
Warning |
---|
Active Directory Customers using LDAP must ensure that frevvo.User, frevvo.TenantAdmin and frevvo.Designer groups are specified on your LDAP/AD server. The group names must be spelled as shown. Upper/lower case may be a factor for Open LDAP systems.
|
Integrating Live Forms with LDAP
...
- Stop .
- In a text editor, open <frevvo-home>/tomcat/conf/Catalina/localhost/frevvo.xml.
- You can edit the LDAP Configuration Properties. Alternatively, you can start off from one of the sample configurations and provide only the key information listed above.
- Log into your LDAP Server and add a new group, frevvo.TenantAdmin (case sensitive)
- Assign the frevvo.tenantadmin TenantAdmin group to one or more users for tenant admin privilege.
- Start
- Login to as a administrator (user:admin and password:admin if you have not changed it)
- Click on Manage and then Manage Tenants
- 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
- Click on the plus sign (+) to add a new tenant.
- Configure the new tenant:
- In the drop down Security Manager Class choose LDAP/Active Directory Security Manager. If your version does not have a drop down, enter the following in the in the text box: com.frevvo.security.ldap.LDAPSecurityManager.
- Give it a tenant id. For the sake of this document lets assume you call it MYLDAP. Provide the tenant name and description.
- The Max Concurrent Users is the maximum allowed by your license or less.
- Specify the LDAP User ID that will have the tenant admin permission.
- Click Submit. You will see your new tenant in the tenant list.
Note |
---|
There are four special roles in : frevvo.TenantAdmin, frevvo.Designer, frevvo.Publisher, frevvo.ReadOnly . Groups for each role , that must be specified on your LDAP/AD Server if you have users that will be assigned these roles. The group names must be frevvo.TenantAdmin, frevvo.Designer, frevvo.Publisher, frevvo.ReadOnly . Upper/lower case may be a factor for Open LDAP systems. |
Check if the configuration is correct
...
The basic deployment is IIS fronting and the authentication is done against LDAP. For that to work you need:
- Install Live Forms
- Configure Live Forms to work with IIS
- Configure Windows Authentication
- In IIS, Make sure that Anonymous Authentication or Basic Authentication is NOT configured in the Web Application (Default Web) that will be used to proxy requests to .
- Go though the LDAP configurations described in the beginning of this document.
...
Substitute LDAP tenant above with the tenant name you configured with the LDAP Security Manager. The server variable should be the ip address of the machine where Active Directory IIS is installed .
The user will automatically authenticate to . It is crucial that the LDAP user is known to , in other words, the user should be one of the entries retrieved by the LDAP expression configured in the property com.frevvo.security.ldap.allUsersFilter in frevvo.xml.
...
Substitute LDAP tenant above with the tenant name you configured with the LDAP Security Manager and the server variable with the ip address of the machine where Active Directory IIS is installed.
Since the user is not authenticated in the windows Network, he will be prompted by the browser for credentials. IIS will authenticate the user in the network and forward the request to . The user will be automatically redirected to his initial page without having to re-enter his credentials.
...
Code Block |
---|
Parameter name="frevvo.internal.baseurl" value="http:// <ip of the m/c where frevvo server is hosted>:<port>" override="false"/>
|
Upload and Video Control Behavior
If your system is configured for LDAP SSO, the upload and video controls exhibit the following behaviors:
...
- The "uploading...." snake image displays continuously when uploading an image to an upload control in a form, accessed from a space, on a mobile device
...
- .
...
- The video control will ask for credentials again in use/design mode if you are using the FireFox browser. In IE9, you will see the message: " The Web-page wants to run the following add-on: 'Windows Media Player' from 'Microsoft Corporation'. What's the risk?" Enter your
...
- credentials or run the add-on to proceed.
To workaround this issue, configure IIS so that it does not require re-authentication for every single request.
Live Forms login page authenticating against LDAP
...
The first issue is cased by the user login in. For instance, John Stevens LDAP account is JStevens but he logs in as jstevens, he will be recognized by case insensitive LDAP and thus granted access but will not be recognized as a designer or as a tenant admin by . To solve this, set the property com.frevvo.security.ldap.ignoreCase to true.
To prevent issues you could always login to using lower case jstevens. LDAP will grant access as it is case insensitive and will know that you may have the designer or admin special permission. However users can forget to do this. To force this configure 's web.xml parameter frevvo.login.userid.case. You can specify a value of either lower or upper.
Code Block | ||
---|---|---|
| ||
<context-param>
<param-name>frevvo.login.userid.case</param-name>
<param-value>lower</param-value>
<description>Force all login user ids to upper or lower case</description> </context-param> |
The second problem is in directing tasks to frevvo users if your LDAP user names are mixed case. One solution is to use hidden controls on your forms with rules to convert the case of user names to lower case. The example below shows two text controls on a form, one visible, EmployeeMixedCase, and the other hidden, Employee.
A user types a name (regardless of case) into the EmployeeMixedCase control. The hidden Employee control has a business rule that takes the value of the visible control and converts it to lowercase.
Code Block |
---|
Employee.value = EmployeeMixedCase.value.toLowerCase(); |
The form or workflow routing can then use {Employee} rather than the control that may be mixed case.
Configure frevvo.internal.baseurl in frevvo.xml for LDAP SSO
This parameter is needed in frevvo.xml for various activities like accessing ACL page , publishing templates , resetting tasks etc. Let's say you have a browser signed in via SSO to machine m1 (port 80). IIS is running on m1 (port 80) redirecting /frevvo/web to frevvo running on m2:8082. Browser submits form to m1, IIS redirects to m2:8082. The doc action is a frevvo:// URI which gets resolved to h ttp://m1/frevvo/... POSTs to this URI but m1 rejects the POST since it is not authenticated.
To avoid situations such as these, set frevvo.internal.baseurl to the actual host:port of the server. Follow these steps:
- edit <frevvo-home>/tomcat/conf/cstalina/localhost/frevvo.xml
- Add the parameter shown below with your information: Save the changes to the file.
Code Block |
---|
Parameter name="frevvo.internal.baseurl" value="http://<ip of the m/c where frevvo server is hosted>:<port>" override="false"/>
|
Warning |
---|
If your system is configured for LDAP SSO and the upload and video controls may exhibit the following behaviors:
|
be recognized as a designer or as a tenant admin by . To solve this, set the property com.frevvo.security.ldap.ignoreCase to true.
To prevent issues you could always login to using lower case jstevens. LDAP will grant access as it is case insensitive and will know that you may have the designer or admin special permission. However users can forget to do this. To force this configure 's web.xml parameter frevvo.login.userid.case by adding the <context-param> lines you see below. You can specify a value of either lower or upper.
Code Block | ||
---|---|---|
| ||
<context-param>
<param-name>frevvo.login.userid.case</param-name>
<param-value>lower</param-value>
<description>Force all login user ids to upper or lower case</description>
</context-param> |
The second problem is in directing tasks to frevvo users if your LDAP user names are mixed case. One solution is to use hidden controls on your forms with rules to convert the case of user names to lower case. The example below shows two text controls on a form, one visible, EmployeeMixedCase, and the other hidden, Employee.
A user types a name (regardless of case) into the EmployeeMixedCase control. The hidden Employee control has a business rule that takes the value of the visible control and converts it to lowercase.
Code Block |
---|
Employee.value = EmployeeMixedCase.value.toLowerCase(); |
The form or workflow routing can then use {Employee} rather than the control that may be mixed case.
Admin Search for a task locked by a user does not show all LDAP users
Although the user list from the LDAP appears correct, the user does not appear in the admin search for a task locked by a user.
- Verify that your LDAP configuration is correct.
- Check if the MaxPageSize property is set in Active Directory. Look for "MaxPageSize" on this Microsoft Support Page for reference. The default value is 1000.
Active Directory Sample Configuration
...
Code Block | ||
---|---|---|
| ||
<Parameter name="com.frevvo.security.ldap.connection.url" value="ldap://[your server]:[port, typically the default is 389 ]" override="false"/>
<Parameter name="com.frevvo.security.ldap.connection.name" value="cn=admin,dc=test,dc=frevvo,dc=com" override="false"/>
<Parameter name="com.frevvo.security.ldap.connection.password" value="[user password]" override="false"/>
<Parameter name="com.frevvo.security.ldap.usersBase" value="DC=test,DC=frevvo,DC=com" override="false"/>
<Parameter name="com.frevvo.security.ldap.groupsBase" value="DC=test,DC=frevvo,DC=com" override="false"/>
<Parameter name="com.frevvo.security.ldap.userIdDisplayAttribute" value="uid" override="false"/>
<Parameter name="com.frevvo.security.ldap.groupIdDislayAttribute" value="entryDN" override="false"/>
<Parameter name="com.frevvo.security.ldap.notifications" value="true" override="false"/>
<Parameter name="com.frevvo.security.ldap.allGroupsFilter" value="(|(objectClass=groupOfUniqueNames)(objectClass=organizationalRole))" override="false"/>
<Parameter name="com.frevvo.security.ldap.allUsersFilter" value="(objectClass=person)" override="false"/>
<Parameter name="com.frevvo.security.ldap.distinguishedNameAttribute" value="entryDN" override="false"/>
<Parameter name="com.frevvo.security.ldap.groupMemberAttribute" value="uniqueMember" override="false"/>
<Parameter name="com.frevvo.security.ldap.userMemberOfAttribute" value="" override="false"/>
<Parameter name="com.frevvo.security.ldap.firstNameAttribute" value="cn" override="false"/>
<Parameter name="com.frevvo.security.ldap.lastNameAttribute" value="sn" override="false"/>
<Parameter name="com.frevvo.security.ldap.emailAttribute" value="mail" override="false"/>
|
...
LDAP Configuration Properties
...
Property | Description |
---|---|
com.frevvo.security.ldap.connection.url | ldap server url |
com.frevvo.security.ldap.connection.name | User to connect to LDAP. This user must have the proper permissions to read and run queries in the ldap server. If using Active Directory, it is common to specify the domain. For instance, TEST\Administrator refers to the user Administrator in the TEST domain. |
com.frevvo.security.ldap.connection.password | Password for the user defined in com.frevvo.security.ldap.connection.name. |
com.frevvo.security.ldap.usersBase | Searches for users will start from the ldap node specified by this property.If the value is empty the searches will start from the root domain. |
com.frevvo.security.ldap.groupsBase | Searches for the groups will start from the ldap node specified by this property. If the value is empty, searches will start from the root domain |
com.frevvo.security.ldap.userIdDisplayAttribute | User attribute that will be visible in frevvo. This is what will be displayed in the list of users a tenant admin sees and has to be unique in the server. Another restriction is that the values for the attribute configured here cannot have spaces. For instance, don't configure CN as the value since it can contain spaces in most systems. |
com.frevvo.security.ldap.groupIdDisplayAttribute | Group attribute that will be visible in frevvo. This is, for instance, what will be displayed in the list of groups a tenant admin sees or the groups used in workflows. This attribute has to be unique in the server. |
com.frevvo.security.ldap.notifications | Notifications are emails sent by frevvo to workflows participants. If ''true'', notifications will be sent. (default=true) |
com.frevvo.security.ldap.allGroupsFilter | The expected value is an LDAP filter expression. The expression should return the groups that will be available to be used in frevvo workflows. com.frevvo.security.ldap.groupIdDisplayAttribute |
com.frevvo.security.ldap.allUsersFilter | The expected value is an LDAP filter expression. The expression should return the users that will be available to be used in frevvo work flows and authentication. com.frevvo.security.ldap.groupIdDisplayAttribute |
com.frevvo.security.ldap.frevvoDesignersFilter Deprecated in 4.5 | The expected value is an LDAP filter expression. This expression needs to return a list of users (not groups) that will be considered frevvo designers. Microsoft Active directory Default groups (Domain Users etc.) are not supported. |
com.frevvo.security.ldap.frevvoTenantAdminFilter Deprecated in 4.5 | The expected value is an LDAP filter expression. This expression needs to return a list of users (not groups) that will be considered frevvo tenant admins. Microsoft Active directory Default groups (Domain Users etc.) are not supported. |
com.frevvo.security.ldap.distinguishedNameAttribute Deprecated in 4.1.3 | Deprecated in 4.1.3. Name of the ''distinguished name'' attribute. |
com.frevvo.security.ldap.userMemberOfAttribute | |
com.frevvo.security.ldap.groupMemberAttribute | |
com.frevvo.security.ldap.firstNameAttribute | Name of the user ''first name'' attribute |
com.frevvo.security.ldap.lastNameAttribute | Name of the user ''last name'' attribute. |
com.frevvo.security.ldap.emailAttribute | Name of the user ''email'' attribute in the LDAP server. This is used in email notifications |
com.frevvo.security.ldap.managerAttribute | |
com.frevvo.security.ldap.cache - Deprecated | Enable or disable the caching of users and groups. The default value is 'true'. This property is no longer needed and can be removed. It has been deprecated. |
com.frevvo.security.ldap.ignoreCase | This makes frevvo ignore the case stored in LDAP systems, primarily for the purpose of determining roles. |