Authentication
The three authentication factors
Authentication methods are grouped into three categories, called factors. A method's strength depends on which factor it uses and how hard that proof is to steal or copy.
- Knowledge (something you know): passwords, PINs, security questions, passphrases. The most common factor, but also the most exposed to phishing, reuse, and credential leaks.
- Possession (something you have): a physical security key (FIDO2/WebAuthn), a smartphone receiving a one-time code, a hardware token, or an authenticator app generating time-based codes (TOTP).
- Inherence (something you are): biometrics such as fingerprint, facial recognition, or voice. Tied to the individual, but cannot be changed if compromised.
A method that combines two or more distinct factors is called multi-factor authentication (MFA). Two-factor authentication (2FA) is the most widespread form. Combining a password with a code from an authenticator app is far harder to bypass than either factor alone, because an attacker would need to compromise two independent channels.
Authentication vs. authorization
Authentication and authorization are distinct steps that are often confused. Authentication confirms identity; authorization decides what that verified identity is allowed to do. Authentication always comes first—a system must know who you are before it can determine your permissions.
| Aspect | Authentication | Authorization |
|---|---|---|
| Question answered | Who are you? | What are you allowed to do? |
| Purpose | Verify identity | Grant or deny access to resources |
| Order | Happens first | Happens after authentication |
| Typical mechanisms | Passwords, MFA, biometrics, certificates | Roles, permissions, access control lists, scopes |
| Visible to user | Yes (login screen) | Usually invisible (enforced server-side) |
In a business application, a user authenticates once at login, then the authorization layer determines whether they can view a report, edit a record, or access an admin panel. Keeping the two layers separate is a core principle of secure software design.
Authentication in custom software
In a custom application—ERP, CRM, or a business platform—authentication is rarely built from scratch. Teams typically rely on proven standards and protocols rather than reinventing identity handling, which is error-prone and a frequent source of security flaws.
- Session-based authentication: the server creates a session after login and tracks it with a cookie. Common in traditional server-rendered applications.
- Token-based authentication: the server issues a signed token (such as a JWT) the client sends with each request. Widely used for APIs and decoupled front-ends.
- OAuth 2.0 and OpenID Connect: delegated standards that let users sign in through an existing provider and let applications access resources on their behalf.
- Single sign-on (SSO): one authentication grants access to multiple connected applications, common in enterprise environments.
- Passwordless and WebAuthn: authentication based on security keys or device biometrics, removing passwords from the flow entirely.
Good practice includes hashing stored passwords with a strong, salted algorithm, never storing them in plain text, enforcing MFA on sensitive accounts, and rate-limiting login attempts to slow brute-force attacks.
Questions fréquentes
Building a custom software project? We design bespoke software aligned with your roadmap.
See our custom software expertiseDéfinitions liées