-
Notifications
You must be signed in to change notification settings - Fork 14k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SIP-51] Dashboard Level Access #10408
Comments
Issue-Label Bot is automatically applying the label Links: app homepage, dashboard and code for this bot. |
👍 |
@villebro the SIP we discussed |
This would be wonderful for my use-case as well |
+1 |
Cool! |
yes!! cool idea |
To comply with the current usage of Admin/Alpha/Gamma, I'd recommend only adding |
Would it make sense to consider automating creation of the datasource permissions while granting access to the dashboard. E.g. user will request the access to the tables that back the dashboard & owner will be able to grant / approve those with 1 click ? Creating dashboard permissions to the user opens up some edge-cases as there will be 2 ways to validate the access, access to dashboard that can change underlying sql & datasource access [ table, schema, database level]:
|
Hey @bkyryliuk I think that explore from dashboard should be available for only dashboard edit access permission and owners |
+1 |
Something to clarify here: what does happen when the user has access to the dashboard, but doesn't have access to the underlying datasets? If we assume that there's a need for people getting access to a dashboard, but not being able to explore the dataset(s), because say, there's some level of detail in the underlying dataset that the granter does not want to expose for some reason. We need to clarify the following topics:
|
Giving access to a specific dashboard can be sufficient enough for the user to view the dashboard without the complexicity of adding all underlying datasources 👍 🚀
|
Currently only owners + admins are able to edit dashboards. I'm interested in knowing whether the current view access and ownership controls are suffice in order to provide the "viewer" and "editor" functions? This seems like a far simpler approach as is consistent with the slice model and requires no code change. |
agree with @john-bodley proposal, it looks like current permission model supports this use case. |
I partially misspoke earlier, currently there are no access controls explicitly at the dashboard level, it's merely a series of rules. I do think the community needs to collectively decide whether security should be at i) the datasource level (either Superset datasource or the underlying database, schema, etc.), the ii) chart/dashboard level, or iii) a combination of both (i) and (ii). Currently it's (i) (for right or wrong) and aspects of dashboard level access could be achieved by row level access and/or dashboard specific Superset datasources. There is additional overhead with this approach, however it's simpler to grok, the access patterns are likely more secure (people could exploit dashboard level access controls), and doesn't require additional logic or development of request/approval/management flow. |
Hey @john-bodley just noticed this PR merged #11024 |
This Flag can be introduced at the global level for a default behaviour and at the dashboard level for overriding the default |
@amitmiran137 If users can switch this flag at the dashboard level, it means at least part of the system will contain dataset-based access control. Will dashboards with |
@ktmud The problem with option 2 : you want to give viewing access and not ownership for managing the dashboard How would you suggest to manage list of users have view access to a dashboard ? |
This will be a major turn off for any organization who needs dataset level access control. My 1) and 2) were not two options but two steps of one solution. Basically we keep current dataset level access control unchanged but add a new layer of dashboard access control. In terms of actual implementation, you could still leverage the existing RBAC by adding an
In short, I don't think an "access mode" switch is necessary, as current security model seems to already suffice in supporting the additional layer of role-based dashboard-level access control and the only extra work is adding a new There could be a toggle to allow pulling query results from controlled datasource even if users don't have direct access to datasource---but that has its own level of complexity and doesn't seem to be blocking us from implementing the basic dashboard-level access control. This is obviously a popular user demand and I'm all for addressing it, but let's make sure the final solution is as prudent as possible. |
How do we give access to external users via superset to view the dashboard without the localhost link. How do I make it a generic URL? |
Motivation
As a dashboard provider in an organization with many subgroups inside I need the ability manage user access to dashboards and different levels of permissions(read, write, granter, owner)
use cases
Therefore there is no way to manage dashboard access for specific dashboards for specific users
Sometimes there is PII on the dashboard itself like plain HTML text or an iframe so it still exposes sensitive data on the dashboard which is problematic to some of our clients
Proposed Change
By using the RBAC principle and linking roles directly to a dashboard we can enforce an additional layer on top of the existing access mechanism that will permit access to a dashboard if the user has access to any of the Dashboard roles
100% backward compatibility to the existing dashboard security mechanism which is based on datasets
roles linked to a dashboard would provide either read or edit access
development milestones
/explore_json
andAPI/v1/chart/data
to allow reading datasets only by have dashboard access for read-only purposeRejected Alternatives
LEVEL_ACCESS_MODE= //options 'Dashboard'/ 'Dataset'
this option doesn't allow both options to co-exist and prevents Dataset access based existing solution to use the new ability
none
The text was updated successfully, but these errors were encountered: