Is it possible to use the Tableau developer API to serve interactive Tableau visualizations to remote systems without making it public? - tableau-api

I am wondering if there is a way using one of the developer APIs / tools for Tableau to embed interactive Tableau Visualizations in a web application without making the Tableau server either:
A) A publicly hosted server (not Tableau public) or
B) using Tableau public
Essentially the web application (which is public) would be the intermediary between the Tableau server and the client.
Any information would be appreciated.

You can publish your dashboard in tableau public and use javascript API to embed in a web app.

Yes it is possible, you tableau server will have to be on internet but it need not open to login by public.
The system works similar to what you described, web application (which is public) would be the intermediary between the Tableau server and the client.
You can set up 'trusted authentication' between the server hosting the web application and tableau server.
When users open the web application, the web application server authenticates itself with tableau server. Using this authentication token, it gets the vizualisation and loads it in user's browser inside a special div or iframe which is embedded in the rest of the web application.
You can see more details about trusted authentication here

Related

qliksense : Embed qlik dashboard in an internal website

Hi,
We have a Data-portal which is an internal portal that centralize every data of the company and provide a Data catalog to our users.
We ‘d like to embed Qlik dashboards in the website for users who have licences.
Do you have an advice us on how to embed Qlik Dashboards in our portal and also make sure that the SSO connection can be forwarded?
Version of qliksense is 12.44
Thanks,
Romain.
I recommend using Dev Hub. You can access dev hub via qliksense or directly by going to https:///dev-hub/ There are many interesting tools.
More info about embedding here:
https://help.qlik.com/en-US/sense-developer/February2019/Subsystems/Platform/Content/Sense_PlatformOverview/Integration/embed-qlik-sense.htm

Create Outlook add-in using Angular

I'm trying to create an Outlook add-in using Angular 7 that can access all the users in my organization with Microsoft Graph API. In order to do that, I need to authenticate the current user and get an access token for calling graph API. I am planning to do the authentication using Single Sign On (SSO).
I read the documentation and didn't find any solution to my problem. My current add-in doesn't have a back-end, just a front-end.
This will only work with Office add-ins in Preview right now and requires you to have a server side component and an Azure AD registered application. There are detailed steps on accomplishing that here for asp.net and nodejs. There is no examples with Angular though unfortunately:
https://learn.microsoft.com/en-us/office/dev/add-ins/develop/sso-in-office-add-ins

Azure api management and Web App

I have hosted my REST services on API management and consuming those in the Azure Web app service which consists of only HTML pages, javascript files and CSS files.
I would like to know how to restrict accessing the REST endpoints of the API management only from the web app without Azure AD and OAuth setup.
Client side application sources are by design available in clear text to anyone using it. Any user can open developer tools in browser and look at code you've written to make app work. So even if you secure your REST API with some secret and use it in app code to talk to that REST API anyone in the world will be able to take that secret our of the app and call your REST API directly, and you would have no way to distinguish their calls from calls made by your app.
OAuth and AAD would work to a certain extent but even they allow you to authenticate user, not the app. Same user can easily trace calls made by your app to REST API and reproduce them in any other app, and you again would have to way of figuring that out.
I think your best bet is to throttle calls made by a certain user identifying it any way you want (even if by IP address).
You can use Certificate authentication from web app to api management. The ssl certficate thumbprint on you web app you can validate in api management policy.

Can Identity Server be used to authenticate a user for various web apps you may be hosting

I'm not really interested in API authentication - all I want to do is authorize a user who has access to one or many applications from a kind of portal I am designing. We are hosting the all the web applications, some are just Javascript and HTML, some are MVC.
I have created a diagram below with a user called Bob. He is a valid user and is allowed to use an application called "JS" but not MVC. How can this be implemented using Identity Server. Obviously when inside the JS application it still needs to talk to the Identity Server to make sure the current user is valid or else somebody could just copy the url of the app and use the application.
NOTE - the JS application is just a plain old HTML5 and Javascript application it is nothing fancy like an .NET MVC app.
One way to achieve this is by registering individual applications (JS and MVC app) as separate clients in IdentityServer (assuming each application has different redirect URI’s) and restricting access between those clients.
In order to restrict access between clients for an authenticated user, you need to use ICustomRequestValidator interface.
More details in this discussion board and a similar post in SO thread

OAuth2, Facebook (multiple environments, localhost, azure)

I have the basic OAuth2 working with Facebook but it appears that I need to setup multiple apps in FaceBook to support. When I add platform, I can add only 1 web site and it has a URL. Seems like I need multiple facebook apps to support different environment.
I can configure it for local host and it works, I can reconfigure it for azure and it works, but I can never get both to work. I did configure multiple re-direct URIs to each environment.
Am I correct that I will need multiple facebook apps (appid and app secret), one for each environment?
Yes, you do need multiple apps for this to work under different domains. Facebook now offers the ability to create an app which is the "test version" of an existing app. You will still end up with different apps/app Ids so you need a way within your application to initialise the FB API with the app ID which is configured for the given environment.