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

Authentication and Authorization for feast serving #823

Closed
jmelinav opened this issue Jun 23, 2020 · 5 comments · Fixed by #865
Closed

Authentication and Authorization for feast serving #823

jmelinav opened this issue Jun 23, 2020 · 5 comments · Fixed by #865

Comments

@jmelinav
Copy link
Collaborator

Is your feature request related to a problem? Please describe.
Currently user authentication and authorization limits access to Feast core(#793 ), but doesn't secure feast serving. Since feast client connects to core and serving directly, authentication and authorization on feast serving is a necessary feature.
Describe the solution you'd like
The PR #793, implements jwt authenticator and Keto authorizer for feast core. Same implementation will be done on the feast serving. Instead of replicating the code, Authorization and authentication will be moved separate module feast-auth, which will be included as a dependency in feast core and feast serving. Rest of the configuration will remain same as described in the documentation for #793. Python sdk will be updated to use secure channel to connect to feast serving.

Assumptions:

  • User authentication and authorization only applies to Feast Core and serving not ingestion.

Out of scope:

  • Go and java clients.

Describe alternatives you've considered
Refer to issue #793 for the alternatives considered.

@jmelinav
Copy link
Collaborator Author

As part of this, I will be moving the below files into feast-auth package,
/src/main/java/feast/core/config/SecurityConfig.java
/src/main/java/feast/core/auth/authentication/DefaultJwtAuthenticationProvider.java
/src/main/java/feast/core/auth/authorization/AuthorizationProvider.java
/src/main/java/feast/core/auth/authorization/AuthorizationResult.java
/src/main/java/feast/core/auth/authorization/Keto/KetoAuthorizationProvider.java
SecurityProperties class which is in /src/main/java/feast/core/config/FeastProperties.java

Also I feel the generic validators can be moved to the feast-common package since it is used in core, will be used in auth and may be useful in other modules too. So for now I will move src/main/java/feast/core/validators/OneOfStrings.java validator into feast-common. Let me know your thoughts. I will update the list if I come across other files that needs to be moved.

@woop
Copy link
Member

woop commented Jun 25, 2020

Sounds good. I think it would be easier to evaluate this refactor once you have submitted a PR, but the idea seems fine.

@mrzzy
Copy link
Collaborator

mrzzy commented Jul 8, 2020

Working on getting Authentication (only) working on Feast Serving.

@jmelinav
Copy link
Collaborator Author

jmelinav commented Jul 8, 2020

Working on getting Authentication (only) working on Feast Serving.

@mrzzy I'm almost ready with for the PR for authentication. I'm working on authorization in the same PR. I will create a wip PR.

@woop
Copy link
Member

woop commented Jul 8, 2020

@jmelinav also not the changes here #864

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

Successfully merging a pull request may close this issue.

3 participants