Is SNI( Server Name Indication) used for authentication or authorization?
It’s related to authentication, not authorization.
Why it’s authentication:
Authentication is about verifying identity — “Who are you?”
When a browser connects to https://www.dogs.com, it expects to receive a certificate that authenticates the server as being www.dogs.com.
SNI helps the server pick the correct TLS certificate so the browser can authenticate the server’s identity.
It’s not authorization because:
Authorization is about access control — “Are you allowed to do this?”
SNI doesn’t control what the user is allowed to access. It only ensures that the browser talks to the correct server and can trust it.
Summary:
Term Meaning Role in SNI use case
Authentication Verifying identity
Yes — server proves its identity using TLS certificate
Authorization Granting access to resources
No — not involved in this process
How does cert based authorization work?
Certificate-based authorization builds on authentication using digital certificates, typically X.509 certificates. Here’s how it works step by step, focusing on how it goes beyond authentication to make authorization decisions:
1. Certificate-Based Authentication
Before you can authorize, you authenticate:
This confirms the client’s identity.
2. Certificate-Based Authorization
Once authenticated, authorization happens like this:
Option A: Based on certificate attributes
Option B: Certificate mapped to internal roles
Typical Use Cases
-
Mutual TLS (mTLS): Clients and servers both present certs.
-
Kubernetes: Uses client certs for API access control.
-
VPNs: Grant network access based on cert identity.
-
IoT: Devices identified and granted access via certs.
Common Misconception
Tools/Tech That Use Cert-Based Authorization
-
Envoy with mTLS + RBAC
-
Istio service mesh
-
NGINX with client cert auth
-
Open Policy Agent (OPA) using cert metadata
-
AWS IoT Core (X.509 certs for device-level permissions)