JWT как строить архитектуру

  Переглядів 27,491

S0ER

S0ER

Рік тому

#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - t.me/softwareengineervlog
Спонсорство - donate.s0er.ru
Сайт платным контентом - soer.pro
Зеркало для видео Дзен Видео - zen.yandex.ru/id/5f578bdf22e2...
GitHub - github.com/soerdev
Чат для программистов - / discord
Группа ВК - codeartblog

КОМЕНТАРІ: 55
@MAGNet1911
@MAGNet1911 Рік тому
было бы не плохо оставлять ссылку на предыдущее видео по теме где-нибудь в описании или в первом, закреплённом комментарии. спасибо.
@losos6069
@losos6069 Рік тому
10 из 10, спасибо за годный контент!
@valbv
@valbv Рік тому
Посмотрел с удовольствием! Было бы интересно ещё узнать про архитектурные решения для областей, где цена компроментации токена может быть очень большой (Фин.тех., медицина) Первое что приходит в голову использовать ассиметричное шифрование данных, но наверняка есть варианты поинтереснее
@falldimka123
@falldimka123 Рік тому
Как вовремя, спасибо
@Marat-Gasanian
@Marat-Gasanian Рік тому
Спасибо за интересное видео 😊
@P_B_N_D
@P_B_N_D 3 місяці тому
Отличный разбор темы!👍👍👍 Понятно , последовательно, подробно! Я как человек, который до этого ничего не знал о токенах, понял все, что было сказано в видео.
@arahnid_9844
@arahnid_9844 9 місяців тому
Какие есть альтернативы для обеспечения большей безопасности?
@preegnees6664
@preegnees6664 Рік тому
Здравствуйте, а можно для read-only использовать access token, а чтобы нажать, как пример, на какую-нибудь кнопку нужно использовать refresh token?
@denisvladimirovich661
@denisvladimirovich661 Рік тому
Было бы не плохо узнать об oauth2.0 особенно в NET 5, 6(Если есть разница конечно же)
@ivkis3270
@ivkis3270 Рік тому
спасибо, очень полезное видео. Давно задавался вопросом, где хранить токены и что делать, если его украдут)
@user-ik5jz4yv5j
@user-ik5jz4yv5j 10 місяців тому
Спасибо что рассказали. Хоть где-то можно элементарно узнать теорию о jwt
@redice8928
@redice8928 4 місяці тому
да она повсюду
@andriichornyi9143
@andriichornyi9143 3 місяці тому
Зачетное видео.
@dmitrybabik8964
@dmitrybabik8964 Рік тому
а какие более безопасные альтернативы jwt токену предлагаются?
@ksviety
@ksviety Рік тому
аутентификация каждого критического действия, наверно, безопасней
@no101vmv
@no101vmv Рік тому
Каким образом? Через ввод логина пароля?
@ksviety
@ksviety Рік тому
@@no101vmv Ну много вариантов. например одноразовый код. Это конечно, немного разное - JWT и безопасность, но все же. Просто в токене не нужно передавать чувствительные данные, а сам токен можно выдавать под каждое (только одно) действие, и проверять подпись, разумеется. Приемущиство JWT просто в том, что не нужно на каждый запрос ходить в сервис аутентификации для его валидации, а сам сервис не должен эти токены хранить в базе данных. А, чтобы токеном не мог воспользоваться кто-то другой, например, можно цифровой отпечаток в токен сунуть (и подделать его будет нельзя, из-за подписи) - хотя бы тот же IP или еще, что нибудь придумать. Главное не делать этого с refresh токеном, а то подобные отпечатки в нем приведут к постоянной необходимости в аутентификации. В целом TLS, RS512, отпечаток, и одноразовасть токена выглядит безопасно. Однако если делать токены одноразовыми (например, через поле jti), то сервису, его выдавшему все же придется хранить эти токены, как использованные, а сервису, который использует эти токены для авторизации действия придется ходить в сервис аутентификации для валидации и инвалидации токенов. Так же если все таки нужно шифровать данные в токене, то JWS, вроде как это поддерживает (спецификация)
@PVBocs
@PVBocs 4 місяці тому
​@@no101vmvодноразовые пароли?
@the-tata
@the-tata Рік тому
Сойер, верни пожалуйста ночной стрим. Он нереально был крут.
@DmitriiRepnikov
@DmitriiRepnikov Рік тому
5:39 то что происходит в моей голове, когда я пытаюсь врубиться в новую для себя технологию
@unicoxr5tj417
@unicoxr5tj417 Рік тому
а будет ли практика? Покодировать авторизацию-аутентификацию?
@shalidor1619
@shalidor1619 Рік тому
Эт кодить надо, а не языком честь, ты чего))
@murat8757
@murat8757 Рік тому
Где Ночное Видео?????? Про Монолитныую Архетиктуру....и.п...... Чуть осталось Досмотреть!!!!
@golubevvictor
@golubevvictor Рік тому
RT формируется по тем же правилам, что и АТ, только с другим ключём?
@nmatyasov4875
@nmatyasov4875 Рік тому
Да, ключ естественно другой и время жизни, payload по вкусу
@tatakai6827
@tatakai6827 7 місяців тому
Знает кто нибудь статью или гайд как реализовать подобную архитектуру на spring boot?
@CELTRIX88
@CELTRIX88 Рік тому
подскажите, как отдельный микросервис проверяет валидность access токена?
@ilyakushlianski6519
@ilyakushlianski6519 Рік тому
по идее сервис должен знать секрет. Когда присылаем ему payload + signature, сервис берем payload и с помощью секрета подписывает его и получает свою signature. Если переданная и рассчитанная signature совпадают, то значит токен валиден
@MrLotrus
@MrLotrus Рік тому
@@ilyakushlianski6519 Секрет нужен для шифрования токена. А для валидации публичный ключ. Вот им уже можно делиться с другими приложениями.
@kamnsv
@kamnsv 4 дні тому
Как SERVICE поймет что AT действительный?
@unimaster3828
@unimaster3828 4 місяці тому
Я правильно понял, что 1RT = много AT? И вообще я практикую сейчас архитектуру, где RT - это JWT c AT. Когда срок AT приходит к концу, то с помощью RT запрашивается новая пара AT и RT, старые AT (инфу о том, что именно он просрочился я беру из RT) и RT помечаются как отозванные. Т.е 1RT = 1 новый RT = 1 AT.
@user-db3gs1sc2v
@user-db3gs1sc2v 5 місяців тому
По сути, после пятой минуты уже начинается задел на OAuth, было бы славно, если сказали бы об этом явно
@alexandr-v
@alexandr-v Рік тому
А как пользователь получает secret?
@ohtori7339
@ohtori7339 Рік тому
Если имеется ввиду клиент, то никак.
@redice8928
@redice8928 4 місяці тому
а при первом запросе пара логин и пароль не шифруется? А если шифруется, то как сервер понимает как это нужно расшифровать?
@geniusgabe8254
@geniusgabe8254 3 місяці тому
А смысл, если всё передаётся по https
@boycovclub
@boycovclub Рік тому
А что вы скажете про такую архитектуру. Насколько она безопасна. При регистрации, авторизации сервер выдает согласно логину и пароль закодированнный сигнатурой ключевого слова токен. Дальше токен на клиенте хранится в локалсторидже. Далее при каждом запросе в интерсепторах или мидлвере в заголовке мы кладем токен закодированный. А на стороне сервера перед доступом к сервисам роутов мы делаем проверку гуардс во фрейморке на токен парсим его и проверяем в БД есть ли такой пользователь с таким логином и паролем, и дальше даем доступ к апи. Тут смысл в этом что токен один.
@MrLotrus
@MrLotrus Рік тому
Теряется смысл использования JWT, если при каждом запросе надо лезть в БД.
@sochilling
@sochilling 10 місяців тому
@@MrLotrusВсмысле? Так в токене лежит к примеру userId, мы отправляем запрос на получение к примеру постов пользователя, в запросе отправляем токен, на сервере в данных с jwt получаем userId и по этому айди ищем посты у которых userId автора совпадает с userId который пришёл в запросе. О каком смысле jwt с бд ты говоришь?
@user-fg6jw1cy5v
@user-fg6jw1cy5v 3 місяці тому
@@sochilling у тя уже есть подпись токена, которая на стороне сервера делается, просто клади в payload доп инфу, типа ролей
@user-ul5ic2rw5h
@user-ul5ic2rw5h Рік тому
Со склейками, правками и редактурой.
@user-ik5jz4yv5j
@user-ik5jz4yv5j 10 місяців тому
Что
@user-ul5ic2rw5h
@user-ul5ic2rw5h 10 місяців тому
@@user-ik5jz4yv5j Видос.
@konstantinchvilyov9602
@konstantinchvilyov9602 Рік тому
Мысли, конечно, интересные и, вероятно, оригинальные. Но вы сами напросились на вопросы :) 1.Есть масса уже принятых и проверенных стандартов(протоколов) с использованием JWT. Не исключено, что вы предлагаете ещё лучше. Но чтобы это понять надо увидеть сравнение с существующими. Или я пропустил? 2.В как минимум одном из стандартов освежающий жетон(refresh token) используется только один раз для получения новой пары жетонов. И это даёт возможность быстро обнаружить его повторное использование, в отличие от предлагаемого вами многократного использования refresh token. Почему вы не используете это известное решение? 3.По поводу поддержки сессии: 3.1.Вы связываете освежающий жетон(refresh token) с сессией в приложении? 3.2.Если да, то как передаёте эту информацию в приложение? 3.3.Если заново установили подлинность(authenticate) и получили новый освежающий жетон(refresh token) то считаете началась новая сессия в приложении?
@p0z1ck
@p0z1ck 11 місяців тому
Передача refresh token на клиенскую сторону плохая идея, потому что в случае его утечки, третье лицо сможет пользоваться им бесконечно, отозвать будет очень сложно и не быстро.
@username-forbidden
@username-forbidden Місяць тому
Нужно делать чёрные или белые списки рефреш токенов в базе и во время каждого рефреша проверять по наличию в базе. Так же в профиле/аккаунте пользователя нужно сделать кнопку "Выйти на других устройствах", которая инвалидирует остальные токены этого пользователя из белого списка.
@lollolich2399
@lollolich2399 Рік тому
А что если мы будем хранить в рефреш токене ip адрес и девайс, с которого произошёл логин, и шифровать этот токен. Далее представим злоумышленник украл рефреш токен и пытается получить новый рефреш токен. Об cодержание токена, то есть об ip адресе и девайсе ему ничего не известно в силу того, что токен - это какая-та зашифрованная строка. Мы получаем от него украденный рефреш токен, дешифруем его, сверяем айпи адрес и девайс запроса с соответствующими значениями в токене, если проверка не прошла, то отклоняем запрос, иначе, то есть запрос на новый рефреш токен делает исходный юзер, что и получил изначальный рефреш токен, тогда выдаём новый рефреш токен. Какие подводные камни у такой схемы?
@viktor_borodin
@viktor_borodin 5 місяців тому
Возможны, ситуации как я понимаю, когда ip может меняться слишком часто. Например, в случае мобильной связи
@wonderful2122
@wonderful2122 2 місяці тому
Злоумышленник все знает о ip и девайсе. Шифруется только secret, Payload просто использует HS256 или что-то еще.
@cr3wcabanger
@cr3wcabanger Рік тому
а если при выдаче access_token добавлять в него ip клиента и проверять в сервисах ip из запроса с тем что лежит в jwt? По идее это же добавит безопасности, но не решает проблему целиком. В таком случае, если у нас в сервис придет не тот адрес мы можем послать сообщение на инвалидацию RT и перелогин пользователя.
@AUXLander
@AUXLander Рік тому
Вероятно, что в таком случае токен будет инвалидироваться слишком часто в мобильных устройствах
@nmatyasov4875
@nmatyasov4875 Рік тому
В видео не рассмотрен вопрос как вход/доступ с нескольких устройств (рабочий комп/домашний/ноут) или смартфона, те ip постоянно меняется, те надо делать коллекцию RT пользователя, где-то хранить, проверять "протухшие" и тп и тд, так что возни много
@akaZarj
@akaZarj 6 місяців тому
так и не сказал что использовать вместо jwt там где его нельзя использовать...
@wonderful2122
@wonderful2122 2 місяці тому
Сессии
@14types
@14types Рік тому
Какое-то лицо сглаженное и осветлённое, смотрится как-то не оч
JWT токены: формирование payload
13:54
S0ER
Переглядів 21 тис.
НЕОБЫЧНЫЙ ЛЕДЕНЕЦ
00:49
Sveta Sollar
Переглядів 5 млн
Помилка,  яку зробило військове керівництво 🙄
01:00
Радіо Байрактар
Переглядів 451 тис.
ISSEI funny story😂😂😂Strange World | Magic Lips💋
00:36
ISSEI / いっせい
Переглядів 87 млн
Разбираюсь в API крутых команд
28:01