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

control-service: add kerberos auth provider #755

Merged
merged 8 commits into from
Mar 11, 2022

Conversation

mrMoZ1
Copy link
Contributor

@mrMoZ1 mrMoZ1 commented Mar 7, 2022

what: Added a new AuthProviderConfig which should work with kerberos.

why: users requested Kerberos authentication in parallel with OAuth2

todo: Expose configuration properties against env variables/helm charts
we need to decide which ones to expose and on default values.

testing: Locally ran control service, made sure enable/disable flag works.
Ran requests on a locally running instance. Verified that: both OAuth2 and
SPNEGO filters are used when making requests and that users can authenticate
with either OAuth2 or Kerberos credentials. Requests were made with an
authenticated vdkcli:
vdk execute --list -t supercollider -n job -u http://localhost:8092
and with a curl command for the kerberos authentication:
curl -vvv --negotiate -u : "http://localhost:8092/data-jobs/for-team/supercollider/jobs/smoke-test/executions"

Signed-off-by: Momchil Zhivkov [email protected]

Signed-off-by: mrMoZ1 <[email protected]>
@mrMoZ1 mrMoZ1 changed the title add kerberos auth control-service: [draft] add kerberos auth Mar 7, 2022
Signed-off-by: mrMoZ1 <[email protected]>
@antoniivanov
Copy link
Collaborator

Can you provide a bit more details around testing done
"When making a request it is evident that the spnego filter is used:" ... What was the request - did you use vdk cli (with kerberos / properties) or curl (curl --negotiate -u : ) ?

How did you verify the authentication passes successfully ?

mrMoZ1 added 2 commits March 9, 2022 17:49
Signed-off-by: mrMoZ1 <[email protected]>
Signed-off-by: mrMoZ1 <[email protected]>
@mrMoZ1 mrMoZ1 changed the title control-service: [draft] add kerberos auth control-service: add kerberos auth provider Mar 10, 2022
Signed-off-by: mrMoZ1 <[email protected]>
Signed-off-by: mrMoZ1 <[email protected]>
Copy link
Collaborator

@antoniivanov antoniivanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. I made some minor comment you should look.
But I am ok with merging it.

Signed-off-by: mrMoZ1 <[email protected]>
@mrMoZ1 mrMoZ1 enabled auto-merge (squash) March 11, 2022 11:58
@mrMoZ1 mrMoZ1 merged commit 105a89c into main Mar 11, 2022
@mrMoZ1 mrMoZ1 deleted the person/mzhivkov/kerberos-auth branch March 11, 2022 12:21
ivakoleva added a commit that referenced this pull request Mar 21, 2022
* [helm-chart]: add kerberos auth properties to helm chart

what: Added new properties to the helm chart as requested here:
#755 (comment)
The new properties expose kerberos authentication configuration properties
in the helm chart which are propagated to control-service.

why: We are introducing a new KerberosAuthProvider in control-service
and we need to expose configuration properties through the helm chart.

testing: Deployed on local minikube cluster. Made sure secret is created
and populated with correct files. Inspected control-service pods, made sure
the new env variables are present and that secrets exist.

Signed-off-by: Momchil Zhivkov [email protected]

Co-authored-by: ivakoleva <[email protected]>
ivakoleva pushed a commit that referenced this pull request Mar 22, 2022
control-service: add OAuth2 enable/disable flag 

why: As a part of #755 we introduced a new authentication method.
This change adds another flag which disables/enables OAuth2 authentication
as requested here: #755 (comment)
This pull request should be reviewed after #755 is.

what: Added a new property and logic that adds OAuth2 to the control-service security filters if enabled.
OAuth2 is enabled by default - this setting shouldn't introduce any regressions to other existing code.
Security is disabled by default still.

testing: On a locally running control-service made sure that endpoints are secure
and proper filters where invoked when calling with and without an authenticated OAuth2 client through vdkcli:
vdk execute --list -t supercollider -n job -u http://localhost:8092

Signed-off-by: mrMoZ1 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants