Cách hoạt động của Authentication và Authorization trong hệ thống Web hiện đại

Tôi là Nguyễn Minh Trọng, với hơn 10 năm kinh nghiệm Link kk55.com mới nhất trong lĩnh vực an ninh mạng, kiến trúc hệ thống và thiết kế backend phân tán. Khi phân tích các nền tảng web hiện đại, tôi nhận thấy hai khái niệm thường bị nhầm lẫn nhiều nhất: Authentication (xác thực)Authorization (phân quyền). Đây là nền tảng cốt lõi quyết định ai được vào hệ thống và họ được làm gì bên trong hệ thống đó.

“Bẻ gãy tỷ lệ Odd, dẫn lối cược thủ thông thái.”


1. Authentication là gì?

Authentication là quá trình xác minh danh tính người dùng.

Nói đơn giản:

  • Bạn là ai?

  • Bạn có đúng là người đó không?

Ví dụ:

  • Đăng nhập bằng username/password

  • OTP qua SMS hoặc email

  • Face ID / fingerprint


2. Authorization là gì?

Authorization là quá trình xác định quyền hạn của người dùng.

Nói đơn giản:

  • Bạn được phép làm gì trong hệ thống?

  • Bạn có quyền truy cập tài nguyên nào?

Ví dụ:

  • User thường chỉ xem dữ liệu

  • Admin có quyền chỉnh sửa

  • Moderator có quyền kiểm duyệt


3. Sự khác biệt quan trọng

Yếu tố

Authentication

Authorization

Mục tiêu

Xác minh danh tính

Xác định quyền

Câu hỏi

Bạn là ai?

Bạn được làm gì?

Thời điểm

Trước khi vào hệ thống

Sau khi đăng nhập


4. Các cơ chế Authentication phổ biến

🔐 1. Password-based

  • Username + mật khẩu

  • Phổ biến nhưng dễ bị tấn công nếu yếu

📲 2. OTP (One-Time Password)

  • Mã xác minh dùng một lần

  • Tăng tính bảo mật

🔑 3. JWT (JSON Web Token)

  • Token chứa thông tin người dùng

  • Không cần lưu session server

🧠 4. OAuth2

  • Đăng nhập qua Google, Facebook

  • Phổ biến trong hệ sinh thái hiện đại


5. Cơ chế Authorization phổ biến

🧩 Role-Based Access Control (RBAC)

  • Phân quyền theo vai trò

  • Ví dụ: admin, user, guest

🔗 Attribute-Based Access Control (ABAC)

  • Phân quyền dựa trên thuộc tính

  • Ví dụ: vị trí, thiết bị, thời gian


6. Authentication trong kiến trúc Web

Quy trình điển hình:

🔹 1. User login

Gửi thông tin đăng nhập.

🔹 2. Server xác thực

Kiểm tra dữ liệu trong database.

🔹 3. Tạo token/session

Trả về JWT hoặc session ID.

🔹 4. Client gửi request

Kèm token trong mỗi request.

🔹 5. Server kiểm tra quyền

Xác minh trước khi xử lý.


7. Rủi ro bảo mật phổ biến

🔐 Credential stuffing

  • Dùng mật khẩu rò rỉ để đăng nhập hàng loạt

🧠 Session hijacking

  • Đánh cắp session để giả mạo user

🔓 Broken access control

  • User truy cập được dữ liệu không thuộc quyền

⚠ Token leakage

  • Lộ JWT hoặc API key


8. Giải pháp bảo mật hiện đại

🛡 Multi-Factor Authentication (MFA)

  • Kết hợp nhiều lớp xác thực

🔐 Token expiration

  • Token tự hết hạn

🔒 HTTPS encryption

  • Bảo vệ dữ liệu truyền tải

📊 Behavior monitoring

  • Phát hiện đăng nhập bất thường


9. Authentication trong hệ thống Microservices

Trong kiến trúc phân tán:

  • API Gateway xử lý authentication

  • Token được truyền qua nhiều service

  • Central identity provider quản lý user


10. Information Gain – Góc nhìn chuyên gia

  • JWT giúp giảm tải server nhưng khó revoke

  • Session-based auth an toàn hơn trong hệ thống nhạy cảm

  • OAuth2 đang trở thành tiêu chuẩn toàn cầu

  • Zero Trust yêu cầu xác thực liên tục, không chỉ một lần


11. Checklist bảo mật Authentication & Authorization

Yếu tố

Trạng thái tốt

MFA

Bật

Token

Có expiration

HTTPS

Bắt buộc

Access control

Rõ ràng

Logging

Có giám sát


12. Kết luận

Authentication và Authorization là hai lớp bảo mật cốt lõi của mọi hệ thống web hiện đại. Nếu Authentication xác định “bạn là ai”, thì Authorization quyết định “bạn được làm gì”. Hiểu rõ hai cơ chế này giúp xây dựng hệ thống an toàn, ổn định và có khả năng mở rộng trong môi trường Internet ngày nay.