JWT-la-gi

JWT Là Gì? Tìm Hiểu Về Các Thành Phần Của JWT

Chia sẻ kinh nghiệm
Spread the love

Trong thế giới hiện đại, đặc biệt là sự phát triển mạnh mẽ của lĩnh vực công nghệ dẫn đến khái niệm JWT càng trở nên phổ biến hơn bao giờ hết. Tuy nhiên không phải ai cũng hiểu JWT là gì, chúng gồm những thành phần nào và hoạt động ra sao. Nếu bạn đang vướng mắc những câu hỏi trên thì đừng bỏ qua những nội dung trong bài viết dưới đây cùng topviecit.vn nhé. 

JWT là gì?

Để hiểu đúng về JWT, trước hết bạn cần biết JWT là gì? JWT  là thuật ngữ viết tắt của JSON Web Tokens, đây là một tiêu chuẩn mở RFC 7519, được sử dụng như một phương tiện đại diện nhỏ gọn. Chúng thực hiện nhiệm vụ truyền đạt thông tin giữa server và client thông qua một chuỗi các JSON.

Ưu điểm lớn nhất đó là thông tin được truyền qua JWT có tính bảo mật và độ tin tưởng cao nhờ vào chữ ký điện tử. Chữ ký điện tử sử dụng các khóa công khai hoặc riêng tư sử dụng RSA, ECDSA được xây dựng dựa trên thuật toán HMAC.

>>>Xem thêm: RESTful API Là Gì? Kiến Thức Cho Người Mới Nhập Môn

JWT là gì
JWT là gì

Chiến lược lớn nhất của các nhà sáng tạo nên JWT chính là tập trung vào các signed token. Các signed token này hoàn toàn có thể xác minh tính toàn vẹn của quyền sở sở hữu bản thân và bảo mật token khỏi một số bên khác. Khi signed token sử dụng cặp khóa công khai hoặc riêng tư cũng có nghĩa là bên nắm giữ cả 2 khóa là bên đã hoàn tất quá trình đăng ký signed token.

Ưu điểm của JWT 

Ngoài khái niệm JWT là gì, bạn cũng nên nắm được những ưu điểm của JWT để có thể làm việc với chúng một cách hiệu quả hơn. Dưới đây là một số ưu điểm chính của JWT phổ biến nhất: 

Nhỏ gọn hơn

JWT được cho là ngắn gọn hơn XML. Bởi vậy, khi mã hóa, token JWT cũng sẽ ngắn hơn SAML. Chính ưu điểm này đã giúp cho JWT vượt qua những “đối thủ” khác và trở thành một lựa chọn phù hợp hơn trong HTML và môi trường HTTP.

An toàn hơn

Đây cũng là ưu điểm được nhiều người đánh giá cao khi quyết định làm việc với JWT. Bởi JWT sử dụng cặp khóa công khai hoặc riêng tư dưới dạng chứng chỉ X.509 để ký. Ngoài ra, JWT cũng hoàn toàn có thể được ký đối xứng bằng một mã bí mật được chia sẻ sử dụng thuật toán HMAC.

SAML có thể sử dụng các cặp khóa công khai hoặc riêng tư giống như JWT. Tuy nhiên, trên thực tế chữ ký số bằng XML lại có nhiều lỗ hổng bảo mật rất, không kể phương pháp thực hiện cũng khó khăn hơn JWT rất nhiều.

Phổ biến hơn

Trong lập trình, bộ phân tích cú pháp JSON phổ biến vì chúng ánh xạ trực tiếp đến các đối tượng. Ngược lại, XML lại không có ánh xạ tài liệu một cách tự nhiên như JWT.

Đây là nguyên nhân giúp bạn có thể làm việc dễ dàng hơn với JWT so với các xác nhận SAML.

Dễ xử lý hơn

Đây cũng là một ưu điểm quan trọng của JWT. Do được sử dụng ở quy mô internet nên JWT dễ dàng để xử lý trên hầu hết các thiết bị của người dùng, nhất là các thiết bị di động.

>>>Xem thêm: Debugger là gì? Tất cả những điều mà bạn cần biết về Debug

Ưu điểm của JWT
Ưu điểm của JWT

Các thành phần chính của JWT

Một JWT theo tiêu chuẩn sẽ được cấu thành từ 3 thành phần chính, chúng phân tách với nhau bởi dấu chấm ( . ), bao gồm:

  • Header
  • Payload
  • Signature

Cụ thể: 

Header

Mỗi 1 Header của JWT thường có 2 phần:

  • Thuật toán mã hóa được sử dụng. Ví dụ như: HS256, HS384, HS512, PS256, PS 384, PS512, RS256, RS384, RS512, ES256, ES256K, ES384, ES512 và EdDSA.
  • JWT.

Payload 

Thành phần này chứa các thông tin về quyền sở hữu một thực thể và các dữ liệu bổ sung. Chúng gồm 3 loại bảo mật xác thực chính đó là: registered, public và private claims.

Signature 

Thành phần cuối cùng nhưng cũng rất quan trọng của JWT là Signature (chữ ký).  Để tạo được một chữ ký, bạn sẽ cần phải mã hóa header, payload, mã khóa bí mật secret và thuật toán. 

Signature được sử dụng nhằm xác minh rằng tin nhắn được gửi đến không bị thay đổi. Với trường hợp bạn sử dụng private key cho tokens signed, Signature cũng hoàn toàn có thể xác nhận rằng người gửi là người tạo JWT.

JWT được sử dụng khi nào?

JWT có thể được dùng cho rất nhiều trường hợp khác nhau, trong đó phổ biến nhất là:

  • Uỷ quyền – Authorization
  • Truyền đạt và bảo vệ toàn vẹn thông tin – Information Exchange

Uỷ quyền – Authorization

JWT được ứng dụng nhiều nhất cho Ủy quyền. 

Khi người dùng đăng nhập thành công bằng thông tin cá nhân, ứng dụng có thể yêu cầu truy cập vào một số tài nguyên, dịch vụ,…. Mỗi lần thực hiện, chúng sẽ phải cung cấp 1 Access Token JWT. Khi đó,, hình thức đăng nhập của bạn sẽ cần đến JWT bởi vì JWT có chi phí định dạng nhỏ và có khả năng được sử dụng cùng lúc trên nhiều tên miền khác nhau.

>>>Xem thêm: Kafka Là Gì? Những Điều Bạn Cần Biết Về Kafka

JWT được sử dụng khi nào?
JWT được sử dụng khi nào?

Truyền đạt và bảo vệ toàn vẹn thông tin – Information Exchange

JWT là một sự lựa chọn phù hợp để truyền đạt và bảo vệ sự toàn vẹn của thông tin do:

  • JWT sử dụng cặp khóa công khai hoặc riêng tư, nhờ vậy mà bạn hoàn toàn có thể kiểm tra, xác nhận người gửi đúng như những gì họ nói.
  • Signature được tính toán bằng cách sử dụng header và payload, do đó bạn có thể xác thực rằng nội dung không bị giả mạo.

Vừa rồi là những thông tin cơ bản về JWT là gì, những ứng dụng, đặc điểm chính của JWT. Hy vọng bạn có thể áp dụng những kiến thức trên để giải quyết công việc của mình một cách hiệu quả. 

>>>Xem thêm: Học Python Để Làm Gì? Tại Sao Nên Học Python?

Hình ảnh: Sưu tầm

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *