Page History
...
Section | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Integrating Live Forms with LDAP
Key Information to Collect
- LDAP server name or ip
- LDAP server port
- User name and password with proper permissions to access and browse LDAP.
- LDAP groups and/or users that will be considered
designers. These users will be able to create forms and flows in frevvo.Frevvoproduct - LDAP groups and users that will be considered
administrators.Frevvoproduct - LDAP groups and users that will be considered
publishers. This role gives a user the permission to go to the home page of every other tenant user.Frevvoproduct - LDAP groups and users that will be considered ReadOnly.
- The root distinguished names for both group and user searches.
Configuration Steps
- Stop
.Frevvoproduct - 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
- Assign the frevvo.tenantadmin group to one or more users for tenant admin privilege.
- Start
Frevvoproduct - Login to
as aFrevvoproduct
administrator (user:admin and password:admin if you have not changed it)Frevvoproduct - 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 |
Check if the configuration is correct
Here are some quick tests to check if the LDAP configuration is correct:
- Login as the
admin or the tenant admin for the LDAP tenant.Frevvoproduct - Click on the icon manage users/roles for the LDAP tenant you created.
- Click Manage Users.
- Click All. You should see a list of LDAP users.
- Now, click Back To Manage Tenant.
- Click Manage Roles. You should see a list of groups.
- Log out from
(you should be currently logged in as admin)Frevvoproduct - Try to login with the user name and password of a user in LDAP. You need to specify the proper tenant when logging in. For instance, if john is a valid LDAP user you should log in as john@MYLDAP. The password would be john's password in LDAP.
Info | |
---|---|
Since you are using LDAP to define
|
Live Forms and LDAP Use Cases
Single Sign On with Live Forms, IIS and Active Directory
In this scenario, a user authenticates to his windows account and tries to use
Frevvoproduct |
---|
Frevvoproduct |
---|
Frevvoproduct |
---|
The basic deployment is IIS fronting
Frevvoproduct |
---|
...
Frevvoproduct |
---|
...
Please also refer to the force auth property for forms and flows. Force auth lets you override SSO for an individual form or flow.
Once all is configured and running it is possible to test these scenarios:
Signing in from within the network
In this case, the
Frevvoproduct |
---|
Code Block | ||
---|---|---|
| ||
http://[server]/frevvo/web/tn/[LDAP tenant]/login |
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 is installed .
The user will automatically authenticate to
Frevvoproduct |
---|
Frevvoproduct |
---|
Signing in from outside the network
In this case, the
Frevvoproduct |
---|
Code Block | ||
---|---|---|
| ||
http://[server]/frevvo/web/tn/[LDAP tenant]/login |
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 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
Frevvoproduct |
---|
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. The browser submits form to m1, IIS redirects to m2:8082. The doc action is a frevvo:// URI which gets resolved to http://m1/frevvo/...
Frevvoproduct |
---|
To avoid situations such as these, set frevvo.internal.baseurl to the actual host:port of the
Frevvoproduct |
---|
- edit <frevvo-home>/tomcat/conf/catalina/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, the upload and video controls exhibit the following behaviors:
|
Live Forms login page authenticating against LDAP
This is the case where the user will authenticate through the
Frevvoproduct |
---|
Frevvoproduct |
---|
Code Block |
---|
Username: john@LDAP
Password: *****
Tenant: <blank> |
The password provided in the login page is the user's password in LDAP. A very important point to note is that the user name, "john" in the example above, needs to match the value for the LDAP entry attribute configured in the property com.frevvo.security.ldap.userIdDisplayAttribute. For instance, for Active Directory, the value of this property is normally sAMAccountName. That means
Frevvoproduct |
---|
Retrieving Custom Attributes from the LDAP server
Active directory attributes can be retrieved from the LDAP server using Business Rules. The rules use the
_data.getParameter('subject.attribute) feature to make the information available. There are many attributes available in Active Directory. Multi valued attributes are also supported. This feature works if you are using an LDAP or LDAP Container Security Manager configuration. Frevvoproduct
Configure Retrievable Attributes
Single-value Attributes
...
|
Retrieving Custom Attributes from the LDAP Server
When a user is successfully authenticated by the LDAP security manager,
Frevvoproduct |
---|
Last Name
First Name
Email address
Using a business rule, you can populate controls in your form with this information.
There are many attributes available in Active Directory. View this website for a partial list. Single and multi-value attributes are supported. Active Directory custom attributes can be retrieved for users in a
tenant using the LDAP Security Manager or the LDAP Container Security Manager. Frevvoproduct
You can retrieve additional custom attribute information from the LDAP server using the configuration parameter "com.frevvo.security.ldap.customAttributes" and business rules.
Configure Retrievable Attributes
Single-value Attributes
If you want to pull additional information from Active Directory into your form, you must add a context parameter to the <frevvo-home>\tomcat\conf\catalina\localhost\frevvo.xml file.
If you want to pull additional information, you must add the The configuration parameter is "com.frevvo.security.Idapldap.customAttributes" configuration parameter where and the value is is a comma separated list of custom attribute names to be retrieved, . Let's use the employee's Middle Name Initial and Employee IDHome Phone as an example. The attributes for Middle Initial and Telephone Number are initials and telephoneNumber respectively.
Follow these steps to modify the configuration:
...
Code Block |
---|
<Parameter name="com.frevvo.security.ldap.customAttributes" value="employeeIDinitials,middleNametelephoneNumber," override="false"/> |
5. Save the file after all your changes are made. Restart
. Frevvoproduct
Add the addititonal lines to the business Write a rule to populate the Employee ID and Middle Name fields.
Code Block |
---|
if(form.load)
{
mail.value=_data.getParameter('subject.mail');
firstName.value=_data.getParameter('subject.givenName');
lastName.value=_data.getParameter('subject.sn');
employeeID.value=_data.getParameter('subject.employeeNumber');
employeeType.value=_data.getParameter('subject.manager');
} |
...
controls in your form with the firstname, lastname, email address plus the additional attributes specified in the configuration parameter. Notice the initials and the telephone number controls in the image are filled with the user information from the LDAP server.
Multi-value Attributes
Attributes with more than one value are also supported. For example, The carLicense attribute can return multiple valueslicenses. You can write a rule to populate dropdown options with those options. First of all, make the specified car license values. Make sure the carLicense attribute is configured in the frevvo.xml file .
Code Block |
---|
<Parameter name="com.frevvo.security.ldap.customAttributes" value="employeeNumber,employeeType,employeeID,middleName,carLicense" override="false"/> |
A JSON array string is returned and this rule will populate the options of a dropdown control named carLicense.
Code Block |
---|
carLicense.options=JSON.parse(_data.getParameter('subject.carLicense')); |
LDAP Troubleshooting
If things are not working as you expected:
- The primary source of information is the
log file. In most cases, the LDAP connector will try to indicate what the problem is in the logs. In the log file, look for lines with LDAPSecurityManager or FrevvoJNDIRealm.Frevvoproduct - It is useful to have an LDAP browser at hand, for instance, the Apache Directory Studio. With the browser you can:
- Check if the connection parameters that you configured in
are correct.Frevvoproduct - Run queries against LDAP and make sure that the expressions you configured in
are correct and returning what you expect.Frevvoproduct
- Check if the connection parameters that you configured in
- If you can't spot the problem and need to contact frevvo support:
- Stop
Frevvoproduct - Go to <frevvo-home>/tomcat/logs/frevvo.log.
- Follow these steps to change the log level from INFO to DEBUG
- Restart
Frevvoproduct - Execute the steps that is causing problems.
- Send the log file (zip) to Live Forms support (support@frevvo.com) with a description of the problem.
- Restore the log level to INFO.
- Stop
Below are some common cases to help with troubleshooting. All of them assume that the connectivity is working, meaning that you tested, from the same box where
Frevvoproduct |
---|
Frevvoproduct |
---|
As an admin I can't list the users or groups for the LDAP tenant
This is can be a problem with the expression you configured in com.frevvo.security.ldap.allUsersFilter (for users) and/or com.frevvo.security.ldap.allGroupsFilter (for groups). Also verify that the search bases are correct, properties com.frevvo.security.ldap.usersBase (users) and com.frevvo.security.ldap.groupsBase (groups). The LDAP Browser is useful here. Execute a search using the same expression and bases you configured in
Frevvoproduct |
---|
A user that should be a designer logs in but can't design forms
- Login to your LDAP/AD Server.
- Make sure you have a group defined for the designer role and it is named FrevvoDesigners.
- Make sure the user having the problem is a member of the FrevvoDesigners group.
Another potential issue is case sensitivity. Please refer to the topic Mixed or Upper case User Names below.
A user that should be an administrator logs in but can't manage the tenant
- Login to your LDAP/AD Server.
- Make sure you have a group defined for the designer role and it is named FrevvoAdmins.
- Make sure the user having the problem is a member of the FrevvoAdmins group.
Another potential issue is case sensitivity. Please refer to the topic Mixed or Upper case User Names below.
I can authenticate against LDAP via the Live Forms login page but SSO is not working
- # In IIS:
- Make sure Windows Authentication is set in the Default Web App (or the web app used to send requests to
)Frevvoproduct - Verify that Anonymous Authentication is NOT set in the default Web App (or the web used to send requests to
)Frevvoproduct
- Make sure Windows Authentication is set in the Default Web App (or the web app used to send requests to
- In
:Frevvoproduct - Open FREVVO_HOME/tomcat/conf/server.xml
- Look at the AJP connector configuration.
- Verify that it has the attribute tomcatAuthentication="false"
Can't login via the Live Forms login page
A common cause is that the distinguished name attribute is incorrect. That attribute is defined by the property com.frevvo.security.ldap.distinguishedNameAttribute. If you can't determine the distinguished name attribute for your system you can try the fall back strategy described here. Some common distinguished name attributes can be found here
Problems with Mixed or Uppercase User Names
Info | ||
---|---|---|
To avoid case issues follow these three steps described in more detail below:
|
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
Frevvoproduct |
---|
To prevent issues you could always login to
Frevvoproduct |
---|
Frevvoproduct |
---|
Frevvoproduct |
---|
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.
Warning |
---|
Changing the case of LDAP userids in Active Directory can cause undesired results. Use caution. |
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 http://m1/frevvo/...
Frevvoproduct |
---|
To avoid situations such as these, set frevvo.internal.baseurl to the actual host:port of the
Frevvoproduct |
---|
- 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:
|
Active Directory Sample Configuration
...
language | javascript |
---|
...
of course, there are multiple carLicense attributes, each one containing a different value for the dropdown options, set up for appropriate users on the LDAP server.
Code Block |
---|
<Parameter name="com.frevvo.security.ldap.connection.urlcustomAttributes" value="ldap://[your server]:[port, typically the default is 389 ]" override="false"/> <Parameter name="com.frevvo.security.ldap.connection.name" value="[user name]" override="false"/> <Parameter name="com.frevvo.security.ldap.connection.password" value="[user password]" override="false"/> <Parameter name="com.frevvo.security.ldap.usersBase" value="CN=Users,DC=test,DC=windows,DC=frevvo,DC=cominitials,telephoneNumber,carLicense" 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"/> |
OpenLDAP 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
These are the properties used to configure the LDAP connector. The properties in bold are required.
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 | 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. |
com.frevvo.security.ldap.customAttributes | This is a a comma separated list of attribute names to be retrieved from the LDAP Server. |
...
A JSON array string listing multiple car licenses is returned and it can be used in a
Frevvoproduct |
---|