Access Requirements
Security Policies configuration requires Organization Admin or Global Admin role.
Overview
Zitadel is a self-hosted identity platform that provides:- OIDC Authentication: Single Sign-On for users
- Group Synchronization: Automatic role mapping from Zitadel to Nexus Access Vault
- User Management: Centralized user directory
Creating a Configuration
Step 1: Open Configuration Dialog
- Click Nueva Configuración button
- Configuration dialog opens
Step 2: Basic Settings
Fill in the required fields:Name
- Example: “Zitadel Producción”
- Purpose: Identify this configuration
Issuer URL
- Format:
https://your-zitadel-instance.com - Example:
https://gate.kappa4.com - Note: Trailing slash is automatically removed
The Issuer URL must be accessible from your deployment. Test connectivity before proceeding.
Step 3: OIDC Settings
Client ID
- Obtained from Zitadel Console → Applications
- Example:
client_id_from_zitadel
Client Secret
- Generated when creating an application in Zitadel
- Type: Password field (hidden)
- Required: For confidential clients
Redirect URI
- Default:
{window.location.origin}/auth/callback - Example:
https://nexus.company.com/auth/callback - Action: Click Copy icon to copy to clipboard
Step 4: API Settings (Optional)
For group synchronization, configure:API Token (Management API)
- Type: Personal Access Token
- Purpose: Sync groups and users from Zitadel
- Where to create: Zitadel Console → Users → Service Accounts → Personal Access Tokens
Project ID
- Format: Numeric ID (e.g.,
349388332125388804) - Purpose: Filter users and roles by project
- Optional: Leave blank to sync all
Step 5: Sync Settings
Sincronizar roles automáticamente
- Default: Enabled
- Purpose: Automatically sync Zitadel groups/roles to local groups
Step 6: Test Connection
- Click Probar Conexión button
- System validates:
- OIDC endpoints are accessible
- API token is valid (if provided)
- Groups can be retrieved
- Success message shows endpoint detection and group count
Testing is highly recommended before saving to catch configuration errors early.
Step 7: Save
- Click Guardar Configuración
- Configuration is saved to database
- Dialog closes
Managing Configurations
Viewing Configurations
All configurations are listed in the left sidebar card:- Name: Display name
- Issuer URL: Truncated URL
- Status Badge: Active or Inactive
Selecting a Configuration
Click a configuration card to view details:- Details tab: OIDC endpoints and settings
- Roles tab: Group mappings
- Users tab: Project users
Activating/Deactivating
- Select configuration
- Toggle the switch in the header
- Status updates immediately
Inactive configurations do not process authentication requests. Use this to temporarily disable SSO without deleting the configuration.
Editing a Configuration
- Select configuration
- Click Editar button
- Edit dialog opens with current values
- Make changes
- Click Probar Conexión to validate (optional)
- Click Guardar Cambios
Roles (Group Mappings)
Syncing Groups from Zitadel
- Select a configuration with API token
- Go to Roles tab
- Click Sincronizar desde Zitadel
- System fetches all groups/roles from Zitadel
- New groups are added to mapping table
- Success message shows count
Group sync requires a valid API Token. Without it, the “Sincronizar” button is disabled.
Mapping Groups
Map Zitadel groups to local Nexus groups:- Find Zitadel group in the table
- Click the Grupo Local dropdown
- Select a local group or “Sin vincular”
- Mapping is saved immediately
Why Map Groups?
- Local groups have permissions configured in Roles & Permissions
- Zitadel groups must be mapped to local groups to inherit permissions
- Unmapped groups do not grant any access
Auto-Sync Badge
- Sí: Group membership syncs automatically on login
- No: Manual sync required
Auto-sync is determined by the configuration’s
sync_groups setting.Users (Project Users)
Loading Project Users
- Select a configuration with API token and project ID
- Go to Users tab
- Click Cargar Usuarios
- System fetches users with grants in the project
- Table displays user details
User Table
| Column | Description |
|---|---|
| Usuario | Display name and username |
| User’s email address | |
| Roles | List of Zitadel groups/roles assigned |
This is a read-only view. User management happens in Zitadel Console.
Details Tab
Configuration Details
View read-only configuration:- Client ID: OIDC client identifier
- Redirect URI: Callback URL
- Scopes: OIDC scopes (e.g.,
openid,profile,email) - API Token: Status badge (configured or not)
- Project ID: Zitadel project ID
OIDC Endpoints
Automatically generated endpoints:These endpoints follow Zitadel’s OIDC implementation. They are used internally for authentication flows.
Empty States
No Configurations
First-time setup displays:- Key icon
- Message: “No hay configuraciones”
- Description prompts to configure Zitadel
- Agregar Configuración button
No API Token
When API token is missing:- Shield icon (50% opacity)
- Message: “Se requiere un API Token para sincronizar grupos”
- Prompt to edit configuration
No Groups Synced
When no groups exist:- Users icon (50% opacity)
- Message: “No hay grupos sincronizados”
- Prompt to click “Sincronizar desde Zitadel”
Permissions
| Action | Org Admin | Global Admin | Support | User |
|---|---|---|---|---|
| View configurations | ✅ | ✅ | ❌ | ❌ |
| Create configuration | ✅ | ✅ | ❌ | ❌ |
| Edit configuration | ✅ | ✅ | ❌ | ❌ |
| Test connection | ✅ | ✅ | ❌ | ❌ |
| Sync groups | ✅ | ✅ | ❌ | ❌ |
| Map groups | ✅ | ✅ | ❌ | ❌ |
| Load users | ✅ | ✅ | ❌ | ❌ |
| Activate/deactivate | ✅ | ✅ | ❌ | ❌ |
Best Practices
Test Before Deploy: Always test the connection before activating a configuration in production.
Secure API Tokens: Store API tokens securely. They grant full access to Zitadel Management API.
Map Groups Early: Set up group mappings immediately after sync to ensure users get correct permissions on first login.
Monitor Sync: Regularly check group sync status to catch integration issues early.
Troubleshooting
Connection Test Fails
- Verify issuer URL is correct and accessible
- Check network connectivity
- Ensure Zitadel instance is running
Groups Not Syncing
- Verify API token is valid
- Check token has required permissions in Zitadel
- Confirm project ID is correct (if specified)
Authentication Fails
- Verify redirect URI matches exactly in Zitadel
- Check client ID and secret are correct
- Ensure configuration is active
- Verify user exists in Zitadel
Users Not Getting Permissions
- Check Zitadel groups are synced
- Verify groups are mapped to local groups
- Confirm local groups have permissions configured
- Check user has role assigned in Zitadel project