Live Forms v8.0 is no longer supported. Please visit Live Forms Latest for our current Cloud Release. Earlier documentation is available too.
SAML Security Manager
supports the creation of a tenant using the SAML (Security Assertion Markup Language) Security Manager. Users in this tenant can log into
via (SAML) version 2.0. SAML enables internet single sign-on by allowing users to authenticate at an identity provider and then access service providers without additional authentication.
The SAML Security manager can be used in on-premise installations but it is primarily meant for cloud tenants who use LDAP but do not want to expose it over the internet.
SAML requires the configuration and installation of an identify provider that supports SAML 2.0. Some examples are Shibboleth, OpenSSO, ADFS, and PingFederate.
In a SAMLenvironment, integration with an LDAP server for authentication is common. In general, here's how it works:
- User A attempts to access Live forms by typing the URL into the browser
- Live forms sends a SAML request for authentication to the Identity Provider
- The Identity Provider requires more information. The Identify Provider login screen is displayed.
- User A logs into the Identity Provider.
- The Identity Provider may communicate with your LDAP server if you are using Active Directory for authentication.
- The Identity Provider builds and sends a SAML token to Live Forms containing the security information for User A.
- Live forms processes the information. If User A has been authenticated, Live forms establishes a session and redirects User A to the correct Live Forms screen depending on User A's authorization level.
On this page:
frevvo only supports/certifies the SAML Security Manager when
Prerequisites
Authentication Only mode:
When you create your SAML tenant, you can select Authentication Only mode..This is done by checking a checkbox when you configure your SAML tenant.
If Authentication Only is selected, SAML is used only for authentication. Authorization depends on the roles defined in
You may choose to use this mode if you:
do not want to add
roles to your LDAP.LDAP has many roles that have no relevance to your workflow.
Find the SAML mapping for the other required attributes complex. For example, retrieving the manager user id and role names may require writing custom rules.
In this mode, manual creation of users & roles in the tenant is required. The CSV upload feature makes this easy.
If Authentication Only is not selected, users will be added (discovery) at runtime when they log in for the first time. It is important to consider the following points before making your decision.
User discovery:
There is no guarantee that the first login will occur before a task is created for a specific user /role. If you have workflows, that are routed to users who have not logged in yet, your workflow may not do what you expect. If the user’s role changes after 1st login but before the next task is routed to their new role, the task will not appear on their Task List. For example, a user with the role of employee, logs into . The user then gets promoted to manager. The user will not receive a task routed to the user's new role of manager if the. workflow is initiated before the user logs out and logs in again and the user account is updated.
Manually creating/uploading users and roles ahead of time avoids this situation.
The group names for these three special roles must be frevvo.User, frevvo.TenantAdmin, and frevvo.Designer. Upper/lower case may be a factor for Open LDAP systems.
frevvo Best Practice recommends that you create a user account in your Active Directory or IDP that will house all of your deployed Production forms/flows. This user can be named anything i.e.frevvoProduction but it must be a member of the frevvo.Designer group
If you want to preserve Applications/Forms/flows developed in your trial/starter tenant, download them to your desktop as a backup BEFORE changing the Security Manager
frevvo only supports the SAML Security Manager when
is running in the tomcat container. Refer to our Supported Platforms for the list of Application Servers supported/certified by frevvo.
Configuring the SAML Security Manager
In the directions given below, the Service Provider refers to frevvo . The metadata for your SAML tenant must be obtained first. Customers will need to configure the metadata when creating the SAML tenant.
In-house Customers Only
Section 1 - In-house Customers Only
Cloud customers can skip the Generate Your Certificate and Install the Java Cryptography steps. These instructions are provided for On-premise customers only.
Generate Your Certificate
If you re using the frevvo tomcat bundle, the supplied keystore, frevvoKeystore.jks is located in the <frevvo-home>/tomcat/lib folder, The keystore contains a default certificate. Replace this with a certificate for your installation.
This certificate is used to sign/encrypt the SAML request. The use of a long-lived self-signed certificate for SAML is recommended because a CA certificate is usually only valid for 1 to 2 years and you have to keep replacing it. Since the keystore is located outside the frevvo war, you can use the Java keytool to generate and store your certificates
The alias, password and path to the keystore are configured in the <frevvo-home>\tomcat\bin\setenv.bat and the service.bat files for the Windows OS or setenv.sh for UNIX/Linux OS. The properties listed below are used in the setenv and service.bat files to set the default values:
com.frevvo.security.saml.key - use this property to change the alias
com.frevvo.security.saml.password - use this property to change the password
com.frevvo.security.saml.keystore - use this property to change the location of the keystore
setenv.bat file
rem SAML keystore configuration
set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.frevvo.security.saml.keystore=file:${catalina.home}/lib/frevvoKeystore.jks -Dcom.frevvo.security.saml.key=frevvo -Dcom.frevvo.security.saml.password=p@ssw0rd setenv.sh
# SAML keystore configuration
export CATALINA_OPTS="${CATALINA_OPTS} -Dcom.frevvo.security.saml.keystore='file://${CATALINA_BASE}/lib/frevvoKeystore.jks' -Dcom.frevvo.security.saml.key=frevvo -Dcom.frevvo.security.saml.password=p@ssw0rd"
Make the changes only in service.bat if running LIve Forms as a Windows service
set SAML_ARGS=-Dcom.frevvo.security.saml.keystore=file:${catalina.home}/lib/frevvoKeystore.jks;-Dcom.frevvo.security.saml.key=frevvo;-Dcom.frevvo.security.saml.password=p@ssw0rd
Follow these steps to generate and import the certificate for your installation:
Stop
if it is running.
Copy the default <frevvo-home>\tomcat\lib\ frevvoKeystore.jks to another location as a backup
Login as administrator.
Make sure the path to the keytool application is configured in your system path. keytool is part of the standard Java distribution (JDK or JRE)). For example, keytool is located in the C:\Program Files\Java\jdk1.8.0_92\bin directory in the Java 8 JDK
Navigate to <frevvo-home>\ tomcat\lib or to the new location of the keystore if you changed the com.frevvo.security.saml.keystore property in the setenv or service.bat files
Delete the existing certificate:
keytool -delete -alias frevvo -keypass p@ssw0rd -keystore frevvoKeystore.jks -storepass p@ssw0rdIf you changed the password from the default, execute this keytool command to change the password in the keystore
keytool -storepasswd -keystore frevvoKeystore.jks - it will ask for the old password - p@ssw0rd and then prompt for the new one - The keystore password must match whatever is in the line that we added to the setenv pr service.bat files.Generate a new certificate: Here is the command: Change the -dname value to the DNS name of your IDP.
If you changed the values of the com.frevvo.security.saml.key or com.frevvo.security.saml.password properties in the setenv or service.bat files then change the alias in the command and the keypass and storepass password parameters to match those values. The key and store passwords need to be the same as there is only one password property.
The dname in this keytool command specifies the X.500 Distinguished Name to be associated with the alias and is used as the issuer and subject fields in the self-signed certificate. While we provide a sample in the documentation, it is up to the customer (your security policy) to decide what the value should be when the certificate.for your installation is generated. Since this is a self-signed certificate - the dname really could be anything - but here is a link to the Oracle documentation to give you some idea of what you might want to set that too.
Execute this command to create a new certificate and stores it in the keystore.keytool -genkey -dname "cn=app.frevvo.com" -alias frevvo -keypass p@ssw0rd -keystore frevvoKeystore.jks -storepass p@ssw0rd -keyalg rsa -keysize 2048 -validity 3650The certificate can be viewed by exporting it to a file. If you changed the password, substitute the new password in the command:
keytool -exportcert -alias frevvo -file frevvo.rfc -rfc -keystore frevvoKeystore.jks -storepass p@ssw0rd
Install the Java Cryptography Extension
The Java Cryptography Extension (JCE) provides a uniform framework for the implementation of security features in Java. These files are needed to avoid an "illegal key size" error which can happen if these files are missing in the Java Development Kit (JDK) software of your on-premise installation.
Determine the version of the Java 8 JDK that you are running by typing java -version in a command window
If you are using a version of the JDK 8 u161+ , you can skip this step.The correct jar files are already included in the JDK.
For versions of the JDK 8 previous to u161, follow these steps to install the JCE files into the JDK:
Section 2 - Create the Live Forms Metadata file
Follow these steps to generate the frevvo metadata for your SAML tenant. You can do this even if the tenant has not been created yet.
Paste this URL into your browsr:
Cloud Customers: https://app.frevvo.com:443/frevvo/web/saml/metadata/alias/{t} - replace {t} with the tenant id of your SAML tenant.
On-premise customers: http://<server>:<port>/frevvo/web/saml/metadata/alias/{t} - replace <server> with the ip of your server, <port> with the port number (if applicable) and t with your tenant id).
When the metadata displays, right click and select the browser option to View the Page source.
Save the page as an xml file.
Metadata must be generated for each SAML tenant. Each tenant will have a unique URL.
Section 3 - Configure Your Identity Provider
Configure the Service Provider metadata for your Identity Provider. For example, the Shiboleth Identity provider requires modification of a file to provide the path to the
tenant metadata xml file created above.
Your Identity Provider must be configured to expose the attributes that
requires. Attribute mapping is done when you create the SAML tenant. These are:
User Id
First Name
Last Name
Email
Manager Id (optional)
Groups
Custom Attributes (optional)
We know that your IDP software of choice is outside of the frevvo server software and that you have the expertise in house to install, configure and maintain your IDP software. But here are some tips we have found that may assist you.
Section 4 - Create or edit the SAML tenant
To successfully create a tenant using the SAML Security manager, you will need the following:
The metadata for your Identity Provider
Attribute mapping information
cloud customers, migrating your tenant to the SAML Security Manager, will make the changes via the Edit Tenant screen. Once accessed, follow these steps beginning with step 2.
Log onto as the superuser (on-premise) or the tenant admin (cloud).
Access the Add Tenant (on-premise) or Edit Tenant (cloud) screen.
Select SAML Security Manager from the Security Manager Class dropdown.
Copy the Service Provider (frevvo) metadata into the Service Provider field. The xml should be pasted without the prolog. For example, the image shows an example of the frevvo metadata file before pasting:
Retrieve the metadata for your Identity Provider. For example, for the Shiboleth product the metadata is located in the idp-metadata file.
Paste the metadata into the Identity Provider field. This metadata should also be pasted without the prolog.
Check the Ignore Case checkbox if you are using LDAP for authentication and you want
to ignore the case stored in LDAP systems for users/roles. It is checked by default. Refer to the Mixed or Upper case User Names topic for more information.
Check the Authentication Only checkbox if you want SAML to handle authentication and provide user identification but all other user attributes come from the database.
When checked, the screen display changes as attribute mapping, other than the mapping for the user id and custom attributes, is no longer necessary.Map the attributes configured in your Identity Provider by entering the name for each attribute in the corresponding field on the screen. Be sure to provide the attribute name - not the friendly name. For example, if you are using Shibboleth for your Identity Provider the attribute information is located in the attribute-resolver.xml file. The image shows the section of the file where the attributes are defined.
The image below shows the attribute mapping on the screen with the attribute names from the Shibboleth file:Custom attributes can be mapped by typing the attribute names in the Custom field separated by a comma.
Configure a tenant admin account. This account does not require SAML authentication. This tenant admin can log directly into providing a default security manager backdoor.
The tenant admin id, password and email fields are required.
When this tenant admin performs a form based login i.e. /frevvo/web/login, the password entered on this screen is used for authentication. This is also the URL used by the API.
If the tenant based login url is used i.e. /frevvo/web/tn/{t}/login then SAML login is used.
The forgot password function works for a SAML tenant admin user. For all others, it will display the error message about not being supported for the tenant.Configure the Business Calendar for your tenant and HTTP Authorization Credentials if required.
Click Submit.
Section 5 - Users and Roles in a SAML tenant
Choosing the Authentication only option in your SAML tenant implies that the user and roles will be managed from . You may choose this mode if:
When Authentication Only is selected (checked) there is no discovery of Users & Roles. They must be created in your tenant manually. The CSV upload is a good way to do this.
When Authentication Only is not selected (unchecked) will discover new users at run-time. However users are only discovered when the person tries to login. They are not discovered nor is their user data (email, name, report-to) kept in sync automatically. It requires the user to login. So, this does not necessarily remove the need for manually creating/uploading users and roles ahead of time nor does it remove the need to continuously update the users when changes are made in LDAP.
If you have workflows that are routed to users/roles there is no guarantee that the required users will login before a task is created for that user (specifically or via a role). For example, if a workflow is routed to a specific user and it is performed before the first login of that user, will send an email to the tenant admin indicating that the user is unknown. Routing based on the user's manager will fail. Routing based on a role will succeed but the user will receive no notification.
Manually creating/uploading users/roles in ahead of time avoids this situation.
It is important to know that a SAML tenant with Authentication Only unchecked, means that authentication and authorization are handled by SAML/LDAP. Users are added/updated through discovery. If a tenant admin modifies user information in the UI, for example, changes an email address or adds a role for a user, the changes will stay in effect until the user logs out of the tenant and then logs back in. When the user logs back in, the changes made in the UI will be overwritten by the information in SAML/LDAP. In this case, make the changes in your Active Directory to make them permanent.
Section 6 - Logging into a Live Forms SAML Tenant
Paste this URL into your browser:
Cloud Customers: https://app.frevvo.com:443/frevvo/web/tn/{t}/login - Replace {t} with the name of your SAML tenant.
On-premise Customers:http://<server>:<port>/frevvo/web/tn/{t}/login. Replace <server> and <port> with your server information and t with the name of your SAML tenant.
screens display depending on the level of authorization specified for the user. Designer users will see the Application Home Page while non-designer users will be directed to their Task List.
This URL redirects to /web/saml/login/alias/{t}. This initiates the SAML authentication process by redirecting to the Identity Provider login page. If the user is authenticated, the rest of the standard login processing is done (verify license, redirect on success etc).
Clicking the logout link in , logs the user out from only.
Logging into a SAML tenant directly (user@saml tenant name) displays an application error message.
On-premise customers using the tomcat bundle will see the following entry in the error log:
Application error processing /frevvo/web/login?null java.lang.UnsupportedOperationException: nullSAML Tenant backdoor admin user
Just a reminder that the tenant admin account can login directly into or use the SAML login.
When you create a new tenant you are prompted to set up a tenant admin user id and password. If you are using a SAML IDP, this tenant admin does not authenticate via your SAML IDP. It only exists in . If you experience an issue with your SAML configuration such that you can't login as a SAML authenticated user, this account provides a backdoor you can use to login to your tenant as a tenant admin in order to fix your SAML configuration issue. Only one backdoor tenant admin account is supported.
If your tenant originally used the Default Security Manager and then you changed to the SAML Security Manager, this tenant admin account has already been setup. If you have forgotten the password, you can change it by :
Using the Forgot Password? feature for the tenant admin account.
Logging in as a SAML authenticated tenant admin and changing the password via Manage Users.
What if you do not remember the userid of your original tenant admin? Follow these steps:
Login as your authenticated SAML tenant admin
Click Manage Users and click the edit admin icon.
Accessing a Space in a SAML tenant on a mobile device will not display a logout button.
Session Timeout
Session timeouts are configured in and in your IDP. If a user's session ends before the IDP timeout is reached, they will automatically be logged back into if they try to access it again. It is recommended that the session timeout and the IDP session timeout be configured for the same value.
Embedding Forms/Flows in your website
Embedding forms and flows into your website when using the SAML Security Manager, will work in the following scenarios :
The visibility of the form is set to Public.
The visibility of the form is set to Public in Tenant and the user is already authenticated to SAML
Embedding forms and flows into your website is NOT supported if the the visibility of the form is set to Public in Tenant and the user is NOT already authenticated to SAML. This is because frevvo must direct the user to the IDP login screen and the browser will not allow loading the IDP login page in frevvo's form iframe.
Automating the Daily CSV Upload
Customer's using the SAML Security Manager, often want to schedule a daily upload batch job to automatically handle the synchronization between their Active Directory and . The Java Client API is one way to do this. Refer to the How do I batch upload users from the api? topic for the details.
Retrieving Custom Attributes from LDAP in a SAML Tenant
Similar to the LDAP Security Manager, custom properties in Active Directory for the logged in user can be made available so you can pull them into your form/flow using a business rule. Attributes have to be configured and released in your IDP configuration for them to be available on login.There are several steps that have to happen to accomplish this:
Make sure Authentication Only is unchecked in your SAML tenant.
Make sure the custom attribute(s) are configured in Active Directory and assigned to the correct users.
Configure and release the custom attributes as SAML attributes in your IDP.
Map the attribute with this name in the Custom section of the tenant setup screen.
You can do this when you are creating your SAML tenant or by accessing the Edit Tenant link, after signing on as the tenant admin of your existing SAML tenant.
Save the tenant configuration.
Write a business rule to populate controls in your form/flow with the information.
Example:
Let's take a look at a installation using a SAML tenant, Shibboleth as the IDP and Active Directory for authentication. When the user logs into the SAML tenant, you want to populate these fields in your form with the information from the LDAP server:
These attributes must be configured and released in your IDP. The process to expose the attributes varies for each Identity Provider. In our example, which uses the Shibboleth IDP, configuration and release of the attributes is done in two files, attribute-resolver.xml and attribute-filter.xml. You may need to confer with your on-staff IDP expert to complete this step.
Here is an example of the section of the attribute-resolver.xml file that was added to for the employeeType and employeeNumber custom attributes:
When the attributes are configured in the IDP, add them to the Custom section for attribute mapping by editing/creating your SAML tenant :