Authentik как SSO-решение: настройка для Spring Boot

Для настройки SSO с Authentik в Spring Boot приложении, начните с запуска Authentik сервера через Docker Compose, используя предоставленный docker-compose.yml. После запуска, настройте Authentik, создав приложение и OAuth2/OIDC провайдера, указав имя приложения, тип провайдера, и Redirect URI. Также определите Authentication и Authorization flows, выбрав или создав необходимые шаги, например, используя default-authentication-flow и default-provider-authorization-explicit-consent.
Authentik как SSO-решение: настройка для Spring Boot
Изображение носит иллюстративный характер

Создайте stage отправки email с запросом на установку пароля, используя Email Stage, и настройте recovery flow, включающий шаги для отправки email, ввода пароля и аутентификации. Управляйте пользователями, создавая группы (например, dev-super-app-user) и сервисных пользователей, назначая им необходимые разрешения API. В Spring Boot, используйте SecurityFilterChain для настройки защиты ресурсов, интеграции OAuth2Login и добавления фильтра UserAuthenticationFilter для проверки членства пользователя в группе.

Для создания и управления пользователями, уникальными по email, используйте API Authentik. Сначала поищите пользователя по email, при отсутствии создайте нового пользователя и отправьте письмо для установки пароля, при наличии — добавьте пользователя в группу приложения. Не отключайте пользователя напрямую, а удаляйте его из группы приложения, если требуется ограничить доступ. Конфигурация Spring Boot должна включать clientId, clientSecret, redirectUri, а также endpoint'ы для авторизации, токена и получения информации о пользователе.

Для решения проблем с CORS и редиректами, переопределите DefaultRedirectStrategy и переложите логику редиректа на фронтенд, который будет обрабатывать 401 ошибку и заголовок Location. При настройке authentik обратите внимание на разницу между internal и external пользователями, где external не имеют доступа к admin UI Authentik. И, наконец, можно создать пользователя запросом curl, проверить входящее письмо с ссылкой, установить пароль, и перейти по адресу с защищенным ресурсом для проверки аутентификации.


Новое на сайте

20072Эффект красоты решает исход собеседования до первых слов 20069Как черта характера крадёт деньги на переговорах 20068Карточная игра против главной дисфункции команды 20067Какие три нарратива способны провести компанию сквозь любой кризис? 20066Фотосинтез в глазах мышей: возможно ли это без превращения в растение? 20065СПКЯ стало СПМЯ: почему переименование болезни, затрагивающей миллионы женщин, заняло так... 20064Почему великая пирамида Гизы пережила все землетрясения за 4500 лет 20063Генетика Homo erectus: что зубная эмаль рассказала о наших предках 20062Кости в бухте Эребус: что кости моряков Франклина рассказывают спустя полтора века 20061Крупнейший плавучий ветрогенератор в мире: Китай испытывает установку у берегов Шанхая 20060Карие глаза младенца стали индиго после лечения от COVID-19 20058Почему серебряная чаша с Афиной пролежала в немецком лесу две тысячи лет? 20057Дыра в атмосфере солнца: вспышка достигла пика и может зажечь полярное сияние 20056Динго возрастом 950 лет: кто и зачем кормил могилу животного сотни лет?
Ссылка