Keycloak и Spring Security

  Рет қаралды 9,420

Уголок сельского джависта

Уголок сельского джависта

Күн бұрын

Keycloak - популярный SSO-сервис (Single Sign On), предоставляющий единую точку входа для всех ваших приложений, реализующий протоколы OAuth и OIDC. Keycloak может быть использован в связке со Spring Security с минимальным количеством дополнительного кода. В этом ролике я продемонстрирую настройку ресурс-сервера и логина Spring Security OAuth2 с использованием Keycloak.
00:00 Вступление и важное сообщение
02:05 Загрузка, запуск и настройка Keycloak
10:06 Ресурс-сервер
16:08 Роли рилма и получение их в Spring Security
27:30 OAuth-логин
Репозиторий проекта: github.com/alex-kosarev/sprin...
#java #spring #springsecurity #keycloak #oauth #oidc
Мой сайт: alexkosarev.name/
Паблик в VK: public218833461
Канал в Telegram: t.me/+TZCuO38vG3oqu_Jq
Стать доном: donut/shurik.codes
Донаты в Boosty: boosty.to/akosarev/purchase/1...
Донаты в Tinkoff: www.tinkoff.ru/cf/4PEOiVCZQuS

Пікірлер: 50
@moscowkremlingovernment
@moscowkremlingovernment 11 ай бұрын
Не,ну это бинго ! Впечатление такое что видосы появляются по ментальному запросу,буквально стоит подумать о какой то теме и тут же является видео. Спасибо,низкий поклон за труд и интересную подачу материала,это сверхценная информация.
@marinakaryukova6231
@marinakaryukova6231 11 ай бұрын
Да, keycloak это как раз то что сейчас нужно! Спасибо!
@grigorev.nikita
@grigorev.nikita 11 ай бұрын
Супер полезные видео на русском языке, желаю не останавливаться и продвижения канала. Про консул видео очень даже зашло, как раз на работе начал поднимать новый проект на микросервисной архитектуре и заиспользовал то, о чем ты рассказывал. Правда в итоге остановился на Eureka. Так что видео на тему микросервисов и девопса для java-разработчика тоже очень интересны.
@paradiesd
@paradiesd 11 ай бұрын
Консул тоже было очень полезно, не зря ты точно потратил время
@vla-zav
@vla-zav 11 ай бұрын
О боже мой... Спасибо большое... Я как раз в июле выхожу на стажировку, где будет это.... Спаситель... Обожаю тебя💙💙💙💙💙💙💙
@Devivl
@Devivl 2 ай бұрын
Спасибо за отличное видео. Тема непростая, но у тебя отлично получается преподносить сложные вещи простым языком. Спасибо. За хорошее настроение тоже спасибо (21:07) :)
@erikshaydulin8272
@erikshaydulin8272 11 ай бұрын
Офигеть весь интернет перерыл в поисках новейшей информации по Spring Boot 3 и keycloak мало инфы и только на английском, спасибо автор. Респект.
@MamayFreeride
@MamayFreeride 11 ай бұрын
Прикольные вещи рассказываешь. Мне как программисту с опытом достаточно посмотреть начала, что бы понять о чем речь и стоит ли брать такие инструменты в работу.
@user-zm9on5rb8z
@user-zm9on5rb8z Ай бұрын
Браво! Маэстро кода)
@dmaberlin
@dmaberlin 4 ай бұрын
я коричневые свичи смазал хорошенько и звук стал тише и приятнее =) по поводу помехи для видео
@krab9512
@krab9512 11 ай бұрын
Спасибо большое за видео, очень полезно оказалось, как раз с Keycloak сейчас разбираюсь! А будет вообще желание снять видео с мини проектом по типу: пару микросервисов + security + Keycloak + kubernetes? Смотреть индусов, конечно, интересно, но не всегда там все хорошо раскрывают. За ваши видео респект огромный!
@shurik_codes
@shurik_codes 11 ай бұрын
Про k18s не знаю, ибо не силён в нём
@marinakaryukova6231
@marinakaryukova6231 11 ай бұрын
@@shurik_codes про k8s есть хороший курс на канале слёрм. Открытая вечерняя школа. Kubernetes для разработчиков (Осень 2021) Слёрм. kzfaq.info/sun/PL8D2P0ruohOBSA_CDqJLflJ8FLJNe26K-
@krab9512
@krab9512 11 ай бұрын
@@shurik_codes ну можно и без k8s, на docker тоже было бы интересно)
@user-ic2cb6sc8i
@user-ic2cb6sc8i 9 ай бұрын
Все круто! Пока единственный русскоязычный пример после всех изменений! Только можно просьбу, Scratch круто смотрится, но можно через постман примеры? И если есть времч, немного подробней обьяснять) А так круто!
@alexeysamkov7095
@alexeysamkov7095 11 ай бұрын
Спасибо большое, нужно будет как то поддержать проект, придется в ВК аккаунт что ли создавать только ради этого, а то не имею, т.к. название ВК не нравится. Как раз недавно делал ldap аутх в приложении, java не мой профиль, но разобраться удалось, и работает. Приятно видеть, как человек разбирается в теме. Хочу так жеж😂
@evtrapeznikov
@evtrapeznikov 9 ай бұрын
Очень познавательные видео. Еще хотелось бы материал про связку React+Spring+Keycloak. Когда front, для получения авторизации обращается только в spring, а spring уже в keycloak.
@rainrainov4495
@rainrainov4495 2 ай бұрын
Подписался. Аоставил лайк. Написал коммент. Жду следующих видео.
@user-md8bw3te3v
@user-md8bw3te3v Ай бұрын
всё супер
@dmaberlin
@dmaberlin 4 ай бұрын
спасибо
@romanovichihin2429
@romanovichihin2429 9 ай бұрын
лайк, коммент, некст!
@justedlev
@justedlev 8 ай бұрын
Спасибо за этот урок, есть вопрос, в данном видео мы рассмотрели защиту ресурсов на уровне зарегистрированных пользователях, а как обезопасить такое отношение когда есть 2 и более микросервисов и им нужно получать ресурсы друг друга (service to service) с использованием rest и при использовании брокера сообщений, как работает защита на таких уровнях? Спасибо
@shurik_codes
@shurik_codes 8 ай бұрын
Про REST я буду рассказывать в материалах про OAuth/OIDC
@justedlev
@justedlev 8 ай бұрын
@@shurik_codes я имею в веду защита обращений одного микросервиса к другому Service to Service (S2S) authorization, как организовать слой защиты для окружения микросервисной архитектуры
@user-ti7wk4qt6s
@user-ti7wk4qt6s 27 күн бұрын
Спасибо! Насчет донатов - можно ли организовать более классический вариант типа СБП / перевода по номеру? Думаю, многим так будет удобнее
@shurik_codes
@shurik_codes 27 күн бұрын
Это надо номер телефона публиковать, а кроме тех, кто хочет поддержать, есть и те, кто попытается использовать эту информацию со злым умыслом
@mikhailyegorov27
@mikhailyegorov27 11 ай бұрын
Как ты столько всего запомнил? ) сколько раз ты настраивал oauth? ) Челяба на связи
@shurik_codes
@shurik_codes 11 ай бұрын
Опыт, сколько раз - не считал)
@KakoitoTam
@KakoitoTam 3 ай бұрын
Спасибо а если роли хранятся в ресурс сервере а не keycloak то конвертер не нужен и идем по стандартному пути spring security?
@shurik_codes
@shurik_codes 3 ай бұрын
Не совсем - нужно использовать свою реализацию JwtAuthenticationConverter, которая подтянет роли из нужного источника
@paradiesd
@paradiesd 11 ай бұрын
Привет, подскажи пожалуйста, почему мы ROLE_MANAGER в realm_access -> roles . А не в scope, который изначально предусмотрен? Для чего тогда нужен вообще scope ?
@shurik_codes
@shurik_codes 11 ай бұрын
Потому что это немного разные вещи) В scope указываются ресурсы, к которым предъявитель ключа доступа имеет доступ, scope по сути отвечает на вопрос "что доступно предъявителю ключа?", а роли отвечают на вопрос "кем является предъявитель ключа?". Если проект изначально разрабатывать исходя из механизмов авторизации, реализуемых в OAuth, то такие "финты ушами", скорее всего, не понадобятся. Впрочем в корпоративных проектах RBAC распространён очень сильно, и там нужно получать информацию о ролях пользователя.
@paradiesd
@paradiesd 11 ай бұрын
@@shurik_codes Спасибо большое, как раз не мог понять, думал а почему бы тогда сразу роли не пихать в scope чтобы они стандартным конвентором не попадали в Authentication
@mccayl5878
@mccayl5878 2 ай бұрын
@@shurik_codes scope имеет только client, но client != user, чтобы дальше следовать протоколу oauth мне нужно для каждого user'a создавать свой client? Тоже не круто, потому что client - это больше про приложение, а не пользователя (владельца ресурсов), как мне стоит поступить в этой ситуации, если в проекте предполагается наличие разного доступа у разных пользователей и при этом хочется дальше следовать протоколу, не придумывая каких-то костылей, в токене не следует хранить sensetive data, я думаю, что роли - это немного sesetive data. Какое решение подойдет для прода в этой ситуации?
@shurik_codes
@shurik_codes 2 ай бұрын
@@mccayl5878 получать роли из userinfo-эндпоинта
@user-lg9wf8sy9t
@user-lg9wf8sy9t 11 ай бұрын
а по SAML будет что-нибудь подобное?
@shurik_codes
@shurik_codes 11 ай бұрын
Может быть, обещать не буду
@killgm_
@killgm_ 17 күн бұрын
Круто, а как можно туда ещё и Swagger 3 подкинуть?
@shurik_codes
@shurik_codes 17 күн бұрын
kzfaq.info/get/bejne/b7uZpJV6v7WugX0.html
@killgm_
@killgm_ 17 күн бұрын
@@shurik_codes спасибо) уже разобрался в чём у меня была ошибка, не ту либу сваггера тянул)
@user-zr7bb7dc2e
@user-zr7bb7dc2e 6 ай бұрын
Привет. Есть такая проблема. Если я создал роль например ROLE_ADMIN и в requestMatchers добавил hasRole("ADMIN") тогда мне прилетает 403. и в дебаге методы jwtAuthenticationConverter даже не вызываются. Но если я временно поставлю permitAll() запущу, а потом верну обратно, все работает как надо. В чем может быть проблема ?
@shurik_codes
@shurik_codes 6 ай бұрын
Сложно сказать, надо видеть конфиг и настройки реалма в Keycloak
@user-zr7bb7dc2e
@user-zr7bb7dc2e 6 ай бұрын
@@shurik_codes Все то же самое , что и на видео. Только без клиента, запрос приходит с фронта на реакте. Хотя через постман с тем же токеном пробовал, было то же самое. Второй раз такое. В первый раз на Винде было, потом я убунту поставил, с гита склонировал проекты заново настроил кейклок, и то же самое. Сначала долго думал, что за фигня потом вспомнил, как я от этого в первый раз избавился, и то же сработало
@shurik_codes
@shurik_codes 6 ай бұрын
Тогда могу предположить, что 403 ошибка связана либо с CORS, либо с CSRF, надо включить трассировку запросов в Spring Security и посмотреть, на каком шаге возникает ошибка
@user-hw9lj1yg4h
@user-hw9lj1yg4h 3 күн бұрын
народ где прочитать ка сделать HTTP в inteje idia я смотрю обходимся без постмена
@shurik_codes
@shurik_codes 3 күн бұрын
www.jetbrains.com/help/idea/http-client-in-product-code-editor.html но это для Ultimate
@MarselGaisin
@MarselGaisin 9 ай бұрын
13:54
JWT-аутентификация для нативных приложений - Spring Security
1:20:22
Уголок сельского джависта
Рет қаралды 7 М.
Аутентификация - Spring Security в деталях
1:05:16
Уголок сельского джависта
Рет қаралды 23 М.
Did you find it?! 🤔✨✍️ #funnyart
00:11
Artistomg
Рет қаралды 124 МЛН
Black Magic 🪄 by Petkit Pura Max #cat #cats
00:38
Sonyakisa8 TT
Рет қаралды 32 МЛН
Кәріс өшін алды...| Synyptas 3 | 10 серия
24:51
Программисты разучились оптимизировать
23:43
Основы OAuth 2.0 и OpenID Connect #oauth #oidc #openidconnect
1:10:17
Уголок сельского джависта
Рет қаралды 6 М.
Единый сервис авторизации SSO OAuth2.0
17:22
Архитектор ПО. Александр Желнин
Рет қаралды 23 М.
Actuator, Micrometer, Victoria Metrics, Grafana - Мониторинг Spring Boot #micrometer #springboot
39:40
Уголок сельского джависта
Рет қаралды 5 М.
Spring Security: Spring Security + REST + JWT
1:52:13
Александр Фисунов
Рет қаралды 41 М.
Фильтры безопасности - Spring Security в деталях
33:20
Уголок сельского джависта
Рет қаралды 3,7 М.
OAuth в мобильных приложениях
41:55
Android Broadcast. Все об Андроид разработке
Рет қаралды 10 М.
Did you find it?! 🤔✨✍️ #funnyart
00:11
Artistomg
Рет қаралды 124 МЛН