πŸ›‘ Authentication & Identity Management in OpenCHAMI

πŸ“Œ Overview

OpenCHAMI enforces a modern authentication model designed to replace traditional SSH keys and password-based authentication with a secure, scalable, and identity-driven access system. This page explains how OpenCHAMI implements OIDC-based authentication, role-based access control (RBAC), and machine identity verification to ensure secure access.


1️⃣ Authentication in OpenCHAMI

OpenID Connect (OIDC) & JWT-Based Authentication

Sites generally have their own way of managing sysadmin and user identity. OpenCHAMI leverages existing authentication through OpenID Connect (OIDC) for identity management, allowing seamless integration with existing authentication providers such as:

  • πŸ” LDAP (Lightweight Directory Access Protocol)
  • πŸ” Keycloak (Self-hosted identity provider)
  • πŸ” Okta, GitHub, or institutional SSO providers

When a user or service authenticates with OpenCHAMI:

  1. They are redirected to an OIDC provider for authentication.
  2. Once authenticated, the provider issues a JWT (JSON Web Token).
  3. OpenCHAMI validates the JWT and extracts identity and role information.
  4. The user/service gains access only to authorized resources based on their role.

πŸ”§ Why OpenCHAMI Uses OIDC & JWT

βœ… Stateless Authentication – No need to store session data; tokens are self-contained.
βœ… Interoperability – Works with many enterprise identity providers.
βœ… Fine-Grained Access Control – JWT claims can define user roles and permissions.
βœ… Short-Lived Credentials – Prevents long-lived access tokens from being exploited.


2️⃣ Role-Based Access Control (RBAC)

RBAC ensures that users, services, and nodes only have the minimum necessary privileges in OpenCHAMI.

πŸ”Ή Default Roles in OpenCHAMI

RoleDescription
AdminFull control over OpenCHAMI services, configurations, and security policies.
OperatorCan manage clusters, nodes, and jobs but cannot modify security settings.
SchedulerHeadless accounts with permissions necessary for Job Management
UserCan submit and monitor jobs but cannot modify system settings.
ServiceHeadless accounts for system components interacting with OpenCHAMI APIs.

Administrators can customize roles and permissions using OIDC group mappings.

πŸ” How RBAC Works

  1. A user logs in via OIDC authentication.
  2. The JWT includes role claims (e.g., "role": "operator").
  3. OpenCHAMI validates the role and grants only the necessary access.
  4. Actions are restricted based on the user’s role.

3️⃣ Machine-Based Authentication

Traditional HPC systems authenticate users, not machinesβ€”leaving system provisioning vulnerable to stolen credentials and misconfigurations.

OpenCHAMI flips this model, requiring nodes to authenticate themselves before bootstrapping. This is achieved through:

  • WireGuard-based node identity verification (covered in the next section).
  • Future TPM-based machine attestation to cryptographically verify hardware integrity.

πŸ”Ή Why Machine-Based Authentication?

βœ… No embedded SSH keys β†’ Eliminates pre-installed secrets in system images.
βœ… Node-specific identity β†’ Each node has a unique authentication key.
βœ… Stronger security guarantees β†’ Prevents unauthorized machines from joining clusters.


4️⃣ Token Management in OpenCHAMI

OpenCHAMI does not rely on persistent authentication. Instead, it enforces:

  • Short-lived JWTs for all users and services.
  • Refresh tokens that expire after a predefined period.
  • Automated token revocation upon session logout or security policy changes.

Admins can integrate multi-factor authentication (MFA) for an additional layer of security.


πŸ“Œ Next Steps