Khóa học bảo mật API Backend: Authentication & Authorization (JWT, RBAC), 2FA, SSO và Rate Limiting chống spam trên Spring Security. Dành cho backend developer, DevOps và kỹ sư hạ tầng.
API backend là cầu nối giữa frontend, microservices và các hệ thống bên ngoài — đồng thời cũng là mục tiêu thường gặp của nhiều loại tấn công như SQL Injection, XSS, CSRF, DDoS hay MITM. Chỉ cần một endpoint thiếu xác thực, một secret bị hardcode trong repo, hoặc một tài khoản admin không có 2FA — toàn bộ hệ thống có thể bị đánh sập chỉ trong vài phút.
Khóa học do TayJava thiết kế, dành cho lập trình viên backend, DevOps và kỹ sư hạ tầng — những người muốn xây dựng API vừa ổn định, vừa an toàn trong bối cảnh công nghệ hiện đại.
Trong backend hiện đại, bảo mật là yêu cầu bắt buộc để giảm rò rỉ dữ liệu, tấn công và truy cập trái phép. JWT (JSON Web Token) cho xác thực kết hợp RBAC (Role-Based Access Control) cho phân quyền là mô hình phổ biến trong các ứng dụng Spring Boot.
Tích hợp JWT + RBAC với Spring Security giúp hệ thống đạt được:
Xác thực mạnh, phù hợp kiến trúc hiện đại.
Phân quyền rõ ràng, dễ mở rộng.
Đáp ứng yêu cầu bảo mật cao cho API backend.
Bảo vệ dữ liệu và dịch vụ backend là ưu tiên hàng đầu. 2FA (Two-Factor Authentication) là một lớp bảo vệ hiệu quả và được dùng rộng rãi.
2FA không chỉ là "tùy chọn nâng cao" — với backend chứa thông tin nhạy cảm, đó thường là yêu cầu cần có. Tích hợp 2FA giúp:
Tăng độ tin cậy của hệ thống.
Giảm rủi ro xâm nhập tài khoản.
Bám sát các chuẩn bảo mật thông dụng hiện nay.
Khi hệ thống có nhiều ứng dụng hoặc nhiều microservices, việc bắt người dùng đăng nhập lại ở từng ứng dụng vừa gây phiền, vừa làm tăng bề mặt tấn công (mỗi form đăng nhập là một điểm có thể bị khai thác). SSO (Single Sign On) cho phép người dùng đăng nhập một lần và truy cập được nhiều ứng dụng/dịch vụ khác nhau trong cùng hệ thống mà không cần đăng nhập lại.
Trong module này, bạn sẽ tìm hiểu:
Nguyên lý hoạt động của SSO và các giao thức phổ biến: OAuth 2.0, OpenID Connect (OIDC), SAML.
Vai trò của Identity Provider (IdP) — nơi tập trung xác thực người dùng cho toàn bộ hệ thống.
Tích hợp SSO vào ứng dụng Spring Boot, kết hợp với JWT đã học ở Module 1 để truyền thông tin xác thực giữa các service.
Những lưu ý bảo mật khi triển khai SSO: quản lý session, thu hồi token (token revocation), và xử lý logout đồng bộ trên nhiều ứng dụng (Single Logout).
SSO giúp hệ thống:
Cải thiện trải nghiệm người dùng — đăng nhập một lần, dùng được nhiều dịch vụ.
Giảm số lượng nơi lưu trữ thông tin đăng nhập, từ đó giảm bề mặt tấn công.
Dễ dàng quản lý tập trung: khóa tài khoản, đổi quyền, hoặc thu hồi truy cập chỉ tại một nơi duy nhất.
Phù hợp với kiến trúc microservices, nơi nhiều service cần xác thực người dùng một cách nhất quán.
Một API dù đã có JWT, RBAC và 2FA vẫn có thể bị quá tải hoặc lạm dụng nếu không giới hạn tần suất gọi. Kẻ tấn công có thể spam request để dò mật khẩu (brute-force), cào dữ liệu (scraping), hoặc đơn giản là làm sập dịch vụ bằng một lượng lớn request trong thời gian ngắn (DoS). Rate Limiting là lớp phòng thủ giới hạn số lượng request mà một client (theo IP, user, hoặc API key) được phép gửi trong một khoảng thời gian nhất định.
Trong module này, bạn sẽ tìm hiểu:
Các thuật toán Rate Limiting phổ biến: Fixed Window, Sliding Window, Token Bucket, Leaky Bucket — ưu nhược điểm và khi nào nên dùng thuật toán nào.
Triển khai Rate Limiting trên Spring Boot với Bucket4j, kết hợp Redis để giới hạn theo từng client trong hệ thống phân tán (nhiều instance/microservices).
Áp dụng giới hạn linh hoạt theo nhiều cấp độ: theo IP, theo user đã đăng nhập, theo API key, hoặc theo từng endpoint nhạy cảm (ví dụ: endpoint đăng nhập cần giới hạn chặt hơn endpoint đọc dữ liệu công khai).
Trả về đúng chuẩn khi vượt giới hạn: HTTP status 429 Too Many Requests kèm header Retry-After để client biết khi nào nên thử lại.
Rate Limiting giúp hệ thống:
Ngăn chặn spam và brute-force vào các endpoint nhạy cảm (login, OTP, reset password).
Giảm rủi ro bị DoS bởi một lượng nhỏ client gửi quá nhiều request.
Đảm bảo công bằng tài nguyên giữa các client, tránh một client "chiếm dụng" hết băng thông hoặc CPU của server.
Bảo vệ các service phía sau (database, service bên thứ ba) khỏi bị quá tải khi traffic tăng đột biến.
Kết hợp cùng Authentication/Authorization, 2FA và SSO, Rate Limiting hoàn thiện bức tranh phòng thủ nhiều lớp cho API: xác thực biết ai đang gọi API, phân quyền biết họ được làm gì, 2FA xác minh chắc chắn đó là chính chủ, SSO giúp việc xác thực đó nhất quán trên toàn hệ thống, còn Rate Limiting đảm bảo dù là ai, họ cũng không thể lạm dụng hệ thống.
Backend developer đã quen với Spring Boot cơ bản, muốn nâng cấp kỹ năng bảo mật.
DevOps/kỹ sư hạ tầng cần triển khai và vận hành hệ thống quản lý secret an toàn.
Lập trình viên chuẩn bị phỏng vấn vị trí backend/security, muốn có kiến thức thực chiến để trả lời tự tin.
Yêu cầu đầu vào: nắm được kiến thức Spring Boot cơ bản (Controller, Service, Repository) và Java core.
Kinh nghiệm thực chiến: Hơn 15 năm trong môi trường tài chính, ngân hàng, AI và các công ty phần mềm lớn; từng làm việc cùng đội ngũ phát triển hàng đầu tại Dubai, UAE.
Linh hoạt thời gian: Học online qua video, phù hợp người đi làm và sinh viên.
Đầu tư có định hướng: Lộ trình đầy đủ, tập trung vào giá trị lâu dài cho nghề backend.
Hỗ trợ phát triển sự nghiệp: Hỗ trợ xây dựng CV và profile chuyên nghiệp để tiếp cận nhà tuyển dụng, tăng cơ hội tìm việc.
Đăng ký ngay hôm nay để làm chủ Authentication/Authorization, 2FA, SSO và Rate Limiting — bộ kỹ năng bảo mật API mà mọi backend developer hiện đại cần có.
23 lessons
8h 35m 48s
27 students
Learn with a practical path: OOP, Spring Boot, REST API, JPA/Hibernate, Security, Microservices, Docker and code review to master the skills.
Register now