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

Collect usage data on proxy-based authentication mechanisms #117517

Closed
legrego opened this issue Nov 4, 2021 · 1 comment · Fixed by #129302
Closed

Collect usage data on proxy-based authentication mechanisms #117517

legrego opened this issue Nov 4, 2021 · 1 comment · Fixed by #129302
Assignees
Labels
Feature:Telemetry impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. loe:medium Medium Level of Effort Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more!

Comments

@legrego
Copy link
Member

legrego commented Nov 4, 2021

Most users who run with security enabled login using Kibana's built-in login flows, for both internal and external authentication realms.

Some setups are a bit more esoteric. Users with unique auth needs will sometimes place a reverse-proxy in front of Kibana, and have the proxy pass an Authorization header to Kibana. This will cause us to bypass the login form altogether.

Users authenticating via an Authorization header lack the following features:

  • Session management (login, logout, session idle timeout, session lifespan)
  • Access agreement

As we build more features on top of user sessions, it is becoming increasingly important to understand when human users have authenticated to Kibana in this way. We should collect usage data to record:

  • How often an interactive/human users authenticate in this manner
  • Which authentication scheme is used (e.g. basic, bearer, ApiKey, etc.)

Note that we do not need to record machine/API access. We should only record this information when Kibana is loaded in a browser for interactive use.


High-level thoughts:

  1. Determine if the user is within an "interactive session". In other words, we want to ensure that this is not programmatic/API access. This can be accomplished simply by running code in the client-side security plugin, as this will never be executed by a conventional API call.
  2. If an interactive session is detected, then we want to record the following from the AuthenticatedUser model:
    • authentication_realm.type
    • lookup_realm.type
    • authentication_provider.type
    • authentication_type
  3. We should make every effort to not over-record this information. While these users don't have a real Kibana session, we should explore other means of detecting a session, such as sessionStorage, so that we do not record this information too frequently.
@legrego legrego added Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! Feature:Telemetry labels Nov 4, 2021
@elasticmachine
Copy link
Contributor

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

@exalate-issue-sync exalate-issue-sync bot added impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. loe:small Small Level of Effort labels Nov 4, 2021
@legrego legrego added loe:medium Medium Level of Effort and removed loe:small Small Level of Effort labels Nov 8, 2021
@XavierM XavierM self-assigned this Nov 16, 2021
@exalate-issue-sync exalate-issue-sync bot added impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. and removed impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. labels Mar 2, 2022
@legrego legrego assigned azasypkin and unassigned XavierM Mar 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Telemetry impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. loe:medium Medium Level of Effort Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more!
Projects
None yet
4 participants