Client, Resource Server, Login - Spring Security OAuth 2.0

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ธ.ค. 2024

ความคิดเห็น • 36

  • @stanislavkuprienko6475
    @stanislavkuprienko6475 6 วันที่ผ่านมา +1

    Круто! Ролик и интересен и ОЧЕНЬ полезен 👍 Спасибо!

  • @НикитаКорнюхин-я6щ
    @НикитаКорнюхин-я6щ 9 หลายเดือนก่อน +3

    Офигеть какой полезный контент по такой тяжелой теме. Придется пересматривать не один раз, чтобы так же быстро все понимать. Отдельное спасибо за демонстрацию для реактива!

  • @ВладимирМаксимов-д1з
    @ВладимирМаксимов-д1з 9 หลายเดือนก่อน +1

    Спасибо большое за качественно изложенный материал и Ваш труд

  • @omonullo
    @omonullo 9 หลายเดือนก่อน +2

    Не смотрел. Просто лайк за труд.
    Сейчас уже начну смотреть 😊

  • @Hocorend
    @Hocorend 6 หลายเดือนก่อน +2

    Супер урок, впервые попал на канал, ощущение, что нашел золото в интернете xD Теперь я понял, что надо и другие ролики посмотреть

  • @vital708
    @vital708 9 หลายเดือนก่อน

    Лайк сразу. Имею пару лет коммерческого опыта, но смотря ваши видео понимаю, что я очень многого не знаю и как минимум на вашем канале есть огромное пространство для саморазвития, это круто. Спасибо ))

  • @kolakolia2050
    @kolakolia2050 9 หลายเดือนก่อน +1

    Нравится звук клавиатуры, слышно работу поограммиста!

  • @tomervercetti
    @tomervercetti 7 หลายเดือนก่อน +1

    9:25 - resource
    25:12 - reactive resource
    32:08 - client
    1:02:40 - reactive client

  • @AlexSmile-y2x
    @AlexSmile-y2x 9 หลายเดือนก่อน +1

    Мега полезный материал! Нереально крутой спец и видео подготовлено великолепно. Спасибо! Попробую разобраться, почему в реактивном варианте не настраивается проверка как скоупа, так и роли)

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน

      Да настраивается она там, но там получается очень весёлый порядок действий получается, реактивный) Возможно, я не нашёл нужный компонент

  • @pavelthecreators
    @pavelthecreators 9 หลายเดือนก่อน

    Спасибо большое, ты лучший!)

  • @ПВ211ТищенкоДаниил
    @ПВ211ТищенкоДаниил 9 หลายเดือนก่อน +1

    Привет, очень просим подробнее про настройку безопасности в Spring Boot и logout в Keycloak'e, ибо при логауте пользователь остается аутентифицированным, как это исправить в интернете не нахожу

  • @MgsMen
    @MgsMen 2 หลายเดือนก่อน +2

    Спасибо большое за ролик ! Вопрос: как стать таким же крутым ? Постоянна практика + чтение доки и книг ? Либо надо IQ > 120 ?

    • @shurik_codes
      @shurik_codes  2 หลายเดือนก่อน +1

      Чтение документации, книг, статей, применение на практике с последующим анализом, ну и IQ тоже полезен будет)

  • @devprototype
    @devprototype 9 หลายเดือนก่อน +1

    Спасибо за видео!
    31:40 stateless session creation policy нужно было ставить?

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน

      По идее надо, но в реактивных API это делается при помощи http.securityContextRepository(NoOpServerSecurityContextRepository.getInstance())

  • @paradiesd
    @paradiesd 9 หลายเดือนก่อน +2

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

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน

      При аутентификации, после - создаётся HTTP-сессия и данные пользователя сохраняются в ней

    • @paradiesd
      @paradiesd 9 หลายเดือนก่อน

      @@shurik_codes спасибо огромное

  • @a.kondratenko
    @a.kondratenko 9 หลายเดือนก่อน +1

    Спасибо за материал! Пересмотрел уже десятки видео на канале. Видео, благодаря качеству материала и подаче, получаются просто бесценными!
    Можете подсказать, какие-то отличия в реализации есть, если в роле клиента будет android-приложение?

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน +1

      Нет, отличий не будет, android-приложение будет клиентом без client secret, поэтому желательно использовать grant_type=authorization_code с PKCE.

    • @a.kondratenko
      @a.kondratenko 9 หลายเดือนก่อน

      @shurik_codes Спасибо за фидбек! Буду разбираться. Тогда я бекенд делаю просто защищенным с помощью кейклока, а фронт-приложение делаю клиентом, который будет бегать в кейклок за токеном для юзера

  • @KakoitoTam
    @KakoitoTam 9 หลายเดือนก่อน

    Спасибо за видео, а такой вопрос если в связке oauth2(client/server)-jwt надо валидировать токен. к примеру не аунтифицированных отправлять в keycloack не авторизованных на микросервис авторизации и тд как и где это реализовать лучше, хотелось бы библиотеку

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน +1

      Ну, токен и так валидируется, как на стороне клиента (при логине), так и на стороне сервера ресурсов. Перенаправление на страницу авторизации есть при OAuth логине, а на стороне сервера ресурсов в нём нет смысла, т.к. пользователь напрямую не взаимодействует с сервером ресурсов, это делает клиент - приложение или другой сервис.

    • @KakoitoTam
      @KakoitoTam 9 หลายเดือนก่อน

      Спасибо большое за ответ! Сейчас разрабатываем security service никто не сталкивался раньше. И мне сегодня поступила задача сделать библиотеку которая валидирует токен.и хотелось бы ее переиспользовать в других будущих микросервисах. Я так понял в кейклок у нас будет аунтефикация, в ресурсом сервисе авторизация(в процессе еще oauth2 подключать).Видимо (из Вашего ответа) мне надо просто написать клиентскую часть. библиотека которая редиректит если не аунтефицирован или не авторизован или токен протух то иди в автори сервис к примеру. Я так понял отдельный класс с кучей if лучше не делать, сейчас смотрю как раз про Oauth2AutorizedClient Manager --это там можно все сделать?) Сейчас как раз смотрю ваши видео, лучше по security нету следующие про jwt токены буду смотреть.@@shurik_codes

  • @ram0973
    @ram0973 4 หลายเดือนก่อน

    А со спринговым сервером авторизации нет видео, что-то не нашёл?

    • @shurik_codes
      @shurik_codes  4 หลายเดือนก่อน

      Пока нет

  • @Boraldan
    @Boraldan 9 หลายเดือนก่อน

    Спасибо! Такой вопрос: если мы используем Spring Cloud Eureka server, client, gateway - то OAuth2 client куда лучше внедрят front или gateway?

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน

      Не совсем понятна схема взаимодействия. Если брать Eureka Server и Client, то Server - OAuth 2.0 Resource Server, а Client - OAuth 2.0 Client

    • @lifewinsful
      @lifewinsful 9 หลายเดือนก่อน +1

      @@shurik_codes тут, вопрос, наверное, о том, где лучше имплементировать oauth2 - на фронте или на gateway

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน +1

      Если честно, то яснее не стало) В OAuth 2.0 предусмотрено две основные роли: клиент (приложение, обращающееся к защищённым ресурсам) и сервер ресурсов (приложение, содержащее защищённые данные). Фронт в моём понимании - это какое-то клиентское приложение (нативное или веб), а шлюз (gateway) - по сути входная точка и маршрутизатор запросов к бекендам.
      Можно ли сделать OAuth-клиентом шлюз? В теории - да, можно, если предоставление полномочий реализуется при помощи учётных данных клиента (grant_type=client_credentials). В этой ситуации фронт обращается к шлюзу, шлюз получает ключ доступа и добавляет его в заголовки при маршрутизации запроса к бекенду. Вопрос аутентификации и авторизации клиента остаётся открытым.
      Можно ли сделать шлюз сервером ресурсов OAuth? Опять же, да, можно, но на стороне бекендов не будет информации о конечном пользователе, если её только не пробрасывать какими-то окольными путями.
      Но оба варианта предполагают внесение изменений в шлюз, что само по себе не совсем удобно - т.к. вариантов тут много (Spring Cloud Gateway, k8s ingress, isio и т.д.)
      Наиболее логично на мой взгляд делать фронт OAuth-клиентом, а бекенд - сервером ресурсов, и не включать в схему авторизации шлюз.

    • @Boraldan
      @Boraldan 9 หลายเดือนก่อน

      @@shurik_codes спасибо, Александр. Буду разбираться.

  • @АртемФедоров-р4ч
    @АртемФедоров-р4ч 9 หลายเดือนก่อน

    Привет, каким линуксом пользуешся ?

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน +1

      Linux Mint

  • @ratmirv
    @ratmirv 3 หลายเดือนก่อน

    Здравствуйте, подскажите пожалуйста. Пытаюсь настроить OAuth2 через Google для аутентификации и регистрации пользователей. В доке написано, чтобы настроить "post-handling of the UserInfo Response", нужно переопределить OidcUserService. В вашем примере вы преобразовали список прав в этом месте.
    @Bean
    public OAuth2UserService oidcUserService() {}
    Правильно ли я понимаю, что я могу в этом же месте добавить логику по регистрации нового пользователя(добавлению в базу данных), извлекая все нужные поля из объекта OidcUser?

    • @shurik_codes
      @shurik_codes  3 หลายเดือนก่อน

      В целом можно, да