0
0
Lập trình
Admin Team
Admin Teamtechmely

🔐 Phân Tích Danh Tính, Xác Thực, Phân Quyền & SSO

Đăng vào 2 ngày trước

• 5 phút đọc

🔐 Phân Tích Danh Tính, Xác Thực, Phân Quyền & SSO

Trong bài viết này, chúng ta sẽ tìm hiểu về hệ thống danh tính và những khái niệm cơ bản liên quan đến nó. Bạn sẽ nắm được những thông tin quan trọng về danh tính, xác thực, phân quyền và SSO (Single Sign-On).

Cuối bài viết, bạn sẽ có câu trả lời cho những câu hỏi sau:

  1. Danh tính là gì?
  2. Xác thực và phân quyền là gì?
  3. Kiểm soát truy cập là gì?
  4. Token là gì?
  5. SSO là gì?

🆔 Danh Tính Là Gì?

Danh tính đề cập đến việc đại diện độc nhất của một người hoặc hệ thống trong hệ sinh thái kỹ thuật số.
Ví dụ: Trong đời thực, danh tính của bạn bao gồm tên, vân tay, ảnh ID, và trong thế giới kỹ thuật số, danh tính của bạn bao gồm tên người dùng, email và ID người dùng.

Danh tính cũng bao gồm một số thuộc tính được gọi là thuộc tính danh tính hoặc claims. Đây là thông tin bổ sung về người dùng, ví dụ: tên, vai trò, phòng ban, v.v.

🔐 Xác Thực Là Gì?

Xác thực là quá trình để kiểm tra danh tính của người dùng.
Ví dụ: bạn nhập email và mật khẩu, trước khi vào hệ thống, hệ thống sẽ so sánh mật khẩu với email của bạn để xác minh xem đó có phải là bạn hay không.

Trong thế giới hiện đại, việc xác thực hệ thống cũng bao gồm OTP, sinh trắc học, đăng nhập qua mạng xã hội, v.v.

🛡️ Phân Quyền Là Gì?

Phân quyền là quá trình kiểm tra những gì mà người dùng được phép làm sau khi đã được xác thực.
Ví dụ: sau khi đăng nhập, hệ thống sẽ kiểm tra xem bạn có quyền truy cập và thay đổi dữ liệu người dùng hay chỉ có quyền đọc dữ liệu người dùng.

Để hiểu một cách đơn giản:
Xác thực giống như hộ chiếu tại sân bay, và phân quyền quyết định xem bạn sẽ ngồi ở ghế hạng thương gia hay hạng phổ thông.

🏢 Nhà Cung Cấp Danh Tính (IdP) Là Gì?

Nhà cung cấp danh tính là dịch vụ quản lý danh tính người dùng và xử lý xác thực.
IdP lưu trữ thông tin đăng nhập của người dùng và sử dụng chúng cho việc xác thực. Sau khi xác thực, nó sẽ phát hành token cho các ứng dụng của nhà cung cấp dịch vụ.

Ví dụ về IdP: Google, Okta, Keycloak, v.v.

🎯 Kiểm Soát Truy Cập Là Gì?

Kiểm soát truy cập có nghĩa là kiểm soát những gì người dùng được phép làm trong hệ thống.
Có nhiều loại kiểm soát truy cập khác nhau, nhưng ở đây chúng ta có hai loại chính:

  1. RBAC - Kiểm soát truy cập dựa trên vai trò
  2. ABAC - Kiểm soát truy cập dựa trên thuộc tính

RBAC: Trong kiểm soát truy cập dựa trên vai trò, quyền hạn được xác định dựa trên vai trò của người dùng.

  • Vai trò admin → có thể xóa người dùng
  • Vai trò editor → có thể chỉnh sửa và đọc người dùng
  • Vai trò viewer → chỉ có thể xem người dùng

ABAC: Trong kiểm soát truy cập dựa trên thuộc tính, quyền hạn được xác định dựa trên thuộc tính của người dùng, tài nguyên và môi trường.
Ví dụ: Cho phép người dùng nếu phòng ban của họ là HR và loại tài nguyên là dữ liệu nhân viên và hành động là xem.

🎫 Token Là Gì?

Token là các đối tượng kỹ thuật số được sử dụng cho xác thực và phân quyền. Thông thường, token dựa trên JWT (JSON Web Token).
Có ba loại token chính:

  1. Access Tokens
  2. Refresh Tokens
  3. ID Tokens

Access Token: Được sử dụng để truy cập các API hoặc tài nguyên bảo vệ. Token này có thời hạn ngắn và chứa quyền hạn (vai trò) và ID người dùng.

Refresh Token: Đây là một token có thời gian sống dài và được sử dụng để lấy token truy cập mới khi cần thiết.

ID Token: Chứa các claims về người dùng đã được xác thực.

🚪 SSO Là Gì?

SSO (Single Sign-On) là một phương thức xác thực cho phép người dùng đăng nhập một lần và truy cập nhiều ứng dụng mà không cần phải đăng nhập lại.
Ví dụ: bạn đăng nhập vào tài khoản Google của mình và giờ bạn có thể truy cập YouTube, Gmail và Google Drive.

⚙️ SSO Hoạt Động Như Thế Nào?

Tất cả các ứng dụng đều tin tưởng cùng một nhà cung cấp danh tính. Khi bạn khởi động một ứng dụng, trước tiên nó sẽ chuyển hướng người dùng đến IdP. IdP sẽ xác nhận người dùng là đã được xác thực. Sau đó, ứng dụng sẽ phát hành token và cho phép người dùng vào.

🎯 Kết Luận

Việc hiểu rõ về danh tính và kiểm soát truy cập là rất quan trọng trong việc xây dựng các hệ thống kỹ thuật số an toàn. Những khái niệm này—danh tính, xác thực, phân quyền, kiểm soát truy cập, token và SSO—làm việc cùng nhau để đảm bảo rằng người dùng đúng có quyền truy cập đúng vào tài nguyên đúng vào thời điểm đúng. Việc nắm vững những điều cơ bản này sẽ giúp bạn thiết kế các ứng dụng tốt hơn và an toàn hơn.

🔍 Các Thực Hành Tốt Nhất

  • Luôn mã hóa thông tin nhạy cảm: Đảm bảo rằng tất cả các thông tin nhạy cảm như mật khẩu và token đều được mã hóa.
  • Sử dụng HTTPS: Đảm bảo rằng tất cả các kết nối đến ứng dụng của bạn đều sử dụng HTTPS để bảo mật dữ liệu.

⚠️ Những Cạm Bẫy Thường Gặp

  • Thiếu xác thực mạnh mẽ: Tránh sử dụng chỉ tên đăng nhập và mật khẩu mà không có biện pháp xác thực bổ sung.
  • Token không được bảo vệ: Đảm bảo rằng token không bị rò rỉ và được bảo vệ tốt.

🛠️ Mẹo Hiệu Suất

  • Giảm số lượng truy vấn: Sử dụng cache cho thông tin danh tính để giảm thiểu số lượng truy vấn đến IdP.

❓ Câu Hỏi Thường Gặp

SSO có an toàn không?

SSO có thể rất an toàn nếu được triển khai đúng cách với các biện pháp bảo mật chặt chẽ.

Làm thế nào để triển khai RBAC?

RBAC có thể triển khai qua việc xác định các vai trò và quyền hạn cho từng vai trò trong ứng dụng của bạn.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào