Skip to main content

Security & Permissions

Nuraly provides a comprehensive security system for controlling access to applications, pages, and components. This section covers authentication, authorization, and resource-level permissions.

Overview

The security system consists of three layers:

  1. Authentication - Handled by Keycloak (OpenID Connect)
  2. Authorization - Role-based access control (RBAC)
  3. Resource Permissions - Fine-grained access control per resource
┌─────────────────────────────────────────────────────────────┐
│ Gateway │
│ ┌─────────────────┐ ┌─────────────────────────────────┐ │
│ │ Keycloak │ │ Permission Check │ │
│ │ Auth Check │───▶│ (Anonymous/Public/Role) │ │
│ └─────────────────┘ └─────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│ API │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Authorization Service ││
│ │ - Unified canAccess() for all resources ││
│ │ - Applications, pages, components treated equally ││
│ │ - Role hierarchy ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘

Key Concepts

Grantee Types

TypeDescription
userSpecific user by UUID
roleUsers with a specific role
publicAny authenticated user with the link
anonymousAnyone, including unauthenticated users

Permission Types

PermissionDescription
readView the resource
writeModify the resource
deleteRemove the resource
shareGrant access to others

Resource Types

  • Application - Top-level container
  • Page - Individual pages within an application
  • Component - UI components within pages

Documentation