Authentication vs Authorization: Định nghĩa và những điểm khác biệt chính
Trong quá trình lập trình hoặc tìm hiểu về công nghệ chắc hẳn bạn đã nghe hai khái niệm “Authentication” và “Authorization”. Nghe qua thì “Authentication vs Authorization” có vẻ giống nhau đều là một thuật ngữ liên quan đến xác thực và bảo mật. Nhưng thực tế chúng thực hiện hai vai trò hoàn toàn khác nhau. Nếu bạn còn đang lờ mờ về Authentication vs Authorization thì cùng Techie giải đáp ngay trong bài viết dưới đây nhé!
Authentication (AuthN) là gì?
Để thấy rõ sự khác biệt giữa Authentication vs Authorization, cần tìm hiểu định nghĩa của hai thuật ngữ này. Authentication (AuthN) là một quá trình xác minh danh tính của một người hoặc một thiết bị. Các hệ thống công nghệ thường sử dụng một số hình thức xác thực để bảo mật quyền truy cập vào ứng dụng hoặc dữ liệu của ứng dụng đó.
Ví dụ, khi bạn cần truy cập vào một trang web hoặc dịch vụ trực tuyến, bạn thường phải nhập tên người dùng và mật khẩu của mình. Sau đó, hệ thống sẽ so sánh tên người dùng và mật khẩu bạn đã nhập với bản ghi mà hệ thống có trong cơ sở dữ liệu. Nếu thông tin bạn gửi trùng khớp, hệ thống sẽ cho rằng bạn là người dùng hợp lệ và cấp cho bạn quyền truy cập. Xác thực hệ thống trong ví dụ này cho rằng chỉ bạn mới biết tên người dùng và mật khẩu chính xác.
Mục đích của Authentication (AuthN)
Mục đích của Authentication là để ngăn chặn người khác truy cập trái phép vào tài khoản cá nhân như email, tài khoản ngân hàng, mạng xã hội… hoặc bảo vệ dữ liệu nhạy cảm của doanh nghiệp khỏi bị xâm nhập và khai thác.
Tương tự như việc chính phủ sử dụng các kỹ thuật xác thực khác nhau để bảo vệ tiền tệ của họ khỏi bị làm giả. Thông thường, xác thực bảo vệ các mặt hàng có giá trị, trong thời đại thông tin, nó bảo vệ các hệ thống và dữ liệu.
Các loại Authentication phổ biến
Hệ thống có thể sử dụng một số cơ chế để xác thực người dùng. Thông thường, để xác minh danh tính của một người, các quy trình xác thực thường sử dụng: điều bạn biết, điều bạn có và bạn là ai.
“Điều bạn biết” thường được xác thực bằng mật khẩu và câu hỏi bảo mật. Vì chỉ bạn mới biết mật khẩu hoặc câu trả lời cho một tập hợp câu hỏi bảo mật cụ thể nên hệ thống sử dụng giả định này để cấp cho bạn quyền truy cập.
“Điều bạn có” là phương thức xác thực hai yếu tố (2FA) qua mã OTP mà chúng ta vẫn thường gặp. Khi bạn truy cập vào hệ thống bất kì, hệ thống gửi cho bạn mã OTP qua SMS hoặc email để xác nhận đó chính xác là thiết bị của bạn.
Loại yếu tố xác thực cuối cùng xác minh “bạn là ai”. Cơ chế xác thực sinh trắc học nằm trong danh mục này. Vì các đặc điểm vật lý của cá nhân như dấu vân tay, khuôn mặt, võng mạc mắt là duy nhất nên việc xác minh cá nhân bằng cách sử dụng các yếu tố này là một cơ chế xác thực an toàn.
Authorization (AuthZ) là gì?
Authorization là quy trình bảo mật xác định mức độ thực hiện hành động cụ thể trên một hệ thống của người dùng hoặc dịch vụ. Trong công nghệ, chúng ta sử dụng ủy quyền để cấp cho người dùng hoặc dịch vụ quyền truy cập một số dữ liệu hoặc thực hiện một hành động cụ thể.
Nếu Authentication xác minh người dùng trước khi cho phép họ truy cập thì Authorization xác định những gì họ có thể làm sau khi hệ thống cấp cho họ quyền truy cập. Ví dụ bạn đang làm việc trong một công ty và có quyền truy cập vào hệ thống quản lý tài liệu nội bộ. Khi bạn đăng nhập vào hệ thống này (xác thực), bạn sẽ chỉ được phép xem và chỉnh sửa những tài liệu liên quan đến bộ phận của mình. Bạn sẽ không thể truy cập vào các tài liệu mật của bộ phận khác.
Các loại Authorization phổ biến
Hệ thống ủy quyền tồn tại dưới nhiều hình thức trong môi trường công nghệ thông thường. Dưới đây là một số phương thức Authorization phổ biến:
- Role-Based Access Control (RBAC): Cấp quyền dựa trên vai trò của người dùng. Mỗi vai trò sẽ được gán một tập hợp các quyền cụ thể.
- Attribute-Based Access Control (ABAC): Cấp quyền dựa trên các thuộc tính của đối tượng, chủ thể và môi trường.
- Discretionary Access Control (DAC): Cho phép chủ sở hữu của một tài nguyên quyết định ai có thể truy cập vào tài nguyên đó.
- Mandatory Access Control (MAC): Áp đặt các quy tắc truy cập bắt buộc, không thể thay đổi bởi người dùng.
Cái nào có trước, Authentication vs Authorization?
Authentication vs Authorization đều dựa trên danh tính. Vì bạn không thể ủy quyền cho người dùng hoặc dịch vụ trước khi xác minh họ nên Authentication luôn diễn ra trước khi Authorization.
Một ví dụ cụ thể là khi bạn đăng nhập vào tài khoản ngân hàng online, bạn phải nhập tên đăng nhập và mật khẩu (Authentication). Sau khi đăng nhập thành công, bạn sẽ chỉ có thể truy cập vào các thông tin tài khoản của mình, chứ không thể thay đổi thông tin của người khác (Authorization).
Điểm giống và khác nhau của Authentication vs Authorization
Giống nhau
Authentication vs Authorization đều là hai phần của quy trình cơ bản cung cấp quyền truy cập. Cũng vì chữ viết tắt “auth” mà hai thuật ngữ này thường bị nhầm lẫn trong bảo mật thông tin”. Authentication vs Authorization giống nhau ở chỗ cả hai đều tận dụng danh tính. Một thuật ngữ xác minh danh tính trước khi cấp quyền truy cập, trong khi thuật ngữ kia sử dụng danh tính đã xác minh này để kiểm soát quyền truy cập.
Khác nhau
1. Chức năng cơ bản
Authentication xác định xem người dùng hoặc các thực thể khác có phải là người mà họ đã kê khai thông tin trước đó hay không.
Authorization xác định xem người dùng hoặc thực thể có được phép truy cập vào một tài sản cụ thể hay không
2. Cách thức hoạt động của chúng
Authentication yêu cầu thông tin xác thực hoặc thông tin khác từ một thực thể có thể chứng minh danh tính của họ
Authorization sử dụng các chính sách và quy tắc để quyết định có cấp quyền truy cập cho người dùng đã xác thực hay không.
3. Cách truyền tải thông tin
Authentication thu thập thông tin từ người dùng hoặc thực thể dưới dạng văn bản (ví dụ: mật khẩu), dữ liệu phi cấu trúc (ví dụ: hình ảnh khuôn mặt người dùng) hoặc mã thông báo truy cập.
Authorization yêu cầu mã thông báo chứng minh rằng thực thể đã được xác thực và thông tin bổ sung về thực thể để áp dụng các quy tắc truy cập.
4. Tiêu chuẩn và phương pháp
Authentication thường được thực hiện bằng OpenID Connect (OIDC) hoặc các giao thức khác (SAML, OAuth, v.v.) và có thể bao gồm các phương pháp như mật khẩu, mã thông báo truy cập và xác minh sinh trắc học.
Authorization thường được thực hiện bằng OAuth 2.0 và có thể liên quan đến các phương pháp như Kiểm soát truy cập dựa trên vai trò (RBAC) và Kiểm soát truy cập dựa trên thuộc tính (ABAC).
Kết luận
Authentication vs Authorization là hai lớp bảo vệ quan trọng trong hệ thống thông tin. Authentication giúp ngăn chặn người lạ xâm nhập, còn Authorization đảm bảo rằng mỗi người chỉ truy cập được những thông tin mà họ được phép. Việc hiểu rõ sự khác biệt giữa hai khái niệm này là rất quan trọng để xây dựng các hệ thống bảo mật hiệu quả.
>> Xem thêm: Single Sign-On (SSO) là gì? Cách thức hoạt động của SSO