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

Add auth field to dashboard specification #71

Merged
merged 5 commits into from
Jan 19, 2021
Merged

Conversation

philippjfr
Copy link
Member

@philippjfr philippjfr commented Jan 19, 2021

Adds an auth key to the dashboard specification which is checked against the user_info provided by the auth provider configured when launching the server. As an example the GitHub OAuth provider returns the login of the user that is visiting the dashboard. If we add the following field to the yaml:

auth:
  login: [philippjfr]

It will check the current user against all users listed here. For a more generic auth mechanism auth providers such as Okta make it possible to return a list of groups a user belongs to in which case you could list the allowed groups to the auth field.

An unauthorized user will see this:

Screen Shot 2021-01-19 at 6 14 55 PM

An authorized user will see:

Screen Shot 2021-01-19 at 6 43 19 PM

@philippjfr
Copy link
Member Author

@jbednar In case you have opinions. Should a (unauthorized) user be able to see their own auth information? Secondly, should a unauthorized user be able to see the specific auth fields that didn't match?

@philippjfr philippjfr merged commit e12241a into master Jan 19, 2021
@jbednar
Copy link
Member

jbednar commented Jan 19, 2021

An authorized user will see:

In most websites it just shows the username, not "User: ", presumably because a user's username is generally very recognizable as their own username, so it's not ambiguous.

Should a (unauthorized) user be able to see their own auth information? Secondly, should a unauthorized user be able to see the specific auth fields that didn't match?

Nowadays it seems like the world has decided to reveal as little information as possible, generally not even acknowledging that an unauthorized resource exists. I assume that's to stop leaking information that helps an attacker, but personally I find it maddening for a legitimate user who is blocked for technical reasons, as it makes debugging your setup very difficult. In this case there's clearly some leakage of the title of the dashboard, which one could imagine being sensitive (E.g. "Reasons why we need to put our competitor out of business"). But if we assume a dashboard it meant to be secure mainly inside an organization's firewall, maybe leaking that isn't so important. In any case we should probably not go out of our way to list other data that could help an attacker.

@github-actions
Copy link

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants