Authorization là gì? Cách phân biệt với Authentication đơn giản, dễ hiểu

Authorization là gì? Có gì khác biệt với khái niệm authentication? Hai khái niệm này thường bị nhầm lẫn rất nhiều khi bắt đầu tìm hiểu về lập trình và website. Nếu bạn vẫn chưa hiểu rõ được hai thuật ngữ này, hãy theo dõi bài viết sau để tìm hiểu chi tiết ngay nhé!

Thuật ngữ Authentication và Authorization là gì?

Hai thuật ngữ này thường sử dụng khi nói về vấn đề bảo mật và quyền truy cập vào hệ thống. Cả hai cụm từ này còn đóng vai trò quan trọng khi làm việc với website và cơ sở hạ tầng dịch vụ.

Chính vì vậy, bạn cần hiểu rõ khái niệm từng cụm từ để tránh nhầm lẫn trong quá trình sử dụng nhé. Hai thuật ngữ hoàn toàn khác biệt nhau mặc dù thường được sử dụng trong bối cảnh và công cụ tương tự nhau.

Authentication (Xác thực) là việc xác nhận danh tính của bạn trong khi Authorization (Uỷ quyền) là cấp quyền truy cập vào hệ thống. Nói cách khác, authentication là quá trình xác minh bạn là ai, còn authorization là quá trình xác minh những gì bạn có thể truy cập.

Authorization la gi
Thuật ngữ Authentication và Authorization là gì?

Authentication là gì?

Authentication là xác nhận thông tin đăng nhập của người dùng như Tên người dùng/ID người dùng và mật khẩu nhằm xác minh danh tính của họ. Với các public và private network, hệ thống xác thực danh tính người dùng qua mật khẩu đăng nhập. Thông thường, authentication sẽ xác minh qua tên người dùng và mật khẩu hoặc kết hợp thêm nhiều yếu tố xác thực.

Các yếu tố xác thực xác định những yếu tố khác nhau để xác minh danh tính của người dùng trước khi cho phép họ quyền truy cập vào bất kỳ điều gì. Dựa trên cấp độ bảo mật sẽ có những cách xác thực danh tính như sau:

  • Single-Factor Authentication (Xác thực một yếu tố): Là phương thức xác thực đơn giản nhất bằng cách sử dụng mật khẩu đơn giản để cấp cho người dùng quyền truy cập vào 1 website hoặc network nhất định. Người dùng có thể truy cập vào hệ thống chỉ nhờ 1 trong những thông tin đăng nhập như mật khẩu cho tên người dùng hoặc địa chỉ email.
  • Two-Factor Authentication (Xác thực 2 yếu tố): Quy trình xác minh sẽ gồm 2 bước, yêu cầu tên người dùng, mật khẩu và một thứ chỉ người dùng biết như pin ATM hoặc các thông tin bí mật khác.
  • Multi-Factor Authentication (Xác thực nhiều yếu tố): Đây là phương thức xác thực tiên tiến và có độ an toàn cao nhất. Phương thức này yêu cầu nhiều lớp bảo mật từ các xác thực độc lập. Việc sử dụng các yếu tố độc lập với nhau giúp hạn chế lỗ hổng hệ thống.
Authorization la gi
Authentication là quá trình xác minh bạn là ai

Bước xác thực authentication là bước ban đầu vô cùng quan trọng của mọi hệ thống nếu có người dùng. Đây là hành động nhằm thiết lập hàng rào bảo vệ và chứng thực điều đáng tin cậy cho hệ thống dữ liệu.

Nếu không có bước xác thực này, hệ thống sẽ không biết người đang truy cập có đúng thực sự hay không, người dùng đó như thế nào để đưa ra phản hồi phù hợp. Vậy nên, quá trình xác thực có bản chất là thực hiện xác nhận HTTP request được gửi đến từ người nào đó.

Authorization la gi
Authentication là xác nhận thông tin đăng nhập của người dùng

Xem thêm: Captcha là gì? Vì sao nên sử dụng Captcha cho trang web?

Authorization là gì?

Authorization (Phân quyền) là quá trình xác định người dùng có quyền truy cập vào một url hay một tài tài nguyên cụ thể hay có quyền thực hiện những hành động nào hay không. Hiểu đơn giản authorization là gì, nó có nghĩa là phân quyền cho người dùng quyền truy cập và sử dụng những tính năng được cung cấp. Có một cách nói khác khi nói về thuật ngữ authorization chính là đi trả lời câu hỏi “what you can do?” – “bạn có thể làm được gì?”. Thông thường, sau khi đã định danh người dùng thành công và trả lời câu hỏi bạn là ai, hệ thống sẽ đi xác định quyền hạn của bạn và trả lời câu hỏi bạn có thể làm được gì. Hai bước này luôn song hành cùng nhau nhưng mức độ áp dụng sẽ tuỳ giai đoạn.

Authorization la gi
Authorization là gì? Là quá trình xác minh những gì bạn có thể truy cập.

Một hệ thống lớn sẽ cực kỳ phức tạp bởi tổ hợp nhiều tính năng quan trọng và mạng lưới phòng ban dày đặc. Việc bạn cần làm là phân chia quyền sử dụng rõ ràng và thiết kế hệ thống phân quyền cho từng thành viên. Bạn có thể thiết hệ hệ thống phân quyền thành 2 thành phân riêng biệt là phân quyền theo nhóm (Role-based) và phân quyền theo đối tượng (Object-based).

Authorization chỉ được cấp sau khi hệ thống được authentication (xác thực) thành công. Như vậy, người dùng mới có quyền truy cập vào tài nguyên và khả năng truy cập ở mức độ nào của hệ thống. Nó gần giống việc cho phép ai đó chính thức làm điều gì khi truy cập vào tài nguyên bất kỳ.

Một ví dụ dễ hiểu là quy trình xác minh ID của nhân viên trong tổ chức được gọi là authentication. Còn việc xác định nhân viên đó có những quyền hạn truy cập vào tầng nào chính là authorization.

Authorization la gi
Authorization chỉ được cấp sau khi hệ thống được authentication thành công

Xem ngay: Boxchat là gì? Lợi ích của boxchat trong chăm sóc khách hàng, chi tiết TẠI ĐÂY

So sánh điểm khác biệt giữa Authentication với Authorization

Sau khi tìm hiểu khái niệm authentication và authorization là gì, để dễ hình dung hơn, các bạn có thể theo dõi bảng tóm tắt so sánh về đặc điểm và cách dùng của 2 thuật ngữ này nhé.

AuthenticationAuthorization
  1. Authentication xác nhận danh tính người dùng để cấp quyền truy cập vào hệ thống.
  2. Xác nhận thông tin đăng nhập để có quyền truy cập.
  3. Quyết định người dùng có phải là những gì người đó đã tuyên bố, cam kết hay không.
  4. Yêu cầu tên người dùng và mật khẩu để xác thực.
  5. Authentication là bước đầu tiên và phải xác minh thành công mới có thể phân quyền.
  6. Ví dụ: Sinh viên thường được yêu cầu tự xác thực trước khi truy cập vào liên kết url của trường đại học.
  1. Authorization xác định xem người dùng có được phép truy cập tài nguyên không.
  2. Xác minh người dùng có được phép truy cập hay không.
  3. Xác định những gì người dùng có thể và không thể truy cập.
  4. Nhiều yếu tố xác thực cần thiết để phân quyền khác nhau tuỳ theo mức độ bảo mật.
  5. Authorization chỉ được thực hiện sau khi authentication thực hiện thành công.
  6. Ví dụ: Sinh viên được phép truy cập những thông tin giới hạn trên trang web của trường sau khi xác thực thành công.

Tìm hiểu các phương thức Authorization phổ biến

Sau khi tìm hiểu authorization là gì, giờ đây chúng ta cùng tìm hiểu những phương thức uỷ quyền thông dụng nhất hiện nay.

  • RADIUS (Remote Authentication Dial-in User Service): Cung cấp xác thực và điều khiển truy cập sử dụng UDP nhằm xác thực tập trung cho hệ thống mạng. RADIUS dùng cho user truy cập VPN, RAS hoặc xác thực các dịch vụ sử dụng RADIUS.
  • Kerberos: Là phương thức xác thực quyền mà tên người dùng/mật khẩu không được truyền đi trên mạng.
  • TACACS (Terminal Access Controller Access Control System): Điều khiển quản lý quyền truy cập bằng xác thực và cấp thẩm quyền trong hệ thống UNIX network.
  • TACACS+ (Extended Terminal Access Controller Access Control System Plus): Là bản biến thể từ TACACS. TACACS+ cung cấp xác thực và cấp thẩm quyền Acccouting cho cấp thẩm quyền tập trung.
  • LDAP (Lightweight Directory Access Protocol): Cung cấp quyền truy cập tới directory services (dịch vụ danh mục) và được tích hợp trong Microsoft Active Directory.
  • XTACACS: Là dịch vụ mở rộng từ giao thức TACACS cho phép hỗ trợ thêm tính năng Accounting và Auditing.
  • IEEE 802.1x: Được sử dụng để bảo mật cho các giao thức WPA/WPA2 bằng cách dùng port phụ thuộc vào dịch vụ xác thực (authentication) và cấp thẩm quyền (authorization) tương tự như RADIUS và TACACS+.
Authorization la gi
Những phương thức uỷ quyền Authorization phổ biến

Những phương thức xác thực web authentication phổ biến hiện nay

Cùng điểm qua tổng quan một vài phương thức xác thực website phổ biến nhất để hiểu hơn authentication nhé.

  • HTTP Basic authentication: Yêu cầu client cung cấp tên người dùng (username) và mật khẩu (password) mỗi lần gọi request.
  • Cookies: Sử dụng HTTP cookies để xác thực request của client và duy trì phiên đăng nhập.
  • Luôn luôn sử dụng HttpOnly cookies sẽ giúp cookie không hiển thị ở documents.cookies.
  • Luôn luôn sử dụng signed cookies để biết cookie có bị client sửa đổi hay không.
  • Signatures: ký (sign) vào tất cả các request qua APIs, không bao gồm các request từ browser. Bạn cần hash toàn bộ request dùng private key.
  • One-Time passwords: Tạo ra 1 mật khẩu dùng 1 lần (one-time password) dựa vào khoá bí mật được dùng chung và thời gian hiện tại (Time-based One-time Password Algorithm) hoặc 1 bộ đếm (HMAC-based One-time Password Algorithm).
Authorization la gi
Một vài phương thức xác thực website phổ biến nhất
  • Token-based authentication: Xác thực bằng chuỗi mã hoá khi người dùng nhập user/password sẽ nhận về chuỗi token. Chuỗi token này có tác dụng xác minh quyền truy cập vào tài nguyên mong muốn mà không cần nhập lại username và password.
  • Api Keys: Một giá trị key duy nhất (unique key) được sinh ra và gán cho user trong lần đăng nhập đầu tiên. Sau đó, khi user quay trở lại hệ thống sẽ dùng unique key này chứng minh user này giống với lần đầu tiên.
  • OAuth (2.0): Nghĩa là Open với Authentication hoặc Authorization. OAuth cho phép các trang web hoặc ứng dụng truy cập vào thông tin người dùng mà không cần chia sẻ thông tin username và password.

Có một lưu ý trong cách chọn phương thức xác thực sao cho phù hợp nhất. Cụ thể:

  • Nếu bạn chỉ xây dựng web, bạn nên chọn cookies và tokens.
  • Nếu xây dựng web và app, bạn nên chọn API xác thực qua tokens.
  • Nếu xây dựng APIs để người dùng liên hệ đến API của bạn, nên dùng sighnatures.

Tham khảo: [Tổng hợp] 5 phần mềm kiểm tra chính tả online miễn phí

Lời kết

Trên đây là những thông tin giải đáp câu hỏi authentication và authorization là gì và cách phân biệt hai thuật ngữ này. Hy vọng qua chia sẻ của chúng tôi, bạn đọc đã biết cách phân biệt hai cụm từ trông “na ná” nhau để không bị nhầm lẫn trong quá trình xây dựng hệ thống dữ liệu nhé. Nếu bạn thấy bài viết hữu ích, hãy chia sẻ đến nhiều người cùng biết hơn nhé. Nếu bạn đọc có ý kiến đóng góp, hãy để lại bình luận hoặc liên hệ với Enweb để được giải đáp kịp thời. Cảm ơn bạn đã theo dõi!