Knowledge · Architecture

    Authentication vs Authorization

    Authentication proves who someone is. Authorization decides what they may do. Why conflating the two is the most common access-control failure in business software.

    What is the difference between authentication and authorization?

    Authentication establishes identity: this request comes from this person. Authorization establishes permission: this identity may perform this action on this record. Authentication happens once per session; authorization must be re-evaluated on every single request, because identity does not imply entitlement.

    Key takeaways

    • Authentication answers who. Authorization answers what they may do.
    • A valid login is not a permission grant.
    • Authorization must be checked per request, not per session.
    • Authorization decisions belong on the server, next to the data.
    • Most access-control bugs are authorization gaps behind correct authentication.

    Why the distinction matters operationally

    A signed-in user is a known user, nothing more. The moment a system treats a valid session as evidence of entitlement, every record it can technically reach becomes reachable in practice. The failure is rarely dramatic — it looks like a viewer opening a page that lists payout details, or a technician loading a URL that was only ever linked from the owner's menu.

    Keeping the two concepts separate forces a second question after every login: not just is this person real, but is this person allowed to do this specific thing to this specific record right now.

    Where each check belongs

    • Authentication: at the session boundary, producing a verified token.
    • Authorization: at the data boundary, evaluated on every read and write.
    • Route guards: a usability layer, not the enforcement layer.
    • Interface state: a presentation layer, never an enforcement layer.

    The test that exposes a conflated system

    Take a low-privilege account, authenticate normally, and request a record it should not be allowed to see — by direct identifier, not by clicking. If the record comes back, the system authenticated you and never authorized you. That single test separates systems that check permission from systems that check presence.

    Where URBLD fits

    URBLD separates the two explicitly. Identity comes from the managed auth provider and produces a verified token. Entitlement is evaluated separately from a locked permissions contract whose enforcement field names three required layers — interface, route and API — and from database policies that re-check the same question at the row level.

    Principles reinforced

    This page rests on the following foundational ideas.

    FAQ

    Frequently Asked Questions

    Straight answers about how URBLD runs the business end-to-end.

    More in Architecture

    How information should move through a business.

    Browse Architecture
    Share this page