Authorization

Quick definition
Authorization is the process of granting or denying permission for users or systems to access resources and perform specific actions within a protected environment.

Authorization is the process of granting or denying permission for a user, system, or application to access specific resources or perform particular actions. It determines what authenticated entities are allowed to do within a system. Authorization sits at the heart of security architecture, ensuring that only appropriate parties can view, modify, or execute protected operations.

How Authorization Works in Practice

Authorization operates as a gatekeeper after identity verification has occurred. Once a system confirms who someone is through authentication, authorization steps in to answer a different question: what can this verified entity actually do? Think of it like a concert venue—your ticket (authentication) gets you through the door, but your seat assignment (authorization) determines where you can sit.

The authorization process typically involves three core components:

  • Subject: The user, service, or application requesting access
  • Resource: The data, file, function, or system being protected
  • Policy: The rules governing who can access what under which conditions

For example, in a hospital records system, a nurse might be authorized to view patient vitals but not billing information, while an administrator could access financial data but not medical histories. These boundaries prevent unauthorized actions even when users have legitimate system access.

Authorization Models and Approaches

Several established models govern how authorization decisions get made. Each suits different organizational needs and security requirements.

Role-Based Access Control (RBAC)

RBAC assigns permissions to roles rather than individuals. Users inherit permissions by being assigned to roles like "Editor," "Viewer," or "Administrator." This model simplifies management in organizations with clearly defined job functions.

Attribute-Based Access Control (ABAC)

ABAC evaluates multiple attributes—user department, time of day, device type, location—to make dynamic authorization decisions. A policy might allow access to financial reports only during business hours from corporate devices.

Policy-Based Access Control

This approach uses explicit policy statements, often written in specialized languages. NIST SP 800-162 provides guidance on implementing attribute-based access control systems that support complex policy requirements.

ModelBest ForComplexity
RBACStable organizational hierarchiesLow to Medium
ABACDynamic, context-aware decisionsMedium to High
Policy-BasedFine-grained, auditable controlHigh

Authorization Risks and Common Pitfalls

Even well-intentioned authorization implementations can introduce significant security gaps. Understanding these risks helps organizations avoid costly mistakes.

Privilege creep occurs when users accumulate permissions over time without proper review. An employee who changes departments might retain old access rights while gaining new ones, eventually holding far more permissions than necessary. Regular access reviews mitigate this risk.

Broken access control consistently ranks among the most critical web application security risks. This happens when applications fail to properly enforce authorization checks, allowing users to access resources they shouldn't. A common example involves manipulating URL parameters to view other users' data.

Another frequent pitfall involves over-reliance on client-side authorization. Hiding buttons or menu options provides no real security—server-side enforcement must validate every privileged request. Attackers can easily bypass interface restrictions to call backend APIs directly.

Implementing Effective Authorization Controls

Building robust authorization requires deliberate design choices and ongoing maintenance. Consider these actionable strategies:

  • Apply least privilege: Grant only the minimum permissions required for each role or user to function
  • Centralize authorization logic: Scattered permission checks across codebases lead to inconsistencies and gaps
  • Log authorization decisions: Audit trails help detect anomalies and support incident investigation
  • Test authorization boundaries: Include access control testing in security assessments

Modern systems often implement authorization through dedicated services or policy engines. This separation allows security teams to update policies without modifying application code. OAuth 2.0 and OpenID Connect have become standard protocols for delegating authorization in web and mobile applications.

Frequently Asked Questions About Authorization

What is the difference between authentication and authorization?

Authentication verifies identity—confirming who someone is. Authorization determines permissions—deciding what that verified identity can access or do. Both are essential, but they address fundamentally different security concerns.

Can authorization work without authentication?

Technically yes, but rarely advisable. Some public resources grant universal access without authentication. However, meaningful authorization requires knowing the requester's identity to apply appropriate permission policies.

How often should authorization policies be reviewed?

Organizations should review authorization policies at least quarterly, with immediate reviews following role changes, terminations, or security incidents. Automated tools can flag anomalous permission patterns between formal reviews.