Skip to content
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

Extend the functionality of xpack.reporting.roles.allow option in kibana.yml #20982

Closed
Kvrepo opened this issue Jul 19, 2018 · 10 comments
Closed
Labels
(Deprecated) Feature:Reporting Use Reporting:Screenshot, Reporting:CSV, or Reporting:Framework instead enhancement New value added to drive a business result Feature:Reporting:Framework Reporting issues pertaining to the overall framework impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. loe:small Small Level of Effort needs-team Issues missing a team label

Comments

@Kvrepo
Copy link

Kvrepo commented Jul 19, 2018

Describe the feature:

As described in the documentation (https://www.elastic.co/guide/en/kibana/current/reporting-settings-kb.html#reporting-advanced-settings) with the xpack.reporting.roles.allow option the administrator can set which user roles can create reports.

I think it would be a nice to have feature to allow regexp like elements in this list. So instead of listing all the required roles here, one could use patterns to describe many.

Another nice to have feature would be to set a list of users who are not allowed to create reports.

Describe a specific use case for the feature:

Feature 1

In our case we have many different user roles, and we are probably going to create more in the future. Editing the kibana.yml each time that happens and restarting Kibana is a hassle.

Let's say we have the following roles: role1, role2, role3. (In our case each name follows a specific naming convention.)

Currently it looks like the following in the kibana.yml:

xpack.reporting.roles.allow: ["role1", "role2", "role3"]

If I want to create role4 and grant it the same privilege, now I have to edit the yml and restart Kibana. However if I would be able to use patterns, this could be avoided. I'm thinking about something like this:

xpack.reporting.roles.allow: ["^role.*"]

In this case a restart wouldn't be required, since it already applies to role4, too. In this case the users could also avoid calling for an administrator/developer to grant a user role this privilege each time they make one.

Feature 2

In our case we have more user roles which require this privilege than those which don't. So for our case it would be better to have a list of roles which are denied to use the reporting functionalities, instead of having a list of allowed roles.

Let's say we have role1, role2, role3, and we want role1 and role3 to be able to create reports, but not role2.

Now we have to set this up the following way:

xpack.reporting.roles.allow: ["role1", "role3"]

Instead of something like this:

xpack.reporting.roles.deny: ["role2"]

It would be really helpful in case of dealing with +20 roles.

@lukasolson lukasolson added :Sharing triage_needed (Deprecated) Feature:Reporting Use Reporting:Screenshot, Reporting:CSV, or Reporting:Framework instead labels Jul 24, 2018
@rayafratkina rayafratkina added the Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! label Aug 1, 2018
@rayafratkina
Copy link
Contributor

@kobelb can you comment if the RBAC will address this use case?

@kobelb
Copy link
Contributor

kobelb commented Aug 1, 2018

@rayafratkina it's not part of the initial scope for our RBAC implementation, but once granular application privileges are in-place we should consider expanding this to allowing Reporting to be driven by these custom privileges, as opposed to the kibana.yml approach.

@rayafratkina rayafratkina added enhancement New value added to drive a business result and removed triage_needed labels Aug 3, 2018
@timroes timroes added Team:Visualizations Visualization editors, elastic-charts and infrastructure and removed enhancement New value added to drive a business result Team:Visualizations Visualization editors, elastic-charts and infrastructure PR sent :Sharing labels Sep 13, 2018
@kobelb kobelb removed the Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! label Jun 19, 2019
@timroes timroes added Team:Stack Services and removed Team:Visualizations Visualization editors, elastic-charts and infrastructure labels Jul 18, 2019
@bmcconaghy bmcconaghy added Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) and removed Team:Stack Services labels Dec 12, 2019
@bmcconaghy bmcconaghy added Team:Reporting Services and removed Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) labels Dec 20, 2019
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-reporting-services (Team:Reporting Services)

@tsullivan
Copy link
Member

@kobelb it's been awhile since last touching on this, but can you give an update? I'm curious to know what kind of work has to be done on the Reporting side. It's something we want to get to (after NP migration)

@kobelb
Copy link
Contributor

kobelb commented Jan 16, 2020

@tsullivan, that is a great question...

The first decision that we'll want to make is whether or not it makes sense to treat Reporting as a top-level feature that is a sibling to all of the other top-level features:

Screen Shot 2020-01-16 at 11 04 07 AM

Or whether it makes sense for us to treat Reporting as a sub-feature of the other top-level features, like Dashboards:

Screen Shot 2020-01-16 at 11 06 40 AM

If we want Reporting to be a sub-feature, we'll have to wait on #35616 to be implemented.

After making the top-level feature vs sub-feature decision and assuming we want to implement this in a minor version, we can take advantage of #42470 so that we don't grant users access to Reporting that don't already have access to Reporting. This will allow users to begin to grant access to Reporting using Kibana Privileges.

We'll then want to modify the authorization which is done by the Reporting routes to first check to see whether the user is authorized based on Kibana Privileges, and if they aren't fall-back to using the existing authorization logic and log a warning that we're relying on a setting which is deprecated and will be removed in the next major version of Kibana.

@tsullivan
Copy link
Member

I love the mockups! It helps really crystallize this future improvement.

I am fairly certain Reporting will be a sub-feature of apps, as Reporting team is positioning itself as a service for other apps to expand their functionality.

Your point about keeping existing logic, and logging it as deprecated, until the next major version gives my team a lot to think about on what we'll deliver in each minor release until.... 8.0? That seems so soon!

@tsullivan
Copy link
Member

@kobelb another question, does this issue interdepend on #21689 ?

@kobelb
Copy link
Contributor

kobelb commented Jan 21, 2020

@kobelb another question, does this issue interdepend on #21689 ?

Nope, it doesn't have to.

@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-app-services (Team:AppServices)

@tsullivan
Copy link
Member

In 7.14, Reporting access control will be driven by custom permissions: #94966

@exalate-issue-sync exalate-issue-sync bot added impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. loe:small Small Level of Effort labels May 13, 2021
@sophiec20 sophiec20 added the Feature:Reporting:Framework Reporting issues pertaining to the overall framework label Aug 21, 2024
@botelastic botelastic bot added the needs-team Issues missing a team label label Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
(Deprecated) Feature:Reporting Use Reporting:Screenshot, Reporting:CSV, or Reporting:Framework instead enhancement New value added to drive a business result Feature:Reporting:Framework Reporting issues pertaining to the overall framework impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. loe:small Small Level of Effort needs-team Issues missing a team label
Projects
None yet
Development

No branches or pull requests

10 participants