For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
GitHub
DocumentationREST API Reference
DocumentationREST API Reference
    • Home
  • Overview
    • What is NICo?
    • Key Capabilities
    • Operational Principles
    • Day 0 / Day 1 / Day 2 Lifecycle
    • Scope and Boundaries
  • Getting Started
    • Building NICo Containers
    • Quick Start Guide
  • Provisioning (Day 0 Operations)
    • Ingesting Hosts
    • Ingesting Hosts (REST API)
    • Host Validation
    • SKU Validation
  • DPU Management
    • DPU Lifecycle Management
    • DPU Configuration
    • BlueField DPU Operations
  • Configuration (Day 1 Operations)
    • Network Isolation
    • Tenant Management
    • Organization & Permissions
  • Architecture
    • Overview and Components
    • Redfish Workflow
    • Redfish Endpoints Reference
    • Reliable State Handling
    • Networking Integrations
    • Health Checks and Health Aggregation
    • Health Probe IDs
    • Health Alert Classifications
    • Key Group Synchronization
  • Operations
    • NVLink Partitioning
    • IP Resource Pools
    • BGP Peering
  • Playbooks
    • Azure OIDC for Infra Controller Web UI
    • Force Deleting and Rebuilding Hosts
    • Rebooting a Machine
    • InfiniBand Setup
  • Development
    • Codebase Overview
    • Bootable Artifacts
    • Local Development
    • Running a PXE Client in a VM
    • TLS and SPIFFE Certificates
    • SPIFFE and casbin policies with admin-cli
    • Re-creating Issuer/CA in Local Dev
    • Visual Studio Code Remote Development
    • Adding Support for New Hardware
    • Build Guide
  • Reference
    • Hardware Compatibility List
    • Release Notes
    • FAQs
    • Glossary
GitHub
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Manage My Privacy | Do Not Sell or Share My Data | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogo
On this page
  • Roles
  • Adding a User to a Tenant
  • Adding a Provider Admin
  • Verifying Your Identity
  • Listing Tenant Members
  • Removing a User
  • Day One User Setup Checklist
Configuration (Day 1 Operations)

Organization & Permissions

||View as Markdown|
Previous

Tenant Management

Next

Overview and Components

NICo does not maintain its own user directory. Identity, org membership, and role assignments are all managed in the upstream identity provider. The REST API reads role claims from the authentication token on every request. Adding or removing a user is done in the identity provider, not through nicocli.

NICo accepts tokens from any OIDC-compatible IdP. The bundled dev Keycloak (deployed by setup.sh and documented in the Quick Start Guide) is the recommended starting point and the reference implementation for IdP wiring — you can use it as-is for evaluation, or model your production IdP setup after it. Configure additional or replacement IdPs via the issuers block in carbide-rest-api’s config; see the Reference Installation guide for the configuration surface and the claim mappings NICo expects (org name, display name, role claim).

Roles

NICo’s authorization model has three roles, all managed in the upstream identity provider:

RoleScopeRequired For
Provider Admin (PROVIDER_ADMIN)Infrastructure provider orgCreating allocations, managing tenant accounts, managing sites and instance types
Provider Viewer (PROVIDER_VIEWER)Infrastructure provider orgRead-only access to provider-scoped resources
Tenant Admin (TENANT_ADMIN)Tenant orgManaging the tenant’s instances, VPCs, subnets, SSH keys

A single user can hold roles in multiple orgs simultaneously. On dev/service-account orgs, one user typically holds both Provider Admin and Tenant Admin in the same org.

Adding a User to a Tenant

  1. Add the user to the IdP organization (or group) that maps to the tenant.
  2. Assign the TENANT_ADMIN role at the org level.
  3. Have the user authenticate with nicocli and verify: nicocli user get

The exact steps depend on your IdP. For the bundled dev Keycloak, this is realm administration in the Keycloak admin console — create the user, add them to the realm group that maps to the tenant org, and assign the role. See the Quick Start Guide for the realm layout.

Adding a Provider Admin

  1. Add the user to the infrastructure provider’s IdP organization.
  2. Assign the PROVIDER_ADMIN role.
  3. Verify: nicocli user get

Same caveat as above — this is an IdP admin task, not a nicocli operation.

Verifying Your Identity

nicocli user get

Example response for a human user:

1{
2 "id": "<user-uuid>",
3 "email": "alex@acme-corp.com",
4 "firstName": "Alex",
5 "lastName": "Chen",
6 "created": "2026-04-23T00:54:27.452525Z",
7 "updated": "2026-05-15T17:25:23.884166Z"
8}

Service accounts have empty email/firstName/lastName. Human users have those populated from the IdP.

This endpoint does not return role information directly — roles are in the token and validated server-side. Confirm which roles you hold by attempting role-gated operations: nicocli allocation list requires Provider Admin; nicocli tenant get-current-tenant requires Tenant Admin.

If your deployment is configured for service-account auth, use nicocli service-account get to retrieve the current org’s service-account status, including the auto-created provider and tenant IDs.

Listing Tenant Members

NICo does not expose a “list users in this tenant” endpoint. Use the IdP’s admin console or API to view members and roles.

For audit purposes, NICo’s audit log records which user performed each operation:

nicocli tui
> audit list

Removing a User

Remove the role assignment (or org membership) in the identity provider. The change takes effect on the user’s next authentication attempt.

Day One User Setup Checklist

  1. Create the IdP organization (or group) for the tenant.
  2. Invite at least one user with TENANT_ADMIN so they can provision the tenant.
  3. Invite additional team members with appropriate roles.
  4. Verify from the tenant side: nicocli user get and nicocli tenant get-current-tenant.
  5. On the provider side, ensure at least one user holds PROVIDER_ADMIN.