Для настройки 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.
Создайте 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, проверить входящее письмо с ссылкой, установить пароль, и перейти по адресу с защищенным ресурсом для проверки аутентификации.
Изображение носит иллюстративный характер
Создайте 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, проверить входящее письмо с ссылкой, установить пароль, и перейти по адресу с защищенным ресурсом для проверки аутентификации.