How to filter graph data based on a user attribute

I would like to publish my Kibana dashboard to the end-users and have them see the visualizations based on their data. I was thinking about adding a filter to the visualization based on some user attribute (e.g specific SAML claim). Because of the number of users, it's not feasible to build a dashboard per user.

I was wondering if such a use-case would be possible with the Elastic Stack.

Hey @mallali, for a user to use a Dashboard they need "Elasticsearch privileges" to read from the indices which contain the data represented in the various visualizations; and they need "Kibana privileges" to access the Dashboard application and the Dashboards themselves.

Are you intending to limit the data which shows up within the Dashboard's visualizations, saved-searches, etc.? If so, when you're creating a custom role you can create give them Elasticsearch privileges so they're only able to see data in a subset of the indices, or even use DLS

Hi Brandon, thanks for the reply. That sounds promising.
Do you mean that I need to assign a custom role to every user, so that the visualizations are updated according to their data?
How can the lookup field from the index be coupled to a user attribute (a claim attribute from the SAML from example)?
By the way, I don't know all the users in advance. I plan to use an external identity provider such as ADFS.

Using document level security, you can template a role query based on the attributes of the currently authenticated user. This will prevent you from having to create roles for all of these situations.

Elasticsearch supports SSO using OpenID Connect and SAML, which should both work with ADFS.

Thanks again Brandon :+1:t2: . Templating role query in combination with the _user.metadata seems indeed the solution. I will give it a try.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.