Skip to content

Role-Based Access Control

Role-Based Access Control (RBAC) in DeepIntShield Enterprise provides fine-grained access management for your organization. RBAC allows you to define roles with specific permissions, controlling what users can view, create, update, or delete across all DeepIntShield resources.

Key Benefits:

  • Principle of Least Privilege - Grant users only the permissions they need
  • Centralized Access Management - Manage all permissions from a single interface
  • Audit-Ready - Track who has access to what for compliance requirements
  • Flexible Role Design - Use system roles or create custom roles for your organization

RBAC integrates seamlessly with Identity Provider authentication, automatically assigning roles based on your IdP groups and claims.


Navigate to GovernanceRoles & Permissions in the DeepIntShield dashboard to manage roles.

Roles & Permissions management interface showing system roles

DeepIntShield includes three pre-configured system roles that cover common access patterns:

RolePermissionsDescription
Admin42Full access to all resources and operations
Developer27CRUD access to technical resources, view access to logs and cluster
Viewer14Read-only access to all resources

System roles cannot be deleted, but their permissions can be customized to fit your organization’s needs.

Create custom roles when system roles don’t match your organizational structure. Custom roles are useful for:

  • Specialized Teams - Create roles for QA, Security, or Compliance teams
  • Project-Based Access - Limit access to specific resources per project
  • Temporary Access - Grant limited permissions for contractors or auditors

To create a custom role:

  1. Click Add Role in the top-right corner
  2. Enter a Role Name (e.g., “Auditor”, “QA Team”)
  3. Add a Description explaining the role’s purpose
  4. Click Create Role
  5. Assign permissions using the Manage Permissions dialog

RBAC permissions are defined as combinations of Resources and Operations.

DeepIntShield protects access to the following resources:

ResourceDescription
LogsRequest and response logs
ModelProviderAI model provider configurations
ObservabilityMonitoring and metrics dashboards
PluginsPlugin configurations and management
VirtualKeysVirtual key management
UserProvisioningUser and group provisioning settings
UsersUser account management
AuditLogsAudit trail and compliance logs
GuardrailsConfigGuardrail configurations
GuardrailRulesIndividual guardrail rules
ClusterCluster configuration and nodes
SettingsWorkspace settings
MCPGatewayMCP Gateway configurations
AdaptiveRouterAdaptive routing settings

Each resource supports up to four operations:

OperationDescription
ViewRead-only access to view the resource
CreateAbility to create new instances of the resource
UpdateAbility to modify existing resources
DeleteAbility to remove resources

To assign or modify permissions for a role:

  1. Navigate to GovernanceRoles & Permissions
  2. Click the menu icon (•••) on the role you want to modify
  3. Select Manage Permissions
Manage Permissions dialog showing resource-based permission assignment

The Manage Permissions dialog provides a two-panel interface:

Left Panel - Resources:

  • Lists all available resources
  • Shows the count of enabled permissions per resource (e.g., “4/4 permissions”)
  • Click a resource to view its permissions

Right Panel - Permissions:

  • Displays available operations for the selected resource
  • Toggle switches to enable/disable each permission
  • Shows operation descriptions for clarity
  1. Select a Resource from the left panel
  2. Toggle the operations you want to enable for this role
  3. Repeat for other resources as needed
  4. Click Save Permissions to apply changes

The footer shows the total permissions count (e.g., “42 of 42 permissions selected”) to help track the role’s access level.


  • Start with System Roles - Use Admin, Developer, and Viewer as templates
  • Follow Least Privilege - Only grant permissions that are necessary
  • Document Role Purpose - Use clear descriptions to explain each role’s intent
  • Review Regularly - Audit role assignments quarterly

For Development Teams:

Developer role + specific resource access based on team focus
- Frontend team: VirtualKeys (View), Logs (View), Observability (View)
- Backend team: ModelProvider (CRUD), Plugins (CRUD), Logs (View)

For Security/Compliance Teams:

Custom "Auditor" role with:
- AuditLogs (View)
- Logs (View)
- GuardrailsConfig (View)
- Users (View)

For Operations Teams:

Custom "Ops" role with:
- Cluster (CRUD)
- Observability (View)
- Logs (View)
- Settings (View, Update)

When using Okta or Microsoft Entra for authentication, roles can be automatically assigned based on:

  • IdP Groups - Map identity provider groups to DeepIntShield roles
  • App Roles - Sync application roles from your IdP
  • Claims - Use custom claims to determine role assignment

Users authenticated via SSO receive their role assignments automatically on first login, with permissions synchronized on each session.


Roles and permissions can also be managed via the API:

List all roles:

Terminal window
curl -X GET http://localhost:8080/api/roles \
-H "Authorization: Bearer <admin_token>"

Get role permissions:

Terminal window
curl -X GET http://localhost:8080/api/roles/{role_id}/permissions \
-H "Authorization: Bearer <admin_token>"

Update role permissions:

Terminal window
curl -X PUT http://localhost:8080/api/roles/{role_id}/permissions \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"permission_ids": [1, 2, 3, 4, 5]
}'

Create a custom role:

Terminal window
curl -X POST http://localhost:8080/api/roles \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Auditor",
"description": "Read-only access for compliance auditing"
}'