Bạn đã bao giờ tự hỏi sẽ tuyệt vời thế nào nếu một ứng dụng biết bạn đang cố truy cập nó mà không cần phải xác thực lại thông tin đăng nhập của bạn nhiều lần chưa?
Giả sử bạn thử truy cập ứng dụng sau một hoặc hai ngày, hoặc thậm chí sau cả tuần và bằng cách nào đó. thật kỳ diệu [không hẳn là xD] hệ thống chỉ biết đó là bạn
Hơn nữa, khía cạnh Bảo mật của ứng dụng hoàn toàn mạnh mẽ, không cá nhân nào khác có mục đích xấu có thể truy cập thông tin bí mật. Giờ đây, đó là âm nhạc đến tai nhà phát triển -- hoặc ít nhất là một cách mạnh mẽ để bảo mật các ứng dụng và hệ thống trên quy mô lớn
Trước khi tìm hiểu bí quyết về mã thông báo làm mới, trước tiên hãy hiểu tại sao nó lại cần thiết
Cách tiếp cận thông thường của ứng dụng bảo mật
Nhiều ứng dụng sử dụng cái gọi là xác thực dựa trên mã thông báo để cho phép người dùng truy cập thông tin [hoặc tài nguyên] thường không có sẵn cho công chúng [người dùng chưa được xác thực]
Mã thông báo là sự chấp thuận duy nhất được cấp cho bạn [giống chữ ký điện tử hơn] để truy cập bất kỳ tài nguyên nào. Ứng dụng sẽ cấp nó cho bạn sau khi bạn đã xác thực chính mình bằng thông tin đăng nhập hợp lệ. Những mã thông báo này thường tồn tại trong thời gian ngắn, tôi. e. , chỉ có hiệu lực trong một khoảng thời gian ngắn [ví dụ 5-15 phút]. Điều này đủ để bạn thực hiện một nhiệm vụ cụ thể yêu cầu xác thực nhưng lại khiến những cá nhân có ý định xấu khó có được các tài nguyên bí mật hơn. Bây giờ, cho đến khi mã thông báo hết hạn, người dùng sẽ không phải nhập lại thông tin đăng nhập
Loại hệ thống này được sử dụng rộng rãi để thực hiện các giao dịch trực tuyến trong đó bảo mật là vô cùng quan trọng. Tuy nhiên, do tính chất tồn tại trong thời gian ngắn của các mã thông báo truy cập như vậy, người dùng sẽ phải tự xác thực lại để được cấp lại mã thông báo truy cập mới
Làm mới mã thông báo để giải cứu
Chúng ta có thể thấy rõ rằng về tổng thể, mã thông báo truy cập mang lại khả năng bảo mật tốt hơn nhưng lại cản trở trải nghiệm người dùng [UX] của ứng dụng. Hãy tưởng tượng bạn phải đăng nhập lại nhiều lần chỉ vì ứng dụng phải đảm bảo rằng bạn vẫn ổn. bạn
Đây là nơi các mã thông báo làm mới đến để giải cứu. Mã thông báo làm mới chỉ giúp bạn xác thực lại người dùng mà không cần họ phải nhập lại thông tin đăng nhập nhiều lần. Mã thông báo truy cập được cấp lại, với điều kiện mã thông báo làm mới là mã hợp lệ yêu cầu quyền truy cập tài nguyên bí mật. Phương pháp này cung cấp trải nghiệm người dùng nâng cao trong khi vẫn giữ giao diện bảo mật mạnh mẽ
OAuth 2. 0 là một khung xác thực phổ biến về cơ bản cho phép các ứng dụng khách truy cập tài nguyên do các ứng dụng và máy chủ khác cung cấp thay mặt cho người dùng. Kiến trúc này tận dụng lợi ích của việc sử dụng mã thông báo truy cập và làm mới
Bây giờ, đã thảo luận về tác động của mã thông báo làm mới đối với việc nâng cao trải nghiệm người dùng của ứng dụng, liệu có bất kỳ lợi ích nào khác khi sử dụng chúng không?
Đúng là nói chung, các ứng dụng web và SPA [Ứng dụng một trang] có nghĩa là có quyền truy cập ngắn hạn vào bất kỳ tài nguyên nào tận dụng xác thực. Khi bạn cần truy cập vào tài nguyên sau một vài ngày, bạn chắc chắn có thể đăng nhập lại, phải không?
Khi nào nên sử dụng Mã thông báo làm mới?
Mục đích chính của việc sử dụng mã thông báo làm mới là rút ngắn đáng kể tuổi thọ của mã thông báo truy cập. Sau đó, mã thông báo làm mới có thể được sử dụng để xác thực người dùng và khi được ứng dụng yêu cầu mà không gặp sự cố như cookie bị chặn, v.v. Nếu điều đó không có nhiều ý nghĩa, hãy nghĩ về nó theo cách này
Khi trình duyệt đưa ra yêu cầu tới điểm cuối API để sử dụng tài nguyên chỉ được cung cấp cho người dùng được xác thực, ứng dụng sẽ yêu cầu thông tin đăng nhập của người dùng. Và khi xác thực [đăng nhập] thì ứng dụng trên trình duyệt của người dùng được cấp quyền truy cập tài nguyên. Quyền truy cập này được cung cấp bằng cách chia sẻ mã thông báo truy cập với trình duyệt của người dùng để các lệnh gọi API tiếp theo từ trình duyệt -- yêu cầu thông tin đăng nhập -- có thể được gửi mà không gặp rắc rối nào
Hiện tại, trong quá trình chia sẻ mã thông báo truy cập với người dùng, hệ thống cũng có thể cung cấp mã thông báo làm mới để sau này xác thực người dùng trong khi thực hiện các lệnh gọi API tiếp theo -- ngay cả khi mã thông báo truy cập đã hết hạn -- bằng cách yêu cầu mã thông báo truy cập mới
Do đó, mã thông báo làm mới cho phép các ứng dụng nhận mã thông báo truy cập mới chỉ sử dụng lệnh gọi API mà không cần người dùng phê duyệt cookie, đăng nhập nhiều lần, v.v.
Hạn chế và cách để chinh phục
Cũng đúng là bạn có thể không cần "siêu năng lực bổ sung" được cung cấp bởi mã thông báo làm mới để giữ cho phiên người dùng và trải nghiệm mượt mà. Xét cho cùng, các phương pháp như cookie và xác thực im lặng cũng có lợi theo cách riêng của chúng. Hãy nói về một kịch bản khi mã thông báo làm mới thực sự có thể trở thành kryptonite của ứng dụng. [không hẳn xD]
Nếu mã thông báo làm mới bị xâm phạm [ai đó đã có trong tay hoặc thậm chí tệ hơn -- đánh cắp mã thông báo đó], thì cá nhân đó không chỉ có quyền truy cập vào các tài nguyên do API cung cấp mà còn cả lượng thời gian quyền truy cập đã được cấp. . Bây giờ, đó là một kịch bản đáng sợ cho cả nhà phát triển và người dùng
Phải nói rằng, các biện pháp đối phó như Xoay vòng mã thông báo làm mới và Phát hiện tái sử dụng tự động giúp hạn chế bản chất phá hoại -- và làm nổi bật lợi ích của những mã thông báo làm mới này
Trong các phương pháp như vậy, khi mã thông báo làm mới được sử dụng để truy cập bất kỳ tài nguyên nào, hệ thống không chỉ phản hồi bằng mã thông báo truy cập mà còn bằng mã thông báo làm mới mới. Mọi yêu cầu API tiếp theo có thể được thực hiện thông qua mã thông báo làm mới mới hơn từ đó trở đi. Nếu một yêu cầu được thực hiện bằng cách sử dụng mã thông báo làm mới cũ hơn, thì yêu cầu đó sẽ bị từ chối một cách hiệu quả [giả sử người/khách hàng yêu cầu không được xác thực]
Ngoài ra, phương pháp Xác thực dựa trên rủi ro [RBA] gợi ý rằng nếu mã thông báo làm mới được sử dụng nhiều lần, mã thông báo sẽ bị thu hồi; . Cơ chế như vậy giúp tăng cường bảo mật hơn nữa cho các ứng dụng sử dụng mã thông báo làm mới
Phần kết luận
Mã thông báo làm mới thực sự là một cách hoàn hảo để cung cấp bảo mật mạnh mẽ đồng thời mang lại trải nghiệm tuyệt vời cho người dùng, miễn là nó được sử dụng theo những cách phù hợp. Điều đó đang được nói, nó có thể không hoàn toàn cần thiết cho các ứng dụng của bạn và nhu cầu của chúng, vì vậy quyết định cuối cùng thuộc về bạn
Tôi hy vọng blog này cung cấp thông tin chi tiết về mã thông báo làm mới và cách bạn có thể sử dụng chúng trong các ứng dụng của mình. Cảm ơn vì đã đọc