Single Sign-On с поставщиком Keycloak

В этой статье рассмотрим Single Sign-On с сервером авторизации Keycloak.

Пример состоит из трех частей:

  • сервер авторизации (Keycloak)
  • клиент
  • сервер ресурсов (необязательная часть)

Читать далее «Single Sign-On с поставщиком Keycloak»

Single Sign-On с поставщиком VK

В этой статье рассмотрим Single Sign-On (SSO) с помощью поставщика VKontakte (но также тут есть вход с помощью GitHub и Google). Приложение представляет собой Spring Boot OAuth 2 клиент c Ajax-запросами на JQuery.
Читать далее «Single Sign-On с поставщиком VK»

OAuth 2 Authorization Code Flow. Пример на Spring Boot

В этой статье рассмотрим OAuth 2 Authorization Code Flow на примере из официального репозитория сервера авторизации (от октября 2020). Пример переделан на Maven, кроме того, включено логирование запросов в консоль.
Читать далее «OAuth 2 Authorization Code Flow. Пример на Spring Boot»

CSRF-токен

В этой статье рассмотрим, что такое Сross-Site Request Forgery и как включить в Spring Boot приложение CSRF-токен — защиту от этого мошенничества. Назвать этот токен можно было бы «анти-CSRF-токен».

Читать далее «CSRF-токен»

Введение в Spring Security ACL

Access Control List (ACL)  — это список разрешений на объект.  Этот список определяет, какому пользователю (или какой роли) какие операции разрешены над конкретным экземпляром объекта.
Читать далее «Введение в Spring Security ACL»

Защита методов — аннотация @PreAuthorize

Мы уже рассмотрели авторизацию на основе url, но ее бывает недостаточно. В этой статье мы рассмотрим, как защитить отдельные методы (любые — как методы контроллеров, так и сервисов). То есть разрешить вызов метода только пользователю с конкретными правами. (А вообще можно задать любые условия).
Читать далее «Защита методов — аннотация @PreAuthorize»

OAuth 2 Сlient Credentials Flow. Пример на Spring Boot

В этой статье рассмотрим пример Client Credentials flow с новым экспериментальным сервером авторизации на Spring Boot.  Новый сервер был анонсирован буквально недавно и еще не полностью готов (текущая версия 0.0.2). Но Client Credentials flow (и Authorization Code flow) он уже поддерживает.
Читать далее «OAuth 2 Сlient Credentials Flow. Пример на Spring Boot»

TestRestTemplate с авторизацией

Здесь рассмотрим случай, когда тестируемый /url защищен, и с первого раза запрос с TestRestTemplate сделать не получится.

В этом случае отправляем два запроса — один для получения заголовка авторизации, а второй уже с целью тестирования.
Читать далее «TestRestTemplate с авторизацией»

Multiple HttpSecurity

Иногда требуется, чтобы в приложении для разных url была настроена разная аутентификация и авторизация. Одну часть приложения надо обезопасить так, а другую этак.

Например, по адресам /api/* приложение предоставляет REST API с аутентификацией через JWT-токен. А все остальные url — это обычные страницы веб-сайта с перенаправлением на форму логина для неаутентифицированных, используют сессии.
Читать далее «Multiple HttpSecurity»