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

[Security-in-core] First-class route authorization #184674

Open
Tracked by #174578
legrego opened this issue Jun 3, 2024 · 6 comments
Open
Tracked by #174578

[Security-in-core] First-class route authorization #184674

legrego opened this issue Jun 3, 2024 · 6 comments
Assignees
Labels
enhancement New value added to drive a business result Feature:Hardening Harding of Kibana from a security perspective Feature:Security/Authorization Platform Security - Authorization Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more!

Comments

@legrego
Copy link
Member

legrego commented Jun 3, 2024

Our route authorization feature is not very discoverable today. Engineers have to know:

  1. That authorization is something they need to know about
  2. When to add authorization to a route
  3. How to add authorization to a route (i.e., the cryptic access: tags)

I'd like to propose adding first-class support for route authorization, by exposing an additional set of properties within the route definition. These properties should:

  1. Make it clear when routes are opted in/out of authorization
  2. Which privileges are required to invoke the route
  3. When applicable, describe why a route does not require authorization
  4. Provide a mechanism for us to gain visibility into the authorization status of each route

In addition to the security benefits, I wonder if there is an opportunity to expose this information via OAS as well. Having our specification describe the required privileges would be a great DX win, in my opinion.

@legrego legrego added Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! enhancement New value added to drive a business result labels Jun 3, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-core (Team:Core)

@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-security (Team:Security)

@legrego legrego added Feature:Security/Authorization Platform Security - Authorization Feature:Hardening Harding of Kibana from a security perspective labels Jun 4, 2024
@pgayvallet
Copy link
Contributor

I'm strongly in favor of this proposal, it would be way better than the current (hacky) way we're doing this with tags in numerous ways, and would be a great step for our security-in-core initiative.

I wonder if there is an opportunity to expose this information via OAS as well. Having our specification describe the required privileges would be a great DX win, in my opinion.

I'm not sure OAS specs have anything directly related to authorization. cc @jloleysens maybe you know better?

@jloleysens
Copy link
Contributor

It is possible to represent some amount of security information at the route (or "operation") level (docs). But I'm guessing we want to capture some information about

"you need roles x:read, y:write and z:admin to access this route."

Which is ES/Kibana specific info. I think this could be auto-appended to route description (under description).

@pgayvallet
Copy link
Contributor

Yeah, my gut feeling was that we would only be able to append something to the description, thanks for confirming.

@elena-shostak elena-shostak self-assigned this Jul 10, 2024
semd added a commit that referenced this issue Oct 31, 2024
…equiredPrivileges` for the API auth control (#198312)

## Summary

Adds support for the new API routes security authorization properties
([docs](https://docs.elastic.dev/kibana-dev-docs/key-concepts/security-api-authorization))
to the `ProductFeaturesService` API authorization control

Closes: #194445

Related: #184674

---------

Co-authored-by: Elastic Machine <[email protected]>
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Oct 31, 2024
…equiredPrivileges` for the API auth control (elastic#198312)

## Summary

Adds support for the new API routes security authorization properties
([docs](https://docs.elastic.dev/kibana-dev-docs/key-concepts/security-api-authorization))
to the `ProductFeaturesService` API authorization control

Closes: elastic#194445

Related: elastic#184674

---------

Co-authored-by: Elastic Machine <[email protected]>
(cherry picked from commit 42e978b)
nreese pushed a commit to nreese/kibana that referenced this issue Nov 1, 2024
…equiredPrivileges` for the API auth control (elastic#198312)

## Summary

Adds support for the new API routes security authorization properties
([docs](https://docs.elastic.dev/kibana-dev-docs/key-concepts/security-api-authorization))
to the `ProductFeaturesService` API authorization control

Closes: elastic#194445

Related: elastic#184674

---------

Co-authored-by: Elastic Machine <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New value added to drive a business result Feature:Hardening Harding of Kibana from a security perspective Feature:Security/Authorization Platform Security - Authorization Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more!
Projects
None yet
Development

No branches or pull requests

5 participants