Tác giả: Phạm Thu Phương
Lần cập nhật gần nhất: ngày 08 tháng 07 năm 2024
JWT là gì? Đây là một trong những thuật ngữ được sử dụng khá phổ biến trong việc thực hiện xác thực và trao đổi thông tin một cách an toàn giữa khách thể và máy chủ hoặc giữa các người dùng với nhau. Nhờ có JWT mà sự bảo mật về thông tin của web và cả thống của người dùng trở nên an toàn hơn. Vậy để có thể hiểu sâu hơn về chuỗi JASON Web Token - JWT mời bạn cùng tham khảo thêm nội dung trong bài viết sau.
JWT hay còn được gọi là JASON Web Token được hiểu là một tiêu chuẩn mà trong đó có chứa các chuỗi ký tự được được chia ra thành các phần. Phần thông tin này sẽ được truyền đi một cách an toàn bởi các đối tượng JASON. Trong đó các đối tượng được truyền đi này sẽ được xác thực bằng và được đánh dấu thông qua chính chữ kỹ của nó. Hay nói cách khác JWT như là một chuỗi các ký tự được mã hóa nhằm mục đích sử dụng cho việc xác thực. Vậy để có thể tìm hiểu kỹ hơn về các vấn đề có xoay quanh JTW mời bạn các bạn cùng theo dõi bài viết sau đây.
Nếu các thuật ngữ trong tin học bằng tiếng Anh phức tạp và khó hiểu đối với bạn thì mời bạn cùng theo một số gợi ý về các thuật ngữ sau đây.
- Token được định nghĩa là một loại chữ ký được biểu hiện dưới dạng số hay chữ ký điện tử và đã được mã hóa và tồn tại dưới dạng các con số. Mã Token được chia ra thành 2 dạng chính đó là hard token và soft token. Cả hai loại này đều được sử dụng khi người dùng thực hiện các phiên giao dịch.
- Header chính là phần mở đầu trong chuỗi các ký tự thuộc JWT đã được mã hóa.
- Playload đây chính là phần thông tin được truyền đi và là phần thứ hai trong chuỗi ký tự JWT, đứng ngay sau phần Header và dấu chấm của phần mở đầu.
- Signature chính là phần chữ ký đã được mã hóa và nó được tạo thành từ hai phần trước đó là Header và Playload cộng lại.
Xem thêm: Việc làm lập trình viên front end
JWT được chia ra làm 3 phần đó là Header, Payload và signature. Cả 3 phần này đều được biểu hiện bằng các chuỗi ký tự và được ngăn cách nhau bởi dấu chấm. Ở mỗi thành phần trong chuỗi JWT lại được chia nhỏ thành các thành phần khác nhau.
Phần mở đầu Header lại được chia nhỏ thành các phần đó là thứ nhất đó là loại mã token sẽ được sử dụng, thứ hai đó là phần chữ ký. Trong đó, loại mã token được sử dụng đó là JWT, thuật toán được sử dụng để mã hóa lại được chia thành 2 loại mà người dùng có thể lựa chọn đó là HS256 và RSA.
Các thông tin trong phần mở đầu trong các Header này sẽ được mã hóa bằng cách sử dụng chương trình mã hóa - Base64 url các chuỗi các ký tự có trong header.
Playload là tập hợp các khai báo mà trong đó có chứa các thông tin có thể được truyền đi và bao gồm cả các thông tin có chứa trong các mã Token. Vậy cụ thể các thông tin có trong khai báo báo trong Playload bao gồm các loại khai báo như sau:
Registered Claim - khai báo cài đặt: Trong khai báo này có chứa tất cả các thông tin có liên quan đến mã Token như:
- Người phát hành mã Token
- Các chủ có liên quan đến Token
- Người sử dụng Token là ai?
- Thời hạn sử dụng của Token khi nào hết hạn?
- Thời điểm token chưa hợp lệ
- Token được phát hành vào thời điểm nào? Thời gian được phát hành được tính theo đơn vị Unix time - được tính bằng giây.
- Mã định danh của JWT hay JWT ID
Tìm hiểu thêm: Việc làm quản trị mạng
Hai dạng khai báo còn lại của JWT lần lượt là Public Claim - khai báo chung và Private Claim - khai báo riêng. Cụ thể mỗi phần khai báo này cần chú ý các nội dung sau đây.
Khai báo chung hay còn gọi là Public Claim có thể được tùy ý khai báo. Tuy nhiên một trong nhưng để tránh tình trạng xảy ra trùng lặp hay đối lập nhau thì Public Claim nên được khai báo tại IANA JASON Web Token. Hoặc bạn cũng có thể khai báo bằng cách chọn một URL mà không chứa các tên đã bị trùng lặp.
Còn đối với Private Claim thì bạn có thể thực hiện đảm bảo không trùng với các khai báo cài đặt và khai báo chung như trên. Đồng thời trong khai báo này chủ yếu chứa các thông tin của người dùng trong đó có cả mã định danh của người dùng. Như vậy, từ việc khai báo này khi các khai báo được mã hóa thì thông tin của người dùng sẽ được xuất hiện. Điều này có nghĩa bạn sẽ biết được thông tin khai báo này là của người nào gửi lên.
Đó là các thông tin khái quát về các phần bên trong của phần hai Playload trong một chuỗi JWT. Vậy trong phần nội dung cuối cùng Signature - chữ ký sẽ bao gồm các nội dung gì? Câu trả lời sẽ xuất hiện trong phần nội dung tiếp theo.
Xem thêm: Việc làm backend developer
Phần chữ ký trong chuỗi ký tự của JWT chính là phần nội dung được được tổng hợp từ kết quả của hai phần trước đó là Header và Playload. Với các thuật toán được thực hiện từ hai giai đoạn trước và các thông tin đã được mã hóa sau đó. Chữ ký là cách để xác minh rằng các thông điệp được gửi đi được đảm bảo an toàn và không có bất kỳ sự thay đổi nào. Khi các mã Token được người dùng sử dụng bằng các Secretkey thì điều này đồng nghĩa với việc thông tin về người gửi mã chữ ký đó là ai?
JWT có hai vai trò chính đó là được sử dụng trong việc xác thực khi người dùng muốn đăng nhập vào bất kỳ địa chỉ web hay ứng dụng nào. Người dùng được phép đăng nhập và sử dụng được các tài nguyên tại các trang web hay ứng dụng trên mạng chỉ khi từng cánh cửa được mở ra khi có chìa khóa vạn năng là các mã Token - chữ ký được thực hiện để đáp ứng được các yêu cầu được đưa ra. Đây chính là mối quan hệ người dùng với máy chủ.
Trường hợp thứ hai đó là JWT được sử để có thể trao đổi thông tin - Information Exchange. JWT với 3 chuỗi thành phần đại diện cho các phần thông tin đã được mã hóa theo một quy trình làm việc. Đặc biệt thông qua chữ ký của người gửi mà người nhận có thể xác định được các thông tin đã được gửi đến đó là thật hay giả mạo. Chính vì vậy, đây cũng chính là một trong những cách để người dùng có thể trao đổi thông tin một cách an toàn tuyệt đối.
Tìm hiểu thêm: Cryptography là gì?
Để có thể hiểu hết được các tính năng có trong JWT thì việc tìm hiểu về quy trình hoạt động của JWT là điều mà bạn nên làm. Vậy quy trình hoạt động của JWT như thế nào? Và quá trình mà các JWT hoạt động ra sao?
Quy trình hoạt động của một chuỗi JWT được thực hiện thông qua 6 bước sau đây:
Bước 1: Người sử dùng đăng nhập và các ứng dụng hay một trang web bất kỳ thì các thông tin trong phần đăng nhập đó sẽ xác thực để định danh người dùng.
Bước 2: Tạo một chuỗi JWT bí mật sau khi người dùng đã đăng nhập thành công vào các ứng dụng hay các web khác.
Bước 3: Quay trở lại với các trình duyệt, sau khi người dùng hoàn thành việc đăng nhập thì công đoạn làm việc tiếp theo thuộc về các trình duyệt - Browser sẽ khai báo các thông tin và mật khẩu người dùng về máy chủ.
Bước 4: Chuỗi JWT sẽ được gửi đến các header để được cấp phép.
Bước 5: Kiểm tra lại chuỗi JWT và có được thông tin của người dùng từ chính chính các chuỗi JWT đã được gửi đến.
Bước 6: Sau khi máy chủ đã có được các thông tin xác thực của người dùng thông qua các chuỗi JWT đã được gửi đến thì tiếp theo sau đó máy chủ sẽ gửi phản hồi lại máy khách. Máy chủ sẽ gửi lại quyền truy cập Token và làm mới các mã Token bằng các chuỗi JWT về trình duyệt.
Chính các bước thực hiện này sẽ giúp người dùng trong việc xác thực thông tin đăng nhập một cách nhanh chóng hơn bởi các mã Token trong chuỗi JWT sẽ được trả về trình duyệt và sẽ được lưu lại trên chính trình duyệt của người dùng ngay sau đó.
Khi người dùng muốn đăng nhập vào các ứng dụng hay web nào khác thì máy khách sẽ gửi các yêu cầu có kèm theo các mã Token JWT đến máy chủ.
Một câu hỏi được đặt ra về chuỗi JWT đó là Secret Key trong chuối JWT có nghĩa là gì? Thuật toán HS256 được sử dụng để biểu hiện ý nghĩa của chuỗi JWT. Điều này có nghĩa sự bảo mật là một chìa khóa đối xứng chỉ được biết bởi hai đối tượng là người gửi và người nhận.
Nó được sắp xếp và phân bổ ngoài các băng thông. Chính vì vậy, nếu người gửi có ý muốn dễ dàng nhận được các mã Token thì điều này có nghĩa người gửi cần phải gửi cho người nhận với sự bảo mật ngoài băng thông.
Để đảm thông tin của người dùng thì một tiêu chuẩn với các chuỗi JWT đã ra đời phục vụ cho việc xác thực và bảo mật thông tin người dùng, và thông qua đó việc trao đổi thông tin giữa các người dùng, giữa máy chủ và máy khách cũng trở nên dễ dàng hơn.
Các thông tin và kiến thức trong tin học như một dòng chảy luôn luôn đổi mới và chạy theo xu hướng của sự phát triển khoa học, công nghệ hiện đại ra đời. Người tạo ra các sản phẩm không ít nhưng kẻ phá hoại các sản phẩm đó cũng là một con số không hề nhỏ. JWT ra đời để có thể tạo ra được các chìa khóa bảo mật để giúp cho người dùng không gặp phải các rắc rối về vấn đề này.
Như vậy, thông qua các thông tin trong bài viết JWT là gì? Hy vọng các thông tin trên phần nào giúp bạn hiểu được JWT là gì? Các thành phần trong đó và cách mà nó hoạt động ra sao? Ngoài ra bạn còn có thể tham khảo thêm nhiều các thông tin khác có liên quan đến JWT và các thuật ngữ chuyên ngành liên quan đến nó.
Oauth là gì? Kiến thức hữu ích nhất cho dân công nghệ
Một trong những thuật ngữ có liên quan trực tiếp đến chuỗi JWT đó chính là Oauth - sự ủy quyền đăng nhập bên thứ 3. Vậy để hiểu hơn về các thuật ngữ có liên quan đến Oauth mời bạn cùng tham khảo bài viết Oauth là gì? Ngay sau đây.
Về Timviec365
Dành cho ứng viên
Dành cho nhà tuyển dụng
Việc làm theo khu vực
Việc làm theo ngành nghề
Công ty TNHH MTV JOB365
Nơi cấp: Sở Kế hoạch và Đầu tư tỉnh Hưng Yên
Địa chỉ: Thôn Thị Trung, Xã Đình Dù, huyện Văn Lâm, Hưng Yên.Hotline: 0979.524.615
Liên hệ telegram: @timviec365
Email: timviec365.vn@gmail.com
TẢI APP ĐỂ TÌM VIỆC SIÊU TỐC
App CV365
App JobChat365
Công ty TNHH MTV JOB365
Nơi cấp: Sở Kế hoạch và Đầu tư tỉnh Hưng Yên
Địa chỉ: Thôn Thị Trung, Xã Đình Dù, huyện Văn Lâm, Hưng Yên.Hotline: 0979.524.615
Liên hệ telegram: @timviec365
Email: timviec365.vn@gmail.com
TẢI APP ĐỂ TÌM VIỆC SIÊU TỐC
Tải app để tìm việc siêu tốc Tạo CV đẹp với 365+ mẫu CV xin việc