We are planning to embed the QuickSight Dashboard within a website. We would like to know how to pass parameters from the Website to QuickSight Dashboard. For example, user names, experiment identifiers from the website to dashboard to filter the information.
Will the users need to be authenticated when accessing the dashboard? If they are, then you can firstly setup Row Level Security at the dataset level such that the users who are logging in will only see the data that they are allowed to see.
Now, the question is how do we establish a SSO experience with your website and the dashboard.
OIDC/SAML based SSO providers can be mapped into IAM as an Identity Provider.
You can refer to this user-based-embedding workshop (https://learnquicksight.workshop.aws/en/user-based-embedding.html) to understand the embedding framework which also includes the cloud formation template if you want to quickly spin it up. The workshop is using Amazon Cognito to authenticate the user but that’s the general flow and framework on how you would embed dashboards in your website.
Thank you seinchyi for your response. The website already authenticates the user using Cognito, we are going to have a separate tab in the website with the quick sight dashboard embedded in it and the user should able to see the data specific to an entity of interest (In this case, the entity is a specific experiment)
When you know the user identity in the parent page/application, easiest option is to construct the QuickSight UserArn and invoke generate-embed-url-for-registered-user passing in that UserArn. (assuming you registered the user in QuickSight as part of creating the user profile in parent application; For existing users, a one time load will be needed). The workshop link that SeinChyi provided uses the above mentioned API. Take a look at the lambda function code therein for reference on how to use this API and then make that call from your current website backend code.
Also, here’s a link to a live sample that covers Row Level Security.
@Vivek_Balasubramania Were you able to pass the parameters from parent website to the quicksight dashboard for filtering the information? If so, can you share how did you achieve it with some references? @ArunSanthosh Can I pass parameters other than user related data? I would like to pass some high level filters for the data so that the dashboards are personalized to the users.
Yes. You can pass parameter values for personalizing dashboards. (Note that this would just set the initial view of the dashboards and users will be able to change filters to other values. So, passing parameters shouldn’t be considered as replacement for security)
Here are the doc links that provide further info on passing parameters.
1. Passing parameters in url.
2. Passing parameters while embedding. (See Configure embedding section for sample.)