This page has an error. You might just need to refresh it.
Unable to find an action for 259;a: {"id":"259;a","state":"SUCCESS","returnValue":{"Id":"0054T000001NHMqQAO","Name":"Tableau Community Forums Site Guest User","FirstName":"Tableau Community Forums","LastName":"Site Guest User"},"error":[]}
Using the Embedded API and On Demand Access, can we set up row level security based on USERNAME() and entitlement tables?
We are using the Embedded API to display Tableau dashboards in a web portal. Our row level security is based on the username mapped to a customer ID in an entitlement table, so the user can only see their personal data.
For On-Demand Access (ODA), it looks like we don't have to provision users on our Tableau Server. Rather, access will be controlled on the web portal side, and the web portal can send user attributes to Tableau via the token.
With ODA are we still able to use our entitlement tables for RLS? Will it be secure? It's critical that our customers can not see other user's data.
Right now, our plan is:
Set up the connected app using Direct Trust
Set up Tableau Groups for ODA
Updated the token to enable ODA and Groups, and then pass an username() attribute to Tableau
Set up the entitlement table with username and Customer ID
Created a relationship to the main dataset using Customer ID
Created a security filter lower([Customer]) = lower(USERATTRIBUTE("Username")) and set to TRUE
Published Tableau data source and connect the embedded workbooks to that data source
For testing, we have my personal email hardcoded in the token under the "sub" as we needed a provisioned user to test the connection to our Tableau site. Can that be removed once everything is set up?
So, I have not tested if this restriction still is active (you may test it). So, I recommend you to make three tests with:
a. Published data source (it may fail) which contains the lower([Customer]) = lower(USERATTRIBUTE("Username")) inside the data source in the data source filters section. (so you publish the datasource with this data source filter) -> It should not work.
b. A workbook connected to a published datasource, that has the relationship to your entitlement table but not the datasource filter published in the datasource. Instead, create the calc at the workbook level (lower([Customer]) = lower(USERATTRIBUTE("Username"))) and add it as a datasource filter from the workbook. -> It may work.
c. Test with an embedded data source in the workbook (so the relationship model belongs to the workbook) and create the user filter calc within the workbook and apply as a datasource filter -> This should work.
For testing, we have my personal email hardcoded in the token under the "sub" as we needed a provisioned user to test the connection to our Tableau site. Can that be removed once everything is set up?
It seems you may be using a Tableau Cloud site that does not have ODA and Usage Based Licensing activated, so I guess you are testing on this site without ODA and that is why you need to use the sub clause with an existing user. When moving to the ODA Tableau Cloud site, I recommend you to use still the sub JWT attribute, but with the username of the not provisioned user. If I remember, you may use USERATTRIBUTE("sub"). If the sub attribute is not accesible with userattribute, you may add another attribute to the JWT with the username.
e.g USERATTRIBUTE("username")
Also, you would need to pass the https://tableau.com/oda attribute in the JWT with the true value. (it can only be used with sites with ODA activated and usage based licensing).
If this post resolves the question, would you be so kind to "Select as Best"?. This will help other users find the same answer/resolution and help community keep track of answered questions. Thank you.
Hyperlink does not work when going to the URL from tableau cloud, but it does from tableau desktop?
Within tableau we have some URLs to various pages in our back-office system provided by Intelliflo. Previously these had worked in both the desktop and cloud versions of tableau. However, at the weekend Intelliflo made some functional changes and this meant the URLs needed to be updated. This has not been a problem and I’ve updated URL within the desktop version which looks like: -
I have checked all of the actions and this link works correctly for all of them in the desktop version. However, when I publish to tableau cloud and use the URL it gets blocked and I end up at the Intelliflo landing page: -
If I copy and paste the link above into chrome the page opens without a problem so I know there is no issue with the URL that has been created in the desktop version. However, I have absolutely no idea why the same URL will not work from tableau cloud?
Need Help Changing Email on Tableau Public – Stuck in a Loop!
Hi DataFam,
I need some help changing the email address on my Tableau Public account. I originally registered with my school email seven years ago, but the school has since discontinued it. You’d think this would be straightforward, but when I tried updating it, I kept getting redirected to a page claiming my account is a Tableau Cloud email. (https://help.salesforce.com/s/articleView?id=001458204&type=1)
I reached out to the Tableau Cloud team, but they told me my account isn’t associated with any Cloud instance (email attached). I’ve been bounced around between three Tableau teams (Operations, Public, and Cloud), and now no one is responding to help me update my email.
I’m really frustrated and worried I might lose access to my Tableau Public account, where all my visualizations are stored. Has anyone faced a similar issue or found a way to resolve it? Any advice would be greatly appreciated!
Hi all, I am so confused with this error. I created a calculation in Tableau Prep as follows: { PARTITION[ConcatField]:{ ORDERBY [ConcatField]:ROW_NUMBER()} } .... Read more in Details
Hi all,
I am so confused with this error.
I created a calculation (RN) in Tableau Prep as follows: { PARTITION[ConcatField]:{ ORDERBY [ConcatField]:ROW_NUMBER()} }.
I can run the flow, and everything looks good without error on local desktop Tableau Prep. However, I can't run the flow as it occurs an error saying that invalid RN field (screenshot attached below) when I published this flow to Tableau Cloud.
Tableau Pulse not creating new metrics when filtered
Hi,
As I understand it, the way to create new metrics under a metric definition is to filter the existing metric and click on the check button. Tableau Pulse is then supposed to automatically create a new metric based on the filters that I selected. However, whenever I try to do this, my metrics are not being saved. When I click the back button, no new metrics are created. I'm only seeing 1 metric for each metric definition.
Is this a known issue? How can I create new metrics under the same metric definition?
Hi, after clicking on the check button, then click on the follow button. Only metrics with at least one follower are "saved". This way, Tableau avoids the metric proliferation. Imagine, each time a person modifies a filter, a metric were created. That would mean hundreds of thousands of metrics.
If this post resolves the question, would you be so kind to "Select as Best"?. This will help other users find the same answer/resolution and help community keep track of answered questions. Thank you.
After setting the refresh token for Oauth integration with Snowflake for 90 days, the connection got expired and again asking to login?
I have MFA enabled in my Snowflake account and am using OAuth to connect from Tableau.
The issue is that the token expires after one day, requiring us to reauthenticate and approve MFA to reset the OAuth token. We cannot do this manually every few days.
I am trying to get my Tableau Pulse Metrics data using the REST api but I am getting only definition details and other details, but not getting the values. How to get the current value of the metric?
I am getting the details using the following apis:
GET {server}/api/-/pulse/metrics/{metric_id}
GET {server}/api/-/pulse/definitions/{definition_id}
But none of the response include the current value.
We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required Cookies
Always Active
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional Cookies
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising Cookies
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.