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

Keycloak permission manager #387

Merged
merged 15 commits into from
Jul 3, 2024
Merged

Keycloak permission manager #387

merged 15 commits into from
Jul 3, 2024

Conversation

leoraba
Copy link
Contributor

@leoraba leoraba commented Nov 24, 2023

fix #373
Integrate Keycloak as an Authorization Server.

changes:

  • Use the default Spring Security JwtAuthenticationProvider for JWT instead of DefaultTokenServices
  • Use a custom Auth provider(ApiKeyIntrospector) for ApiKeys
  • Maven dependencies updates(SpringBoot, Spring Cloud, Swagger, Spring Security Oauth2)
  • Removal of profile jwt as now JWT and ApiKeys auth configuration is already included in secure profile

- use a JWT decoder for testing
- Remove unused clases
- Remove JWT expired unit tests as validation is now implemented by Spring Security
@leoraba leoraba requested a review from joneubank November 24, 2023 20:37
UmmulkiramR pushed a commit that referenced this pull request Nov 27, 2023
 - auto sync storage profiles - #387
 - azure download fails - #385
 - keycloak permission manager- #373
UmmulkiramR added a commit that referenced this pull request Nov 27, 2023
* Readme updated

* mergeback for 5.9.1-SNAPSHOT

* updated readme copy

* updated readme copy

* Update README.md

Co-authored-by: Jon Eubank <joneubank@gmail.com>

* CORS configurations for score server allowing multiple origins at once - #367

* Organizing score-server application.yml

* docker JRE ireplacing JRE alpine image to support multiple architecturesmage multi arch supported

* latest ubuntu LTS 22.04 score client

* using JDK image as builder

* update docker dind (#376)

from docker image docker:18.06-dind to docker:20.10-dind

* fix docker dind TLS (#379)

* increase Jenkins timeout (#380)

from 30 to 45 mins

* Fix/jenkins extend timeout (#381)

* increase Jenkins timeout

from 30 to 45 mins

* increase Jenkins timeout

from 45 to 60 mins

* increase jenkins timeout

* update DeployWithHelm job name in Jenkinsfile (#383)

* fix for issue #385 (#386)

Co-authored-by: UmmulkiramR <urangwala@oicr.on.ca>

* Auto sync storage profiles #378 (#382)

* added server endpoint to get profiles

* change to switch score-client storage implementations

* cleared azure and s3 related entries app.yml

* some bug fixes and enhancements

* updated comment

* added test profile.

* added test profile.

* refactored code based on review comments - BaseController now returns a single profile value. The actual profile name and the profile value returned by the api are now different.

* debug logging removed

* replaced profile value

* updated readme

* updated readme

* added a test profile

* review changes
- Storage profile values now come from an enum in score-core
- test configuration created to mock storage profile bean
- users will be able to provide a default profile value when working with old score-server instances

* users will be able to provide a default profile value when working with old score-server instances

* config change

* added a test config in score server

---------

Co-authored-by: UmmulkiramR <urangwala@oicr.on.ca>

* rc release. Includes
 - auto sync storage profiles - #387
 - azure download fails - #385
 - fix in Jenkins to build the Score docker image to run on amd/arm architectures and updating score-client image to use latest LTS Ubuntu- #374 

---------

Co-authored-by: Mitchell Shiell <59712867+MitchellShiell@users.noreply.github.com>
Co-authored-by: dahiyaAD <adahiya@oicr.on.ca>
Co-authored-by: dahiyaAD <123118704+dahiyaAD@users.noreply.github.com>
Co-authored-by: Jon Eubank <joneubank@gmail.com>
Co-authored-by: Leonardo Rivera <leorivera_88@hotmail.com>
Co-authored-by: UmmulkiramR <urangwala@oicr.on.ca>
Copy link
Contributor

@joneubank joneubank left a comment

Choose a reason for hiding this comment

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

All the code looks great! Thanks for all the hard work updating versions adn getting security sorted.

I can't accept this without some amount of documentation included for how to switch security providers between Ego and Keycloak. Need to indicate how to configure Score to use each provider.

clientSecret: pass
# Define a valid auth provider: ego or keycloak
provider: ego
Copy link
Contributor

Choose a reason for hiding this comment

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

👍

@leoraba leoraba force-pushed the keycloak-permission-manager branch from 1bf8158 to cc5bc5d Compare January 16, 2024 19:47
@leoraba leoraba requested a review from joneubank July 2, 2024 18:03
@leoraba leoraba marked this pull request as draft July 2, 2024 18:38
@leoraba leoraba marked this pull request as ready for review July 3, 2024 11:45
@leoraba leoraba marked this pull request as draft July 3, 2024 11:48
@leoraba leoraba marked this pull request as ready for review July 3, 2024 14:27
@joneubank
Copy link
Contributor

Capturing need for documentation: #417

@leoraba leoraba merged commit f931ebe into develop Jul 3, 2024
2 checks passed
@leoraba leoraba deleted the keycloak-permission-manager branch July 3, 2024 18:22
leoraba added a commit that referenced this pull request Jul 4, 2024
* Keycloak permission manager (#387)

* enable Keycloak apiKeys

* setup security config and update mvn dependencies

* junit missing dependency

* unit test mock Jwt Decoder

* fix unit test

- use a JWT decoder for testing
- Remove unused clases
- Remove JWT expired unit tests as validation is now implemented by Spring Security

* code format

* test profile

* docker-compose update images

* add keycloak to docker compose

* fix merge conflict

* fix typo curl command

* update keycloak system client and apikeys

* version 5.11.0
leoraba added a commit that referenced this pull request Oct 9, 2024
* Versioning 5.10.1

* Rc/5.11.0 (#418)

* Keycloak permission manager (#387)

* enable Keycloak apiKeys

* setup security config and update mvn dependencies

* junit missing dependency

* unit test mock Jwt Decoder

* fix unit test

- use a JWT decoder for testing
- Remove unused clases
- Remove JWT expired unit tests as validation is now implemented by Spring Security

* code format

* test profile

* docker-compose update images

* add keycloak to docker compose

* fix merge conflict

* fix typo curl command

* update keycloak system client and apikeys

* version 5.11.0

---------

Co-authored-by: Jon Eubank <joneubank@gmail.com>
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 this pull request may close these issues.

Integrate Keycloak as an Authentication Authorization provider
2 participants