Feature Image

Embedding BusinessQ into your web application

Hello everyone,

today we present you one of the features of BusinessQ, which is the integration of BusinessQ with other web applications.

BusinessQ helps our partners to quickly create new revenue streams and increase customer retention by embedding reporting, dashboarding and analytics directly into their existing SaaS solutions.

Typical integration of BusinessQ into your web application is when you have BusinessQ installed on your (or client’s) web server.

 

Technical details

Embedding BusinessQ in your app is simply done through the HTML tag <iframe> so that the src attribute is set as a path to your BusinessQ installations

 

Options

Single sign-on

Single sign-on (SSO) allows integration of multiple independent systems or applications. Users authenticate with their credentials on a single system, and they can then seamlessly access other connected independent systems without having to authenticate themselves again with the same or different credentials. BusinessQ uses tokens to achieve this integration.

Hiding the menu

This option allows you to hide the BusinessQ menu inside the iframe and together with manipulating iframe src attribute it is possible to navigate through BusinessQ directly from the application that has embedded BusinessQ. Which allows displaying only some parts of BusinessQ to the end user.

Token

The application which integrates BusinessQ will generate the token by encrypting a message with a specific format. It will pass the token to BusinessQ in URL. BusinessQ will, while initializing, read the token from URL, decrypt it and will use decoded message to authenticate the user.

By default, the message used for token generation is a JSON string with the following structure:

{
    “UserInfo”: {
        “UserName”:”email@example.com”
    },
    “RequestDate”:”2017-01-01 12:00:00″
}

  • UserName” property contains the identifier unique to each user. BusinessQ will check the value against its repository. This means that every user that should be granted an access to BusinessQ, must be in its repository.

 

  • RequestDate” contains the date and time when the token was generated. It can be represented in any known format. But to avoid uncertainty, especially with different time zones, we recommend using ISO 8601 standard. A token is valid for 1 hour.

 

Specified JSON should then be encoded using industry standard AES (Advanced Encryption Standard) encryption algorithm in counter (CTR) mode with the key length of 256 bits.

Password/key (and on custom solutions, for example, initialization vector) is stored in BusinessQ repository and can be updated at any time. The binary output of the encryption algorithm is then encoded using Base64 scheme.

An example of a javascript function that generates a token:

function generateToken(message, key){
//Message – JSON string with structure as described above, containing user information
//Key – sso key stored in BusinessQ
var token = Aes.Ctr.encrypt(message, key, 256);
//Aes – javascript library that implements AES
       return token;
}

 

Examples

In order for BusinessQ to be integrated within the external web application, it is necessary to set an iframe HTML tag to the place where BusinessQ will be displayed:

<iframe src=“https://your.server/businessq/?sso=1&menu=0&token=Tcdscdsc#/report/1/view“>

</iframe>

The src attribute contains the path to the BusinessQ installation with the following parameters:

  • sso- Indicates SSO mode of authentication and its value is always ‘1’. (e.g. sso=1).
  • menu – if it’s set to ‘0’, the menu inside BusinessQ will not be displayed
  • token – a token that is generated by an application that integrates BusinessQ in the way described above
  • all after the ‘#’ sign is part of the navigation within BusinessQ. In this concrete example, it is a report with id 1 displayed in ‘view’ mode (Two basic entities within BusinessQ are reports and dashboards that can be displayed in two modes, edit, and view)

Example – report

HTML:

<iframe src=“https://your.server/businessq/?sso=1&menu=0&token=Tcdscdsc#/report/1/view“>

</iframe>

RESULT:

 

 

Example – dashboard

HTML:

<iframe src=“https://your.server/businessq/?sso=1&menu=0&token=Tcdscdsc#/dashboard/1/view“>

</iframe>

RESULT:

 

Example – with BusinessQ menu displayed

HTML:

<iframe src=“https://your.server/businessq/?sso=1&menu=1&token=Tcdscdsc#/dashboard/2/view“>

</iframe>

RESULT:

 

 

We hope that you enjoy using our application and we are trying to make it better every day. For any questions and suggestions contact us on info@qualia.hr.

 

We are developers of data visualization software BusinessQTry it for free and make reports and dashboards that make sense, without chart junk.

Leave a Reply

Your email address will not be published. Required fields are marked *

Search