Futurama Logo

Welcome to the Futurama Support Site

The Futurama Support Site is the website where you can find Futurama and Futurama Vision documentation. If you have any questions about the support pages or if you want to provide us feedback please send us an e-mail.

Index Installation SAML2LoadBalancer
Previous  |  Next

 1      About Futurama
 1.1        Version information
 1.2        Getting Started
 1.2.1          Futurama Website            Behavior of Futurama regarding TimeOuts, Login and Logoff            Replacing an existing Futurama Session
 1.2.2          Futurama Webservice            warmUpDocuments
 1.2.3          Futurama Export
 1.3        Overview - Futurama Modules
 1.3.1          Overview - Futurama Accounts
 1.3.2          Overview - Futurama Server
 1.3.3          Overview - Futurama Monitor
 1.3.4          Overview - Futurama Insight
 1.3.5          Overview - Futurama Console
 1.3.6          Overview - Futurama Webservice
 1.4        Loadbalancing Futurama applications
 1.4.1          Getting the most out of Futurama Web using the Load-Balancer
 1.4.2          Application Request Routing
 1.5        Text management and Multi-language
 2      Installation – Configuration – Testing
 2.1        Installation - Futurama Website Edition
 2.1.1          Installation Futurama HTML
 2.1.2          Installation Futurama Monitor
 2.1.3          Installation Futurama Insight
 2.1.4          Installation Futurama Accounts
 2.1.5          Installation SAML2LoadBalancer
 2.2        Installation - Futurama Export Edition
 2.2.1          Installation Futurama Console
 2.2.2          Installation Futurama Server
 2.3        Installation - Futurama Webservice Edition
 2.3.1          Installation Futurama Webservice
 2.4        Installation Futurama Editor
 2.5        Configuration
 2.5.1          Configuration - Cache
 2.5.2          Configuration - Calculation
 2.5.3          Configuration - Debug
 2.5.4          Configuration - File manager
 2.5.5          Configuration - Fileproviders
 2.5.6          Configuration - Format
 2.5.7          Configuration - History
 2.5.8          Configuration - Identity Provider
 2.5.9          Configuration - Log
 2.5.10           Configuration - Mail
 2.5.11           Configuration - Mapping
 2.5.12           Configuration - Monitor
 2.5.13           Configuration - PlugIns
 2.5.14           Configuration - Rendering
 2.5.15           Configuration - ScenarioRecording
 2.5.16           Configuration - Security
 2.5.17           Configuration - Server
 2.5.18           Configuration - Vision
 2.5.19           Configuration - WebAPI
 2.6        Logging
 2.7        Troubleshooting
 2.8        Security - hardening
 3      Updating and file compatibility
 3.1        Updating Futurama - Compatibility behavior
 3.2        Converting Futurama documents
 3.3        12819 - DataTable file updates
 3.4        12889 - DataTable file updates
 3.5        Conversion web.config to .NET Framework 4
 3.6        Deprecated conversion formulas
 4      Futurama Editor - How to
 4.1        At first glance
 4.2        Developing in the Futurama Editor
 4.2.1          Working with objects
 4.2.2          Evaluating objects
 4.2.3          Finding objects
 4.3        Transferring objects
 4.4        Testing objects
 4.5        Validating objects
 4.6        Troubleshooting objects
 4.7        Advanced/special functionality
 4.8        Checking the layout of objects
 5      Futurama - Formulas
 5.1        Futurama Formulas - Date and time
 5.1.1          Date
 5.1.2          Day
 5.1.3          Days360
 5.1.4          Days360Excel
 5.1.5          DaysInMonth
 5.1.6          DaysInPeriod
 5.1.7          Min
 5.1.8          Max
 5.1.9          Month
 5.1.10           Now
 5.1.11           WeekDay
 5.1.12           Year
 5.2        Futurama Formulas - Math
 5.2.1          Abs
 5.2.2          Add
 5.2.3          Divide
 5.2.4          Floor
 5.2.5          Ln
 5.2.6          Log
 5.2.7          Log10
 5.2.8          Mod
 5.2.9          Multiply
 5.2.10           Pi
 5.2.11           Power
 5.2.12           Rand
 5.2.13           Round
 5.2.14           RoundDown
 5.2.15           RoundUp
 5.2.16           SquareRoot
 5.2.17           Subtract
 5.3        Futurama Formulas - Statistical
 5.3.1          AverageDeviation
 5.3.2          Beta
 5.3.3          Binomial
 5.3.4          Covariance
 5.3.5          Factorial
 5.3.6          Gamma
 5.3.7          GeometricMean
 5.3.8          Lognormal
 5.3.9          Max
 5.3.10           Median
 5.3.11           Min
 5.3.12           Normal
 5.3.13           StandardDeviation
 5.3.14           Uniform
 5.3.15           Variance
 5.4        Futurama Formulas - Text
 5.4.1          CalculateBase64Hashcode
 5.4.2          CalculateXmlHashcode
 5.4.3          Concatenate
 5.4.4          ConcatenateBase64
 5.4.5          ContainsText
 5.4.6          Convert.CSV.2.XML
 5.4.7          ConvertFromBase64
 5.4.8          ConvertToBase64
 5.4.9          ConvertXml
 5.4.10           DecodeURL
 5.4.11           DecryptXml
 5.4.12           EncodeURL
 5.4.13           EncryptXml
 5.4.14           Find
 5.4.15           HashBase64EncodedFile
 5.4.16           HashBase64EncodedFileWithBase64
 5.4.17           HashText
 5.4.18           HashTextWithBase64
 5.4.19           Left
 5.4.20           Len
 5.4.21           Linefeed
 5.4.22           Lower
 5.4.23           Mid
 5.4.24           Proper
 5.4.25           ReadConfigKey
 5.4.26           ReadDirectoryNames
 5.4.27           ReadFile
 5.4.28           ReadFileAsBase64
 5.4.29           ReadFileNames
 5.4.30           ReadFileWithEncoding
 5.4.31           ReadXPathScalar
 5.4.32           ReadXPathVector
 5.4.33           Repeat
 5.4.34           Right
 5.4.35           Substitute
 5.4.36           Trim
 5.4.37           TrimLeft
 5.4.38           TrimRight
 5.4.39           Upper
 5.4.40           ValidatePattern
 5.4.41           XsdMessages
 5.5        Futurama Formulas - Logical
 5.5.1          And
 5.5.2          IsEmpty
 5.5.3          If
 5.5.4          IsEqual
 5.5.5          IsEven
 5.5.6          IsGreater
 5.5.7          IsGreaterEqual
 5.5.8          IsIBANChecksumValid
 5.5.9          IsLess
 5.5.10           IsLessEqual
 5.5.11           IsMemberOfGroup
 5.5.12           IsNotEqual
 5.5.13           IsOdd
 5.5.14           IsValidXml
 5.5.15           Not
 5.5.16           Or
 5.5.17           ValidateNPR
 5.6        Futurama Formulas - Table
 5.6.1          FindNextRow
 5.6.2          FindPreviousRow
 5.6.3          FindRow
 5.6.4          Sort
 5.6.5          VLookUp
 5.7        Futurama Formulas - Document
 5.7.1          CountErrors
 5.7.2          GetPathToDataFiles
 5.7.3          GetPortNumber
 5.7.4          GetRelativePathToDataFiles
 5.7.5          GetSessionID
 5.7.6          IsLicenceAvailable
 5.7.7          ReadError
 5.7.8          ReadIdentityProviderResult
 5.7.9          ReadRequestIP
 5.7.10           ReadRequestParameter
 5.7.11           ReadUserAgent
 5.7.12           ReadVersionNumber
 5.7.13           SessionTimeOut
 5.7.14           URL
 5.7.15           UserName
 5.8        Futurama Formulas - Conversion
 5.8.1          Convert.Excel.to.XML
 5.8.2          ConvertJSONtoXml
 5.8.3          ConvertTextToDate
 5.8.4          ConvertTextToNumber
 5.8.5          ConvertToBoolean
 5.8.6          ConvertToDouble
 5.8.7          ConvertToLong
 5.8.8          ConvertToString
 5.8.9          FormatDate
 5.8.10           FormatNumber
 5.8.11           Value
 5.9        Futurama Formulas - Matrix
 5.9.1          AddMatrices
 5.9.2          AddScalarToMatrix
 5.9.3          Cumulative
 5.9.4          CumulativeProductMatrix
 5.9.5          Distinct
 5.9.6          DivideMatrices
 5.9.7          DivideMatrixScalar
 5.9.8          DivideScalarMatrix
 5.9.9          Exponent
 5.9.10           First
 5.9.11           Floor
 5.9.12           If
 5.9.13           Index
 5.9.14           Inverse
 5.9.15           IsEqual
 5.9.16           IsGreater
 5.9.17           IsGreaterEqual
 5.9.18           IsNotEqual
 5.9.19           IsLess
 5.9.20           IsLessEqual
 5.9.21           Join
 5.9.22           Last
 5.9.23           Length
 5.9.24           MatrixProduct
 5.9.25           Max
 5.9.26           MaxScalarMatrix
 5.9.27           Mean
 5.9.28           Mid
 5.9.29           Min
 5.9.30           MinScalarMatrix
 5.9.31           MultiplyMatrices
 5.9.32           MultiplyMatrixVector
 5.9.33           MultiplyScalarMatrix
 5.9.34           Percentile
 5.9.35           PowerMatrix
 5.9.36           PowerMatrixScalar
 5.9.37           PowerScalarMatrix
 5.9.38           ReadMatrixFromXml
 5.9.39           Repeat
 5.9.40           Replace
 5.9.41           Reshape
 5.9.42           ReverseCumulativeProductMatrix
 5.9.43           ReverseMatrix
 5.9.44           Size
 5.9.45           Split
 5.9.46           SquareRootMatrix
 5.9.47           Step
 5.9.48           SubtractMatrices
 5.9.49           SubtractMatrixScalar
 5.9.50           SubtractScalarMatrix
 5.9.51           Sum
 5.9.52           Transpose
 5.9.53           UnitMatrix
 5.9.54           Vector
 5.10         Creating custom formulas in Futurama
 6      Futurama - Objects
 6.1        Action
 6.2        Aggregation
 6.3        Button
 6.4        ChangeValue
 6.5        CheckBox
 6.6        ClearCache
 6.7        DatabaseField
 6.8        DatabaseView
 6.9        DataTable
 6.10         DateBox
 6.11         DocConverter
 6.12         Document
 6.13         Download
 6.14         DropDownList
 6.15         EmailConverter
 6.16         ExcelConverter
 6.17         FileSaver
 6.18         FileUploader
 6.19         Fixed
 6.20         Formula
 6.21         GraphConverter
 6.22         HTMLInclude
 6.23         InterfacesNode
 6.24         LogMessage
 6.25         Navigator
 6.26         Node
 6.27         RadioButton
 6.28         RadioGroup
 6.29         Range
 6.30         Reference
 6.31         SubDocument
 6.32         TextBox
 6.33         UserTable
 6.34         UserVariable
 6.35         WebLabel
 6.36         WebListBox
 6.37         WebPage
 6.38         WebPanel
 6.39         WebReference
 6.39.1           WebReference - WCF Configuration
 6.40         WebService
 6.41         WebSlider
 6.42         WordConverter
 6.43         XmlBuilder
 6.44         XmlConverter
 6.45         XmlField
 6.46         XmlNode
 7      Futurama - Vision References
 7.1        Data
 7.1.1          ReadData
 7.1.2          WriteMessage
 7.1.3          GetPersonIdentifiers
 7.1.4          CreatePerson
 7.2        DataStore
 7.2.1          DeleteDataItem
 7.2.2          DeleteDataItemHierarchy
 7.2.3          DeleteDataItems
 7.2.4          GetDataItem
 7.2.5          GetDataItemHierarchy
 7.2.6          GetDataItems
 7.2.7          StoreData
 7.3        Accounts
 7.3.1          Activate Account
 7.3.2          Change Account
 7.3.3          Create Account
 7.3.4          GetQuestion
 7.3.5          GetQuestions
 7.3.6          Login
 7.3.7          ReadData
 7.3.8          ReinitializeAccount
 7.4        General
 7.4.1          TestConnection
 8      Futurama Vision
 8.1        Installation Futurama Vision
 8.1.1          Installation Futurama Vision Management Site
 8.1.2          Installation or Upgrade of the Futurama Vision Database
 8.2        Futurama Vision Management Site
 8.2.1          Futurama Vision Management Site - Admin
 8.2.2          Futurama Vision Management Site – Security
 8.2.3          Futurama Vision Management Site – Skinning
 8.2.4          Importing data into Futurama Vision            Importing data by webservice            Importing data from a Zip-file            Importing data with Futurama Vision Batch            Futurama Vision Webservice Security
 8.2.5          Further processing of data into Futurama Vision
 8.3        Futurama Vision File manager
 8.4        Activity overview
 8.5        Storing data in Vision from a Futurama application
 8.6        Futurama Vision – Data
 8.7        Futurama Accounts - Management Site
 8.7.1          Futurama Accounts - Table in Vision Database
 8.8        Futurama Server - Management Site
 8.8.1          Special Futurama Server Jobs
 8.9        Futurama Register - Management Site
 8.9.1          Configuration - Futurama Register
 8.10         Retrieving AppEvents from Futurama Vision
 8.11         Adding CustomPages to Vision
 9      Futurama Intermediate Control Output (FICO)
 9.1        FICO example - Change/Add HTML headers
 9.2        FICO example - Change Graph
 9.3        HTML5 Template
 10       Futurama Web API
 10.1         Postbacks of Futurama webcontrols
 10.2         Retrieving Resources using Web API
 10.3         WebAPI Session management
 11       Tutorials - Overview
 11.1         Tutorials - Examples and Downloads
 11.2         Beginners
 11.2.1           Creating formulas with Futurama             Exercise 1: Pythagorean Theorem (Easy)             Exercise 2: Newspaper stall (Medium)             Exercise 3: Recursive functions (Difficult)             Exercise 4: Leap Year (Difficult)             Exercise 5: The Guessing Game I (Medium)
 11.2.2           Creating a Website Application             Exercise 1: Creating a Website (Easy)
 11.2.3           Styling your website with CSS             Exercise 1: Adding CSS (Easy)
 11.2.4           Adding interactivity to your website             Exercise 1: Summation (Easy)             Exercise 2: The Guessing Game II (Medium)             Exercise 3: Nationality (Medium)             Exercise 4: Nationality - RepeatTarget (Medium)             Exercise 5: Reversed Guessing (Difficult)
 11.2.5           Working with Tables             Exercise 1: Average (Easy)             Exercise 2: Boundary values (Difficult)             Exercise 3: Standard Deviation (Medium)
 11.2.6           Reading and processing XML-data in Futurama             Exercise 1: Shares (Medium)
 11.2.7           Adding Graphs in Futurama             Exercise 1: World Population (Easy)
 11.2.8           Working with Actions in Futurama             Exercise 1: Changing Colors (Easy)             Exercise 2: On and Off (Medium)             Exercise 3: The ChangeValue object (Difficult)             Exercise 4: The Guessing Game III (Medium)             Exercise 5: CheckBox (Medium)
 11.2.9           Multiple Pages and Navigation
 11.2.10            Using XSLT to display data              Exercise 1: Overview Summation (Easy)              Exercise 2: Persons (Medium)              Exercise 3: Leap Year Overview (Difficult)
 11.2.11            Webservices in Futurama              Exercise 1: Example (Easy)
 11.2.12            Creating a Webservice Application              Exercise 1: Add (Easy)              Exercise 2: Webservice Nationality (Medium)
 11.2.13            Creating a Console Application              Exercise 1: Adding extra fields (Easy)
 11.2.14            Generating Documents              Exercise 1: Tax Rate (Medium)              Exercise 2: Tax Rates Table (Difficult)
 11.3         Advanced
 11.3.1           Responsive Design             Exercise 1: Orientation             Exercise 2: Target different screen sizes
 11.4         Older Tutorials (Futurama Version 3.2)
 11.4.1           Futurama Editor Tutorial 1: The first sum
 11.4.2           Futurama Editor Tutorial 2: An annuity
 11.4.3           Futurama Editor Tutorial 3: Working with tables
 11.4.4           Futurama Editor Tutorial 4: Modelling a DB pension plan
 11.4.5           Futurama Editor Tutorial 5: Working with XML
 11.4.6           Futurama Web Tutorial 1: Hello world
 11.4.7           Futurama Web Tutorial 2: Buttons and Actions
 11.4.8           Futurama Web Tutorial 3: Textboxes
 11.4.9           Futurama Web Tutorial 4: DropdownLists
 12       Miscellaneous
 12.1         Responsive website
 12.2         Reducing memory usage for XmlNodes and XmlFields
 12.3         Explaining caching for websites and webservices
 12.4         Certificates - basic information
 12.5         Performance XML operations
 12.6         Creating XSD files and using them in combination with Futurama
 13       Templates
 14       Safe2Save WebAPI Sample
View  |  Print  |  PDF

451 documents found.

Installation SAML2LoadBalancer



Edition: Futurama Website

Module: SAML2LoadBalancer, extra component of Futurama HTML

User: System administrator


- License file

- User name and password for Futurama downloads

- Windows 2008 R2 server or higher (for client Windows 7 or higher)

- .NET Framework 4.6.2 with ASP.net to be installed

- Internet Information Server 7.5 or higher




Describes the SAML2 Load Balancer component that enables the use of the SAML2 Identityprovider in combination with a load balancer. When you use Futurama Website in combination with a SAML2 Identity provider and a load balancer, problems arise with the SingleLogout functionality. This component enables a scenario where the combination of Futurama Website, SAML2 and a load balancer is used.

The problem occurs with the session affinity of the load balancer. This makes sure that a subsequent request to a Futurama server is handled by the the same server as the original request. A SAML2 SingleLogout Request doesn’t come from the user itself and its browser, but is issued by the SAML2 IdentityProvider. Therefore this subsequent request can be routed by the load balancer to a different server. That server then tries to remove the Futurama session, but it cannot find the session. This module solves that situation by adding a component. At the start of a new SAML2 session, the user and the URL of the server that it is logged into is stored. When a logout request is received, it is passed to the correct server by this component.


Visit the Futurama website www.futurama.eu to download the SAML2LoadBalancer code:

  • Go to www.futurama.eu
  • Go to the download section of the Support menu
  • Log in with user name and password
  • Click the most recent Futurama release
  • Extract the zip-file 


Release folder

Use the release code from the folder 'SAML2LoadBalancer'.

Installation initial version

If this is the first installation of the SAML2LoadBalancer code follow the steps in this paragraph. If you already have a working application and are intended to upgrade this to a new Futurama version consult the next paragraph 'Upgrading existing version'. Important is that the SAML2LoadBalancer only is used in the situation of a loadbalanced situation. In a loadbalanced situation a Serverfarm is configured in IIS. See this for explanation of the Application request Routing within IIS. In the next steps you will see that the address of the ServerFarm has to be changed to the SAML2LoadBalancer directory.

To do the first install of the SAML2LoadBalancer code follow the next steps:

  • Create at the Windows webserver a new folder in which the code from the release folder can be installed
  • Copy the code from the release folder to this new folder
  • Copy the license file to this new folder
  • Rename the default.config to web.config (see the description in chapter 'Configuration' for the way the web.config can be configured)
  • Within IIS already a ServerFarm address exists. Change the physical path of this ServerFarm to the directory where in the previous steps the SAML2LoadBalancer code is installed

Upgrading existing version

If you already have installed the SAML2Loadbalancer code, and want to upgrade this to a new version follow the steps in this paragraph. If this is the first installation follow the steps in the preceding paragraph 'Installation initial version'. Follow the next steps to upgrade an existing version of the SAML2Loadbalancer:

  • Open the folder at the Windows webserver where you have installed the SAML2Loadbalancer code
  • Copy the code from the release folder to this folder.



After installing the SAML2Loadbalancer code the configuration can be done. See below for this configuration.

Configuration File

In the release folder we provided a default.config. In the Installation steps mentioned above this default.config is renamed to web.config. In this configuration section the sections within this configuration file are explained.

configSections and futuramaSettings

Within the section 'configSections' you find a sectionGroup named futuramaSettings. This sectionGroup futuramaSettings is also a separate section in the config under the configSections section. Each section name within the sectionGroup futuramaSettings is also contained within the futuramaSettings section. Below a brief explanation of these futuramaSettings sections.

Configuration Log

It is possible to log errors, warnings, information messages and developers messages with Futurama. In the chapter 'Configuration Log' you can find information how to configure the configuration file to log this information.

Configuration address SAML2Loadbalancer

In the installation you have changed the physical address of the ServerFarm to the location of the SAML2LoadBalancer installation. Futurama has to communicate at the background with this SAML2Loadbalancer. In order to let these two sources communicate with each other let the ServerFarm listen to an extra address. This must be an internal address (for example localhost) as this is only internal communication.  Next, this extra address must be configured in the identityprovider section of the web.config of your website application. See Configuration – IdentityProvider, the SAML2LoadBalancerURL property.

Logging out

It is important to distinguish two different logout situations: local logout and remote logout.

Local logout

In the local logout situation the logout is triggered from the Futurama session. The user browses through your Futurama application and decides to logout. After pressing the logout button in your Futurama application the next steps are followed:

  • the Futurama instance communicates with the IDP for a logout request (enable the logging in the configuration file of the Futurama instance to see this logout request) ;
  • With this logout request to the IDP the ARRcookie is sent (due to session affinity)
  • The IDP respondes to this request with a logout response to SAML/SingleLogoutService.aspx. This logout response is sent via a QUERY_STRING (SAMLResponse=…)
  • The response has to be sent directly to the Futurama Farm. Due to the ARR cookie the Futurama Farm can match the response with the Futurama instance the logout request was sent from

Remote logout

In the remote logout situation the logout is triggered from the IDP. The user is logged in in several applications and wants to logout from one of these applications. After the logout the user is redirected to the IDP from where a logout request is sent to all the applications (for example your Futurama application) the user is logged in. After logging out from the IDP the next steps are followed:

  • the IDP does a logout request to SAML/SingleLogoutService.aspx;
  • this request has to be sent to the SAML2Loadbalancer. As the logout is initiated from the IDP, this request can not be routed directly to the loadbalancer as direct routing could imply that the request is sent to another Futurama instance as the Futurama instance the session of the user is started. So, the request first has to be sent to the SAML2Loadbalancer. This SAML2Loadbalancer will route the logout request to the right Futurama instance

So it is important that a local logout is routed to the loadbalancer and a remote logout is routed to the SAML2Loadbalancer. See the next paragraph for the configuration of this routing.

Loadbalancer configuration

In the configuration of the loadbalanced environment an URL Rewrite rule is defined in order to redirect incoming requests to the ServerFarm. This will create the loadbalancing of your sessions. It is important to add an extra rewrite rule in order to use the single log out functionality. When a user is logged in (in your application and another single sign on application) and wants to logout from one of these application he must confirm to log out in all these applications. After confirming, a single logout request is sent to the Futurama application. This is done to the page /SAML/SingleLogoutService.aspx. See the installation of your Futurama HTML code. Within this installation you will find the subfolder SAML and the SingleLogoutService.aspx file. Now it is important that this request is not loadbalanced. See the previous paragraph: a local logout has to be loadbalanced.

This can be done by adding an extra URL Rewrite rule. Make sure this rule is first executed before the existing URL Rewrite rule. Second configure this new rule by:

  • Requested URL: matches the Pattern
  • Using: Regular expressions
  • Pattern: SAML/SingleLogoutService.aspx
  • Ignore case: checked 
  • Conditions: same conditions as the existing URL Rewrite rule plus adding a QUERY_STRING condition (Input={QUERY_STRING}, Type=Does not match the pattern, Pattern=SAMLResponse)
  • Action type: None
  • Stop processing of subsequent rules: checked


The installation and configuration can be tested. See below how to test. If you encounter problems, check the chapter 'Troubleshooting'.

Test in browser

To test whether the SAML2Loadbalancer is installed properly follow the next steps:

  • Log on to the server where the SAML2Loadbalancer is installed;
  • In the SAML2LoadbalancerURL property (see this page) the internal address of the SAML2Loadbalancer is configured. Add saml/sessions to this address (so for example http://internaladdress/saml/sessions) to check whether a json file can be downloaded. 


If you encounter problems with the installation of the SAML2Loadbalancer check the section below.

Logging information

In the web.config the log section is configured. First step in troubleshooting is checking the information in the different log files. Make sure that the log information is actually created. If you don't see any log information consult the chapter 'Configuration Log' for the settings to get this information.

Related Topics

- Application Request Routing: Load balancing with IIS module

- Configuration - Identity Provider: Configuring SAML2 Identity provider


If you have any questions about this subject or if you want to provide us feedback please send us an e-mail.

Updated: 2016-12-09

Previous  |  Next