Every secure system must answer two different questions, in the right order and with different evidence. The first is authentication: is this person, service, or device really who it claims to be? The second is authorization: given that identity and the current situation, is this action allowed? Many security failures begin when teams blur those questions, treating a successful login as permission to do anything, or treating a permission check as proof of identity.

Start with the door, not the computer

Imagine a building with a front desk and many rooms. At the front desk, a guard checks your badge and decides whether the badge belongs to you. That is authentication. Later, at a lab door, the lock checks whether your badge is allowed into that room. That is authorization.

The same split appears in software. A user might type a password, approve a prompt on a phone, or present a cryptographic certificate. Those steps help the system decide whether the claimed identity is credible. After that, the system still needs to decide whether that identity can read a file, change a payment account, delete a record, or call an application programming interface, often shortened to API.

Authentication is about confidence in identity. Authorization is about permission for an action. A system usually needs both, but they are not interchangeable.

Authentication confirms who you are; authorization decides what that identity may do. AuthN vs AuthZ Authentication Authorization Who are you? What may you do? Checks the badge Checks the lock Confidence in identity Permission for action
Authentication confirms who you are; authorization decides what that identity may do.

Authentication proves a claim

Authentication starts when something makes a claim: I am this employee, this customer, this server, or this device. The system then asks for evidence. A password is evidence based on something you know. A hardware key is evidence based on something you have. A fingerprint is evidence based on something you are. A certificate can be evidence that a server or workload holds a private cryptographic key.

No method proves identity in an absolute philosophical sense. It gives a system a level of assurance that is good enough, or not, for the risk at hand. A password alone may be acceptable for reading a newsletter account. Moving money, changing payroll details, or accessing production infrastructure usually needs stronger evidence.

Multi-factor authentication, often called MFA, combines evidence from different categories so that stealing one factor is not enough. A stolen password plus no physical key should fail. A stolen phone plus no password should fail. MFA is not magic, but it changes the attacker’s job from one theft to several different kinds of compromise.

  • Something you know, such as a password or personal identification number.
  • Something you have, such as a security key, phone, smart card, or private key.
  • Something you are, such as a fingerprint or face pattern, when used with care.
  • Somewhere or something you are using, such as a managed device or trusted network, as supporting context rather than a sole proof.
Authentication asks for evidence from something you know, have, or are. Proving a Claim Auth factors Something you knowa password Something you havea hardware key Something you area fingerprint
Authentication asks for evidence from something you know, have, or are.

Authorization applies a rule to a situation

Authorization begins after the system has some identity and context to work with. It asks a narrower question: is this subject allowed to perform this action on this resource right now? The subject may be a user, service, device, or automated job. The action may be read, write, approve, deploy, refund, or delete. The resource may be a document, account, database row, server, or API endpoint.

Good authorization is specific. It does not say, Sam is trusted. It says, Sam may approve refunds up to a certain amount for this region, but may not approve a refund he created himself. It may also consider time, device health, location, data sensitivity, customer consent, or emergency status.

Many systems express authorization through roles, attributes, or policies. Role-based access control, or RBAC, grants permissions through named roles such as Billing Manager. Attribute-based access control, or ABAC, uses facts about the subject, resource, action, and environment, such as department equals finance and amount is less than 500.

Why order matters

Authorization normally depends on authentication because permissions are attached to an identity, a role, a group, a service account, or a verified attribute. If the system does not know who or what is making the request, it cannot safely apply most permission rules.

But authentication does not automatically imply authorization. Logging in to a hospital system may prove that a doctor is really a doctor, but it does not mean that doctor may open every patient record. A service may prove it is the reporting service, but that does not mean it may write to the payroll database.

The safe mental model is a pipeline: identify the requester, validate the evidence, load relevant facts, evaluate policy, then enforce the result as close as possible to the protected resource.

⚠️
Login is not access. A successful login only says the system accepted an identity claim; it does not grant every permission.
A safe request identifies the requester, validates evidence, evaluates policy, then enforces the result. The Access Pipeline Identify Validate Evaluate Enforce
A safe request identifies the requester, validates evidence, evaluates policy, then enforces the result.

Tokens, sessions, and the memory of a decision

Systems rarely ask for a password or key on every click. After authentication succeeds, they create a way to remember that result for a while. In a web application, this may be a session stored on the server and referenced by a browser cookie. In an API, it may be a token, which is a data package the client presents with later requests.

A token is not the same thing as permission, though it may contain permission-related claims. A claim is a statement inside a token, such as user identifier, issuer, expiration time, or group membership. The receiving service must still decide whether to trust those claims and whether they are enough for the requested action.

Two checks are especially important. First, is the token valid: was it issued by a trusted party, has it expired, and has it been tampered with? Second, is the request allowed: do the token claims and current policy permit this specific operation? Skipping either check creates a gap.

Common mistakes and their shape

The first common mistake is checking authentication only at the front door and forgetting authorization deeper inside the application. This creates insecure direct object reference problems, where a user changes an identifier in a URL or request and reaches another user’s data because the system never checked ownership or permission on that object.

The second mistake is trusting the client to enforce permissions. Hiding a button in a browser is helpful for usability, but it is not a security boundary. The server or protected service must check authorization because clients can be modified, scripted, or bypassed.

The third mistake is making permissions too broad because fine-grained policy feels inconvenient. Broad administrative roles simplify setup but make accidents and compromises more damaging. The principle of least privilege says identities should receive only the access they need, for only as long as they need it.

⚠️
Check the object. For every sensitive operation, verify that this authenticated subject may act on this exact resource.
The frequent failures are shallow checks, trusting the client, and access that is too broad. Common Mistakes Shallow checksonly at the front door Client-side trustclients can be bypassed Over-broad accessviolates least privilege
The frequent failures are shallow checks, trusting the client, and access that is too broad.

Decisions leaders and practitioners must make

Authentication and authorization are design choices, not just security features bought at the end. Leaders decide what level of identity assurance is appropriate for each business risk. Practitioners decide where permission checks live, how policies are expressed, how access changes are reviewed, and how failures are logged.

A useful starting question is not which product should we use. It is what are we protecting, from whom, and what would a bad decision cost? A customer profile page, a source code repository, a payment approval workflow, and an emergency clinical system all need different balances of friction, speed, auditability, and resilience.

Centralizing identity can reduce duplicated login logic. Centralizing policy can make access easier to review. But centralization also creates dependencies that must be reliable and well governed. The goal is not to put every decision in one place; it is to make each decision explicit, testable, monitored, and owned.

A practical way to reason about any request

When reviewing a design, trace one request from start to finish. Who is the requester? How is that claim proven? Who issued the proof? How long does the proof last? Which service evaluates permission? What resource is being protected? What policy is applied? What happens when the answer is no?

This exercise reveals hidden assumptions. You may discover that a background job uses a shared account, that an internal API trusts network location instead of identity, that deleted employees remain in groups, or that logs record successful access but not denied attempts.

Clear separation does not mean separate teams never talk. Authentication and authorization work best when identity data, policy data, application code, operations, and audit all line up around the same model of subjects, actions, resources, and risk.

  1. Name the subject making the request.
  2. Identify the evidence used to authenticate that subject.
  3. Locate the policy that authorizes or denies the action.
  4. Confirm the check happens at the protected service or resource.
  5. Log enough detail to investigate allowed and denied decisions.

Key takeaways

  • Authentication verifies an identity claim; authorization decides whether an action is permitted.
  • A successful login is necessary for many systems, but it is not a blanket grant of access.
  • Authorization should consider the subject, action, resource, and context, not just a broad role name.
  • Tokens and sessions remember authentication results, but services must still validate them and enforce policy.
  • Client-side controls improve usability, but real permission checks belong on the server or protected service.
  • Leaders should match authentication strength and authorization detail to the risk and cost of a wrong decision.

Glossary

Authentication
The process of deciding whether an identity claim is credible enough to accept.
Authorization
The process of deciding whether an authenticated or otherwise known subject may perform a specific action on a specific resource.
Multi-factor authentication
An authentication approach that requires evidence from more than one category, such as something you know and something you have.
Token
A data package presented with a request to carry statements such as identity, issuer, expiration time, or permissions.
Session
A temporary record that lets a system remember a requester after authentication has succeeded.
Claim
A statement about a subject or request, such as a user identifier, group, role, or expiration time.
Role-based access control
A permission model that grants access through named roles assigned to users, services, or groups.
Attribute-based access control
A permission model that uses facts about the subject, resource, action, and environment to make access decisions.
Principle of least privilege
The practice of giving an identity only the access it needs, and no more, for the work it must do.