Apache Airavata Custos Security

Clone this repo:
  1. 6cd5f3c AIRAVATA-3972: fix malformed JSON in Vault local config by jayvenn21 · 2 weeks ago master
  2. a0d55a9 add Ansible playbook for linux node enrollment with COmanage LDAP and CILogon device-flow SSH auth by lahiruj · 2 weeks ago
  3. 43f2f89 automate CILogon IDP configuration with ciLogon.enabled flag for super-tenant bootstrap and child tenant activation by lahiruj · 3 weeks ago
  4. 2b3b7e4 secure super-tenant bootstrap with ApplicationRunner, changes to credential store, add client config DTO and tests by lahiruj · 3 weeks ago
  5. 95d1e75 refactoring directories/modules into relevant components by lahiruj · 4 weeks ago

Apache Airavata Custos

License GitHub closed pull requests Build Status

Custos is a multi-tenant security middleware for science gateways, developed under the Apache Airavata umbrella. It provides identity and access management, credential storage, federated authentication, and resource allocation services to science gateway frameworks through a language-independent API. Custos is designed as a set of composable product components that can be deployed independently or together, built on a scalable architecture to deliver highly available, fault-tolerant operations.

Project website

Components

Identity Server (identity/)

The Identity Server is the core IAM component of Custos. It handles user identity and access management, tenant profile management, resource secrets management, and groups and sharing management. Built with Java 17 and Spring Boot, it integrates with Keycloak for federated authentication, HashiCorp Vault for secrets management, and MariaDB for persistence.

ModuleDescription
identity/coreDomain entities, repositories, protobuf definitions, mappers
identity/servicesBusiness logic, Keycloak and Vault integrations
identity/apiREST API controllers
identity/applicationSpring Boot entry point

See identity/README.md for setup and development instructions.

Allocations (allocations/)

The Allocations component provides meta-allocation authority services for HPC and cloud resources. It acts as a bridge between Custos-managed tenants and external resource allocation providers.

ModuleDescription
allocations/access-ci-serviceACCESS CI AMIE packet adapter

Additional allocation adapters for other resource providers are planned. See allocations/README.md for details as they become available.

Repository Layout

airavata-custos/
├── identity/          # Identity Server
├── allocations/       # Allocation management and usage
├── compose/           # Docker Compose for local development
├── deployment/        # Terraform configurations (AWS)
├── legacy/            # Archived modules (not actively maintained)
└── pom.xml            # Root Maven reactor

Prerequisites

  • Java 17
  • Maven 3.6+
  • Docker and Docker Compose

Quick Start

Clone the repository:

git clone https://github.com/apache/airavata-custos.git
cd airavata-custos

Start the backing services (Keycloak, MariaDB, Vault, Adminer):

cd compose
docker compose up -d

Build all components:

mvn clean install

Refer to each component's README for detailed configuration and run instructions.

Questions or Need Help?

  • Open a GitHub issue
  • Subscribe to the Custos mailing list: custos-subscribe@airavata.apache.org

Publications

@inproceedings{10.1145/3311790.3396635,
author = {Ranawaka, Isuru and Marru, Suresh and Graham, Juleen and Bisht, Aarushi and Basney, Jim and Fleury, Terry and Gaynor, Jeff and Wannipurage, Dimuthu and Christie, Marcus and Mahmoud, Alexandru and Afgan, Enis and Pierce, Marlon},
title = {Custos: Security Middleware for Science Gateways},
year = {2020},
isbn = {9781450366892},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3311790.3396635},
doi = {10.1145/3311790.3396635},
booktitle = {Practice and Experience in Advanced Research Computing},
pages = {278–284},
numpages = {7},
location = {Portland, OR, USA},
series = {PEARC '20}
}
@inproceedings{10.1145/3491418.3535177,
author = {Ranawaka, Isuru and Goonasekara, Nuwan and Afgan, Enis and Basney, Jim and Marru, Suresh and Pierce, Marlon},
title = {Custos Secrets: A Service for Managing User-Provided Resource Credential Secrets for Science Gateways},
year = {2022},
isbn = {9781450391610},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3491418.3535177},
doi = {10.1145/3491418.3535177},
booktitle = {Practice and Experience in Advanced Research Computing},
articleno = {40},
numpages = {4},
location = {Boston, MA, USA},
series = {PEARC '22}
}

Acknowledgment

This project is funded by the National Science Foundation (NSF).

We are grateful to Trusted CI for conducting the First Principles Vulnerability Assessment (FPVA) for this software and providing security architecture guidance and improvements.