Configure SiSense as a Sub-Domain with SSO
Integrate SiSense as a sub-domain of your web application and embed SiSense into your web application with SSO. Note: SiSense also works when embedded in cross-domain iframes.
1. Add your website to IIS entitled example_website.com
In the site bindings enter the host name as example_website.com on port 80

2. Change PrismWeb host name to sisense.example_website.com on port 80.

3. Open the file C:\Windows\System32\drivers\etc\hosts and add mapping for the sites:
192.168.5.148 sisense.example_website.com
192.168.5.148 example_website.com
4. Sign in to your SiSense application at sisense.example_website.com and configure the SSO as pictured below:

5. Place the following SSO script in the server location corresponding to the Remote Login URL in the server's root directory. Please note that the SSO script can be implemented in any server-side language. This example uses Python. Example code has been attached for C#, PHP, and Python.
sso-sub-domain.py from example_website.com
import time import jwt # JWT library for python is available from https://github.com/progrium/pyjwt import urllib payload = { "iat": int(time.time()), "sub": "[email protected]", # "exp": int(time.time()) + 1000000 #optional- expiration time # "aud": "sisense" # optional- audiences parameter. can be either string or array of strings. Must contain the value "sisense" } # Shared key from SiSense SSO shared_key = "807878265444cd943f40751704bd77d2" # Create JWT token jwt_string = jwt.encode(payload, shared_key) # Encode JWT token for URL encoded_jwt = urllib.quote_plus(jwt_string) # SSO URL ssoURL = 'http://sisense.example_website.com/jwt?jwt=' + encoded_jwt # Redirection print 'Location: %s' % ssoURL print 'Content-Type: text/html' print ''
6. In index.html from example_website.com, the iframe source is the SiSense dashboard URL:
index.html from example_website.com
<html> <head> <title>Example Website</title> </head> <body> <p><b>example_website.com</b> - <b>SSO</b> login with embedded dashboard from <b>sisense.example_website.com</b></p> <iframe width="100%" height="100%" src='http://sisense.example_website.com/app/main#/dashboards/53b29843751b655443000018?embed=true' /> </body> </html>
7. Navigate to example_website.com and you should see the specific dashboard you embedded.
Download:
Updated 03-02-2023
intapiuser
Admin
Joined December 15, 2022