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

Feature Request / Proposal: Implement TeamWhiteList functionality for generic OIDC provider #589

Open
maederm opened this issue Feb 11, 2025 · 0 comments

Comments

@maederm
Copy link

maederm commented Feb 11, 2025

Proposal

We have an internal OIDC provider that is able to send all groups of a user as a parameter in UserInfo. Vouch-Proxy should be able to check if the user is a member of a specific group and allow or deny access based on membership.

New fields added to configuration

TeamWhiteListClaim in oauthConfig. This is the parameter of UserInfo that contains an array of strings.

New behavior

If TeamWhiteList and TeamWhiteListClaim are set and the configured provider is oidc, vouch-proxy adds all intersecting teams to the users TeamMemberships attribute. It then uses the existing TeamMemberships logic to allow or deny access.

Use Case

I want to allow access to my service based on group membership instead of configuring individual users in my vouch-proxy config file.
I can't modify the application and still prefer to use Nginx as a webserver. I could implement it using NJS, but I don't want to add more complexity to the Nginx configuration.

Additional context

I implemented this feature based on the GitHub TeamWhiteList feature here: https://github.com/vouch/vouch-proxy/compare/master...maederm:vouch-proxy:oidc-teamwhitelist-support?expand=1
I'd open a pull request if this proposal gets accepted and I can also add tests if needed.

Limitations

  • Scope that contains the claim referred in TeamWhiteListClaim needs to be added to scopes key. This will likely increase the size of the JWT and headers.
  • This proposal only enhances the oidc provider. It doesn't implement a generic RBAC feature.
  • I used the Team terminology to share the names with the GitHub feature and not having to re-implement team matching logic.
  • The OIDC provider must deliver the Claim in the expected format (array of strings)

Related issues

#419 (oidc feature only), #175 (Generic RBAC feature)

@maederm maederm changed the title Feature Request / Proposal: Implement TeamWhiteList functionality for generic OIDCs provider Feature Request / Proposal: Implement TeamWhiteList functionality for generic OIDC provider Feb 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant