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

feat: access control and user management with Keycloak #136

Merged
merged 42 commits into from
Oct 5, 2020

Conversation

MyleneSimon
Copy link
Collaborator

@MyleneSimon MyleneSimon commented May 20, 2020

What does this PR do?

Introduction of users in WIPP, access control and integration with Keycloak

Roadmap:

  • Integration with Keycloak, global security configuration
  • Supported roles: anonymous (read-only access to public resources), user and admin
  • Secure Data Repositories (GET)
  • Secure Data Repositories Event Handlers (POST, PUT, PATCH, DELETE)
  • Secure Custom Controllers
  • JUnit tests (WIP)
    • Data Repositories methods tests
  • ACL/auth documentation
  • Dev and Kubernetes configuration
    • Development instructions available in readme with sample realm
    • Single node testing Kubernetes deployment available in WIPP repo
  • Implement temporary download links for data download
  • Run WIPP and workflows as 1000:1000 instead of root
    • Bump Argo version to 2.4.3

Special considerations:

  • WorkflowExitController is not secured for now to allow for Argo to post workflow status without bearer token. Two solutions considered for next iteration:
  • WDZT is not handling auth tokens for now Fixed in [email protected]

MyleneSimon and others added 9 commits November 20, 2019 11:55
* fix for windows

* disable CORS for development purposes

* add dependencies and quick test configuration

* new security config. linked back-end and keycloak

* WIP commit for fix

* add security on CsvCollection

* update security on ImagesCollection. Add security for Image and MetadataFile

* add security on Pyramid and PyramidTimeSlice

* add security on StitchingVector and StitchingVectorTimeSlice

* add security on TensorboardLogs

* add security on TensorflowModel

* add security on Visualization

* update helper classes for security

* add security on Job

* add security on Workflow

* add helper classes for Security Core

* add security on Argo workflows

* update Keycloak configuration

* code cleanup & add dependency

* fix dependencies for merge

* restore workflow converter for merge

* windev not active by default

* remove useless annotation

* add boolean editMode

* final cleanuo
@MyleneSimon MyleneSimon added the feature New feature or request label May 20, 2020
@MyleneSimon MyleneSimon added this to the 3.0.0-RC1 milestone May 20, 2020
csvCollectionRepository.save(csvCollection);
@Override
public void importData(Job job, String outputName) throws JobExecutionException {
CsvCollection csvCollection = new CsvCollection(job, outputName);
Copy link
Collaborator

Choose a reason for hiding this comment

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

indentation

csvCollection.setOwner(job.getOwner());
// Set collection to private
csvCollection.setPubliclyShared(false);
csvCollectionRepository.save(csvCollection);
Copy link
Collaborator

Choose a reason for hiding this comment

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

indentation

@MyleneSimon MyleneSimon changed the title [WIP] feat: access control and user management with Keycloak feat: access control and user management with Keycloak Oct 5, 2020
@MyleneSimon MyleneSimon merged commit c6522d0 into develop Oct 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants