OperionOperion
Philosophy
Core Principles
The Rare Middle
Beyond the binary
Foundations First
Infrastructure before automation
Compound Value
Systems that multiply
Build Around
Design for your constraints
The System
Modular Architecture
Swap any piece
Pairing KPIs
Measure what matters
Extraction
Capture without adding work
Total Ownership
You own everything
Systems
Knowledge Systems
What your organization knows
Data Systems
How information flows
Decision Systems
How choices get made
Process Systems
How work gets done
Learn
Foundation & Core
Layer 0
Foundation & Security
Security, config, and infrastructure
Layer 1
Data Infrastructure
Storage, pipelines, and ETL
Layer 2
Intelligence Infrastructure
Models, RAG, and prompts
Layer 3
Understanding & Analysis
Classification and scoring
Control & Optimization
Layer 4
Orchestration & Control
Routing, state, and workflow
Layer 5
Quality & Reliability
Testing, eval, and observability
Layer 6
Human Interface
HITL, approvals, and delivery
Layer 7
Optimization & Learning
Feedback loops and fine-tuning
Services
AI Assistants
Your expertise, always available
Intelligent Workflows
Automation with judgment
Data Infrastructure
Make your data actually usable
Process
Setup Phase
Research
We learn your business first
Discovery
A conversation, not a pitch
Audit
Capture reasoning, not just requirements
Proposal
Scope and investment, clearly defined
Execution Phase
Initiation
Everything locks before work begins
Fulfillment
We execute, you receive
Handoff
True ownership, not vendor dependency
About
OperionOperion

Building the nervous systems for the next generation of enterprise giants.

Systems

  • Knowledge Systems
  • Data Systems
  • Decision Systems
  • Process Systems

Services

  • AI Assistants
  • Intelligent Workflows
  • Data Infrastructure

Company

  • Philosophy
  • Our Process
  • About Us
  • Contact
© 2026 Operion Inc. All rights reserved.
PrivacyTermsCookiesDisclaimer
Back to Learn
KnowledgeLayer 0Security & Access Control

Authorization/Permissions

Sarah from Sales just logged in. She's authenticated. That part worked.

Now she clicks 'Approve' on her own $15,000 expense report.

The system accepts it. Nobody flagged it until month-end close.

Being logged in doesn't mean you can do anything.

10 min read
beginner
Relevant If You're
Protecting sensitive data from internal access
Enforcing separation of duties
Building multi-tenant systems

FOUNDATIONAL - Every action in your system should check "is this user ALLOWED to do this?"

Where This Sits

Category 0.3: Security & Access Control

0
Layer 0

Foundation

AuthenticationAuthorization/PermissionsSecrets ManagementAudit TrailsRate Limiting
Explore all of Layer 0
What It Is

The gatekeeper that checks every action

Authorization answers the question: 'Can THIS user do THIS action on THIS resource?' Authentication proved who they are. Authorization controls what they can do.

Without it, 'logged in' means 'full access.' The intern can delete the customer database. The sales rep can approve their own expenses. A contractor can see everyone's salary. Authorization prevents all of this.

Authentication and authorization are two different things. Confusing them is how security breaches happen.

The Lego Block Principle

Authorization solves a universal problem: how do you control what actions are allowed without hardcoding rules everywhere?

The core pattern:

Check permissions at the point of action. User requests something. System checks policy. Policy returns allow/deny. Action proceeds or stops. This pattern applies whether you're protecting a button click or an API endpoint.

Where else this applies:

File systems - Read/write/execute permissions on files and folders.
Database access - Row-level and column-level security policies.
API endpoints - Middleware that checks permissions before handler runs.
UI components - Show/hide elements based on what user can do.
🎮 Interactive: Test the Gatekeeper

Pick a user, an action, and a resource. Watch authorization decide.

Try having Sarah approve her own expense. See what happens.

0
Total Checks
0
Allowed
0
Denied
0
Self-Approvals Blocked

Authorization Log

No authorization checks yet. Try selecting options above.
Try it: Select "Sarah Chen" as the user, "approve" as the action, and "Sarah's Expense Report" as the resource. Then click Check Authorization. Watch what happens.
How It Works

Three approaches, different trade-offs

Role-Based Access Control (RBAC)

Assign users to roles, roles have permissions

Users get a role (Admin, Manager, Employee). Each role has a predefined set of permissions. Simple to understand and manage for most organizations.

Pro: Simple to implement and audit
Con: Gets messy with many roles or exceptions

Attribute-Based Access Control (ABAC)

Decisions based on user, resource, and context attributes

Policies reference attributes: "Allow if user.department == resource.department AND request.time is during business hours." More flexible but more complex.

Pro: Handles complex, contextual rules
Con: Harder to audit and debug

Relationship-Based Access Control (ReBAC)

Permissions based on relationships between entities

Access defined by relationships: "User can edit documents they own or that are shared with their team." Common in collaborative apps like Google Docs.

Pro: Natural for collaboration patterns
Con: Requires relationship graph infrastructure
Connection Explorer

"Sarah from Sales just approved her own $15,000 expense report"

Your CFO discovers this during month-end close. Without authorization rules, anyone can do anything once they're logged in. This flow ensures the right people can only do what they're supposed to do - automatically enforced, not just policy.

Hover over any component to see what it does and why it's neededTap any component to see what it does and why it's needed

Authentication
Authorization
You Are Here
Relational DB
Audit Trails
Escalation Logic
Approval Workflows
Compliant Approval
Outcome
React Flow
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
Foundation
Data Infrastructure
Intelligence
Understanding
Outcome

Animated lines show direct connections · Hover for detailsTap for details · Click to learn more

Upstream (Requires)

Authentication

Downstream (Enables)

Audit TrailsApproval WorkflowsEscalation Logic
Common Mistakes

What breaks when authorization goes wrong

Don't Implement Authorization in the UI Only

Hiding a button doesn't stop someone from calling the API directly. If 'Delete' is hidden but the /api/delete endpoint is unprotected, you have no security.

Instead: Always enforce authorization on the backend. UI hiding is convenience, not security.

Don't Use Admin Accounts for Automation

Your nightly sync job runs as 'admin' because it was easier. Now that account can do anything, and if it's compromised, everything is exposed.

Instead: Create service accounts with minimum required permissions. The sync job only needs read access to CRM and write access to one table.

Don't Forget Resource-Level Permissions

"Sarah can view invoices" doesn't mean she should see EVERY invoice. Without scoping, she sees competitor deals, executive expenses, everything.

Instead: Scope permissions to resources: "Sarah can view invoices WHERE department = 'Sales' OR assigned_to = 'sarah'."

What's Next

Now that you understand authorization

You've learned how permissions control what users can do. The natural next step is understanding how to track what they actually did.

Recommended Next

Audit Trails

Recording who did what, when, and why

Back to Learning Hub