Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 JWT. Access token и Refresh token. Зачем? Почему?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
Делаю REST API для приложения. Стал вопрос безопасности. Мой выбор пал на JWT (JSON Web Token). Хорошо. Нашел и понял как это делается и работает - сделал. Сделал только Access token. Но потом понял что "а что делать когда срок действия access token-а истекает? просить юзера залогинится заново? ну как-то такое себе занятие".

Залез в гугл и увидел тему с Refresh token-ом. Начал изучать. Но вот полного понимания того зачем он нужен нет.

Подскажете зачем он нужен? Может есть другие, более лучшие, способы авторизации пользователя?

P.S. читал на хабре и на разных сайтах и везде разное пишут. Основная проблема это в отзыве выданных токенов. Хранить ли в бд или в памяти и т.д.
9 янв 19, 00:34    [21780161]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 2032
A Refresh Token is a special kind of token that can be used to obtain a renewed access token —that allows accessing a protected resource— at any time. You can request new access tokens until the refresh token is blacklisted. Refresh tokens must be stored securely by an application because they essentially allow a user to remain authenticated forever.

Если речь про AOuth2
Вот тоже самое только в спеках
https://tools.ietf.org/html/rfc6749#section-1.5

Если коротко по русски то рефреш токен очень опасная вещь если ее получил враг то он может не зная пароля и логина получать доступ к Вашим ресурсам. Часто эту фичу запрещают в АОЗ 2
9 янв 19, 02:51    [21780187]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Tsyklop, токены хранят только где-то на клиенте, именно потому у большинства из них есть срок жизни. jwt токен обычно шифруют каким либо из алгоритмов(в зависимости от срока жизни можно подобрать алгоритм, который за данной время не взломать или вовсе выбрать какие-нибудь ассиметричные ключи) и на сервер сайде их валидируют на лету.
(https://github.com/auth0/java-jwt)

Токены на клиент сайде не рекомендуют хранить в куках, лучше использовать local storage.

Refresh token нужен для того, чтобы по нему сервер вернул новый Access token после того, как у старого истек срок жизни. У Refresh token`а тоже есть срок жизни(например - 1 день)


Вместо refresh token вы можете использовать свою имплентацию oauth2 ^^
С другой стороны, зачем вам вообще токены? У true way rest stateless сервисы ? Настройте нормально сессию при авторизации, пусть живет на бэкенде и делов то.
9 янв 19, 09:07    [21780266]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Озверин
сессию
+1
Это у MS повальное увлечение токенами и аллергия на сессию.
Но в java то корпоративное ПО.
9 янв 19, 09:50    [21780281]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
Озверин,
То бишь. Когда закончилось время жизни access token-а я делаю запрос с refresh token-ом. Если он валидный то сервак мне возвращает новые access и refresh. При этом на фронте не выбрасывает юзера на форму логина. так?
9 янв 19, 10:08    [21780297]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Tsyklop
Озверин,
То бишь. Когда закончилось время жизни access token-а я делаю запрос с refresh token-ом. Если он валидный то сервак мне возвращает новые access и refresh. При этом на фронте не выбрасывает юзера на форму логина. так?


да, все правильно. Релогин будет только когда истечен refresh token(по идее!).
9 янв 19, 10:20    [21780306]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
Может есть еще какие-то решения для авторизации клиента?
9 янв 19, 17:05    [21780836]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Tsyklop
Может есть еще какие-то решения для авторизации клиента?


одноразовые пароли или сертификаты ) Можно железные или программные ключи.

Ну и надо отличать авторизацию от аутиентификации, вы же за аутиентификацию спрашиваете?
9 янв 19, 17:09    [21780842]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
Озверин
Ну и надо отличать авторизацию от аутиентификации, вы же за аутиентификацию спрашиваете?


да, именно. По началу я делал через сессию, но там было приложение монолит. теперь же все отдельно
9 янв 19, 17:31    [21780880]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
Озверин
Ну и надо отличать авторизацию от аутиентификации, вы же за аутиентификацию спрашиваете?


да, именно. По началу я делал через сессию, но там было приложение монолит. теперь же все отдельно
была защита на сервере, теперь токенами занимается клиенты и хакеры).
9 янв 19, 17:39    [21780894]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
приложение монолит. теперь же все отдельно
поигрался? Теперь вертай все взад)
9 янв 19, 17:42    [21780898]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
А я говорил, что проблемы будут с авторизацией...

https://github.com/sqshq/PiggyMetrics
вот тут очень примитивно описано и реализовано(несколько микросервисов и токены и все дела).
9 янв 19, 19:20    [21780986]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
Озверин
А я говорил, что проблемы будут с авторизацией...

https://github.com/sqshq/PiggyMetrics
вот тут очень примитивно описано и реализовано(несколько микросервисов и токены и все дела).


Тут юзается OAuth2 стартер бута. Я делал без него. Мало чем это мне поможет.
9 янв 19, 20:04    [21781016]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Tsyklop
Озверин
А я говорил, что проблемы будут с авторизацией...

https://github.com/sqshq/PiggyMetrics
вот тут очень примитивно описано и реализовано(несколько микросервисов и токены и все дела).


Тут юзается OAuth2 стартер бута. Я делал без него. Мало чем это мне поможет.


без спринг бута или со своей имплентацией токенов:?)
9 янв 19, 20:23    [21781024]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
mayton
Member

Откуда: loopback
Сообщений: 43367
Tsyklop
Делаю REST API для приложения. Стал вопрос безопасности. Мой выбор пал на JWT (JSON Web Token).

Обычно такое делают когда в сети много Rest сервисов. Без этого постановка выглядит
слегка... хм... гипертрофированной. От этого у тебя и непонимание.
9 янв 19, 20:27    [21781025]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 2032
refresh token всеж не имеет срока давности и его можно поставить только в ченый список.

The main concept of refresh token , is that it is long lasting and never expires. The access token has expiry time and it expires, once it expires we can go for the refresh token, that will be used again and again until the user revokes from his account.

https://stackoverflow.com/questions/8953983/do-google-refresh-tokens-expire

Я для тех кто с первого раза не понял
9 янв 19, 20:43    [21781029]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 2032
Tsyklop
Может есть еще какие-то решения для авторизации клиента?


Академическое решение для тех кто не может осилить протокол SAML2 это осилить OAth2 Authorization Code Grant воркфло

Картинка с другого сайта.

https://tools.ietf.org/html/rfc6749#section-1.3.1

Все зависит какой авторизационный сервер вам предстоит использовать и какой протокол этот сервер поддерживает
9 янв 19, 20:54    [21781033]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
Озверин
без спринг бута или со своей имплентацией токенов:?)

Со спринг бутом. Но своя реализация фильтров, создания токенов через jwt либу.
9 янв 19, 21:12    [21781042]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Tsyklop
Озверин
без спринг бута или со своей имплентацией токенов:?)

Со спринг бутом. Но своя реализация фильтров, создания токенов через jwt либу.


а зачем? Все есть из коробки жы.
10 янв 19, 00:55    [21781151]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
Озверин
а зачем? Все есть из коробки жы.

Хм. тоже верно
10 янв 19, 01:21    [21781154]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop,
Из коробки есть все штук 10 методов аутентификации. Поэтому тема давно изжевана и расписана.
10 янв 19, 07:16    [21781195]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
mayton
Member

Откуда: loopback
Сообщений: 43367
А какой смысл давать человеку 10 методов если он не видит мотивации к применению?

Дайте ему мотивацию.
10 янв 19, 08:54    [21781239]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
mayton
А какой смысл давать человеку 10 методов если он не видит мотивации к применению?

Дайте ему мотивацию.


зайди, объясни, еще и мотивируй...это не тот форум - тут нет коучей ;)))
10 янв 19, 08:56    [21781242]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
mayton
Дайте ему мотивацию.
мотивирует топик стартер интересным вопросом))) LOL.
10 янв 19, 09:00    [21781249]     Ответить | Цитировать Сообщить модератору
 Re: JWT. Access token и Refresh token. Зачем? Почему?  [new]
mayton
Member

Откуда: loopback
Сообщений: 43367
Озверин
mayton
А какой смысл давать человеку 10 методов если он не видит мотивации к применению?

Дайте ему мотивацию.


зайди, объясни, еще и мотивируй...это не тот форум - тут нет коучей ;)))

Эйнштейн говорил что если мы не можем объяснить суть какой то вещи ребёнку. - значит мы сами это не понимаем.
10 янв 19, 09:02    [21781251]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить