Security, Authorization и Authentication (Keycloak)

В этом уроке мы реализуем идентификацию, аутентификацию и авторизацию пользователей в приложении, а также настроим Role Based Access Control (RBAC) - доступ к ресурсам на основе ролей. Идентификация, аутентификация и авторизация являются критически важными аспектами безопасности в микросервисной архитектуре. Они обеспечивают правильный доступ к ресурсам, контролируя, кто и что может делать в системе. Рассмотрим каждую из этих концепций подробно:

Технологии, используемые в проекте

В нашем проекте мы будем придерживаться следующего подхода:
  1. В качестве сервера идентификации, аутентификации и авторизации выступит Keycloak.
  2. Аутентификация пользователей будет происходить по протоколу OpenID Connect (OIDC).
  3. Авторизация пользователей будет осуществляться по протоколу OAuth 2.0 с помощью токенов доступа, представленных в формате JWT (Json Web Tokens).

Доступ после оплаты курса


Общая информация

  • Основные определения
  • JWT
  • OAuth 2.0
  • OpenID Connect

Keycloak

  • Запуск и настройка Keycloak
  • ДЗ: экспорт конфигурации и запуск уже настроенного Keycloak

OpenID Connect Authorization Code Flow
(урок для ознакомления)

Обновление Docker Deployment и тестирование через браузер

  • Обновление Docker Deployment микросервисов
  • Тестирование OpenID Connect Authorization Code Flow

Gateway Service как OAuth 2.0 сервер ресурсов

  • Диаграммы последовательности Gateway Service как сервера ресурсов
  • Конфигурация Gateway Service как сервера ресурсов
  • Тестирование OAuth 2.0 запросов через Postman
  • Тестирование OAuth 2.0 запросов через curl

В этом уроке мы
  • подробно рассмотрели, что такое идентификация, аутентификация и авторизация
  • разобрали механизм OAuth 2.0 и основанный на нем OpenID Connect
  • в ветке security_client настроили Spring Cloud Gateway в качестве OAuth 2.0 клиента, а остальные микросервисы - в качестве серверов ресурсов и протестировали микросервисы с помощью TestContainers Keycloak
  • настроили Gateway Service в качестве сервера ресурсов, который обрабатывает токены JWT, извлекая из них имя пользователя и с помощью кастомного фильтра отправляет его в другие микросервисы в заголовке
Урок получился насыщенным и сложным, как, собственно, вся тема безопасности микросервисов.
Не пренебрегайте исходным кодом Spring Security, он содержит неплохую документацию и комментарии разработчиков - это позволит вам глубже понять, как все устроено изнутри.
Занятие 13: Observability и Monitoring
Контакты: Григорий Кислин
E-mail: admin@javaops.ru
ОГРНИП: 317784700063201 | ИНН: 782581076920

Cайт-партнер: topjava.ru
Поделиться:
Москва Санкт-Петербург Киев Минск Харьков Новосибирск Львов Нижний Новгород Алматы Одесса Днепр Краснодар Екатеринбург Самара Ростов-на-Дону Днепропетровск Казань Воронеж Челябинск Пермь Гомель Владивосток Астана Томск Саратов Гродно Уфа Калининград Николаев Запорожье Ярославль Омск Кемерово Белгород Брест Ташкент Херсон Ижевск Чебоксары Караганда Волгоград Балашиха Йошкар-Ола Киров Барнаул Калуга Иркутск Магнитогорск Донецк Монреаль Warszawa Los Angeles Винница Сыктывкар Тюмень Рига Кишинев Бишкек Владимир Красноярск Ульяновск Жуковский Тольятти Тверь Вологда Улан-удэ Сочи Иваново Мариуполь Пенза Краков Сумы Подольск Тула Рязань Хабаровск Helsinki Могилев Haifa Полтава Сургут Новокузнецк Березники San Francisco Иннополис Tel Aviv Ереван Тернополь Ставрополь Кривой рог Северодвинск Витебск Астрахань

AltStyle によって変換されたページ (->オリジナル) /