overture-stack / ego

OAuth 2.0 authorization service that supports multiple OpenID identity providers
https://www.overture.bio/products/ego
GNU Affero General Public License v3.0
26 stars 14 forks source link
authentication hacktoberfest permission-manager

Ego - Authentication and Authorization Microservice

ego-logo

Biomedical data requires secure protocols for authenticating users and authorizing the information and applications those users can access. Ego addresses this by facilitating user registration and providing a secure permission management system. An Ego UI was also developed to make these services accessible to all collaborators.


Ego is a core component within the Overture research software ecosystem. Overture is a toolkit of modular software components made to build into scalable genomics data management systems. See our related products for more information on what Overture can offer.

Technical Specifications

Documentation

Docker Setup

This is a step-by-step guide for setting up a dockerized version of Ego.

  1. Set up a google oauth client app. See here for more details
  1. Clone or Download the repository and update the docker-compose-all.yml file with your client id and secret
spring.security.oauth2.client.registration.google.clientId : "<insert-provided-client-Id>"
spring.security.oauth2.client.registration.google.clientSecret: "<insert-provided-clientSecret>"
  1. Open Docker desktop and then run the following command from your CLI
docker-compose -f docker-compose-all.yml up 
  1. Ego requires seed data to authorize the Ego UI as a client using the following command

Alternatively if you have Make installed you can run make init-db

docker exec ego-postgres-1  psql -h localhost -p 5432 -U postgres -d ego --command "INSERT INTO EGOAPPLICATION (name, clientId, clientSecret, redirectUri, description, status, errorredirecturi) VALUES ('ego ui', 'ego-ui', 'secret', 'http://localhost:8080/', '...', 'APPROVED', 'http://localhost:8080/error') on conflict do nothing"
  1. You can now access the Ego UI through http://localhost:8080/ego-ui
    • This will require your google sign in
    • Once signed in you will have access to the admin dashboard
    • The Ego swagger ui can be located at http://localhost:8080/swagger-ui.html

Support & Contributions

Related Products

Overture overview

Overture is an ecosystem of research software tools, each with narrow responsibilities, designed to address the adapting needs of genomics research.

The Overture Data Management System (DMS) is a fully functional and customizable data portal built from a packaged collection of Overture's microservices. For more information on DMS, read our DMS documentation.

See the links below for additional information on our other research software tools:


Software Description
Ego An authorization and user management service
Ego UI A UI for managing Ego authentication and authorization services
Score Transfer data to and from any cloud-based storage system
Song Catalog and manage metadata associated to file data spread across cloud storage systems
Maestro Organizing your distributed data into a centralized Elasticsearch index
Arranger A search API with reusable UI components that build into configurable and functional data portals
Stage A simple web browser UI that integrates Ego and Arranger