- vừa được xem lúc

JWT Authentication: Secure Your APIs with JSON Web Tokens

0 0 9

Người đăng: Nguyễn Ngọc Hải

Theo Viblo Asia

JSON Web Tokens (JWT) là một cách phổ biến để bảo mật các API và ứng dụng web. Trong bài viết này, chúng ta sẽ khám phá cách JWT có thể được sử dụng để xác thực, bao gồm cách chúng có thể được cấp bởi authentication server và cách chúng có thể được sử dụng để xác thực các yêu cầu API.

The Basics of JWT Authentication

Trong xác thực JWT, người dùng đăng nhập vào ứng dụng hoặc API bằng cách cung cấp thông tin xác thực của họ (ví dụ: tên người dùng và mật khẩu). Sau đó, ứng dụng sẽ xác minh thông tin đăng nhập và nếu chúng hợp lệ, server sẽ tạo JWT. Sau đó JWT được gửi đến client, nơi nó có thể được lưu trữ trong cookie, bộ nhớ cục bộ hoặc cơ chế lưu trữ khác phía client.

Khi client cần đưa ra yêu cầu tới điểm cuối API yêu cầu xác thực, nó sẽ gửi JWT cùng với yêu cầu. Sau đó, server sẽ xác minh JWT để đảm bảo rằng nó không bị giả mạo và nó vẫn hợp lệ. Nếu JWT hợp lệ, server sẽ cấp quyền truy cập vào tài nguyên được yêu cầu.

Issuing JWTs with an Authentication Server

Để phát hành JWT, ứng dụng có thể sử dụng máy chủ xác thực như OAuth2 hoặc OpenID Connect. Các giao thức này xác định một cách tiêu chuẩn để xác thực người dùng và cấp mã thông báo truy cập (có thể là JWT).

Ví dụ: Trong luồng OAuth2, người dùng đăng nhập vào ứng dụng, sau đó chuyển hướng họ đến máy chủ ủy quyền (authorization server). Người dùng nhập thông tin đăng nhập của họ trên authorization server và nếu chúng hợp lệ, authorization server sẽ tạo mã thông báo truy cập (JWT) và gửi lại cho ứng dụng. Sau đó, ứng dụng có thể sử dụng mã thông báo truy cập để thay mặt người dùng thực hiện các yêu cầu đối với các tài nguyên được bảo vệ.

Authenticating API Requests with JWTs

Khi JWT đã được cấp, nó có thể được sử dụng để xác thực các yêu cầu API. Để thực hiện việc này, client cần gửi JWT trong "Authorization" header của yêu cầu HTTP, sử dụng lược đồ "Bearer". Ví dụ:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Sau đó, server có thể giải mã JWT và xác minh chữ ký của nó để đảm bảo rằng nó được cấp bởi một cơ quan đáng tin cậy và không bị giả mạo. Nếu JWT hợp lệ và chưa hết hạn, máy chủ có thể cấp quyền truy cập vào tài nguyên được yêu cầu.

Lợi ích của xác thực JWT

Xác thực JWT mang lại một số lợi ích so với xác thực dựa trên session-based authentication:

  • Stateless: Vì JWT là độc lập và bao gồm tất cả thông tin cần thiết, nên máy chủ không cần duy trì session cho mỗi người dùng. Điều này làm giảm chi phí phía máy chủ và giúp mở rộng ứng dụng dễ dàng hơn.
  • Scalable: JWT có thể được sử dụng để xác thực các yêu cầu trên nhiều máy chủ hoặc thậm chí các miền khác nhau. Điều này làm cho việc xây dựng các ứng dụng phân tán trở nên dễ dàng hơn.
  • Portable: Vì JWT là độc lập nên chúng có thể được lưu trữ trong cookie, bộ nhớ cục bộ hoặc cơ chế lưu trữ phía máy khách khác. Điều này giúp dễ dàng chia sẻ thông tin xác thực giữa các phần khác nhau của ứng dụng.

Conclusion

Xác thực JWT là một cách mạnh mẽ để bảo mật các API và ứng dụng web. Bằng cách sử dụng JWT để xác thực các yêu cầu, bạn có thể tạo các ứng dụng scalable, statelessportable, có thể dễ dàng tích hợp với các máy chủ xác thực như OAuth2 hoặc OpenID Connect. Với những lợi ích mà xác thực JWT mang lại, không có gì lạ khi nó trở thành một lựa chọn phổ biến để bảo mật hiện đại.

Bình luận

Bài viết tương tự

- vừa được xem lúc

How JSON Web Token(JWT) authentication works?

1. JWT (JSON Web Token) là gì . Thông tin này có thể xác minh và đáng tin cậy vì nó là chữ ký điện tử . Jwt có thể được đăng ký băng cách sử dụng bí mật (với thuật toán HMAC) hoặc cặp khóa public/private bằng RSA.

0 0 60

- vừa được xem lúc

JWT và ứng dụng xác thực người dùng trong Rails

JWT. Thời gian gần đây mình có init API thì mình có ứng dụng Json Web Token (JWT) để xây dựng xác thực người dùng. Nó có support những gì và ứng dụng của nó ra sao thì mình xin chia sẻ trong bài viết. Nó là gì.

0 0 164

- vừa được xem lúc

Tìm hiểu một chút về JWT

Hello mọi người, trong bài viết hôm nay mình cùng các bạn sẽ cùng tìm hiểu về JWT nhé. JWT ( Json Web Token ) là 1 tiêu chuẩn mở (RFC 7519) định nghĩa cách truyền thông tin một cách an toàn giữa các b

0 0 62

- vừa được xem lúc

Refresh token là gì? Cách hoạt động có khác gì so với token không?

Ở những bài trước chúng ta đã nói nhiều về JWT là gì? Vì sao phải sử dụng JWT, trong suốt quá trình sử dụng JWT chúng tôi có nhận được nhiều phản hồi về chủ đề JWT. Trong đó có một vấn đề mà có nhiều

0 0 87

- vừa được xem lúc

JWT và ứng dụng của nó

Khái niệm. JSON Web Token (JWT) là 1 tiêu chuẩn mở (RFC 7519) định nghĩa cách thức truyền tin an toàn giữa bên bằng 1 đối tượng JSON.

0 0 30

- vừa được xem lúc

JWT - Từ cơ bản đến chi tiết

Chào mọi người. Bài viết của mình ngày hôm nay với mục đích chia sẻ những kiến thức mà mình lượm nhặt được, gom chúng lại để tổng hợp cho các bạn.

0 0 34