Как подключить Keycloak к Spring Boot проекту Keycloak — это… — Java библиотека — TG.ME

Как подключить Keycloak к Spring Boot проекту

Keycloak — это современный open-source Identity Provider от Red Hat, который часто используется в enterprise-проектах для SSO (Single Sign-On), OAuth2 и OpenID Connect. Ниже пошаговая настройка интеграции Keycloak с Spring Boot 3 и Spring Security 6.

1️⃣ Зависимости

Проверь, что в проекте есть или добавь следующие зависимости:

— Spring Web
— Spring Security
— OAuth2 Resource Server
— OAuth2 Client

2️⃣ Разворачиваем Keycloak

Запусти Keycloak через Docker:
docker run -d \
-p 8080:8080 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
quay.io/keycloak/keycloak:25.0.2 start-dev


После запуска открой http://localhost:8080, войди под admin/admin и создай realm, например demo-realm.

3️⃣ Настройка клиента в Keycloak

В разделе Clients → Create client укажи:

— Client ID: spring-client
— Client Protocol: openid-connect
— Root URL: http://localhost:8081

В разделе Settings:

— Установи Access Type → confidential
— Включи Standard Flow Enabled
— Укажи Redirect URI: http://localhost:8081/login/oauth2/code/keycloak

Сохрани и перейди на вкладку Credentials, скопируй Client Secret.

4️⃣ Настройка application.yml

server:
port: 8081

spring:
security:
oauth2:
client:
registration:
keycloak:
client-id: spring-client
client-secret: YOUR_CLIENT_SECRET
scope: openid, profile, email
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
provider:
keycloak:
issuer-uri: http://localhost:8080/realms/demo-realm


5️⃣ Конфигурация безопасности

Настрой SecurityConfig.java:

@Configuration
public class SecurityConfig {

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(auth -> auth
.requestMatchers("/", "/public").permitAll()
.anyRequest().authenticated()
)
.oauth2Login(Customizer.withDefaults())
.logout(logout -> logout
.logoutSuccessUrl("/")
.invalidateHttpSession(true)
);
return http.build();
}
}


🧠 Зачем это нужно

Keycloak снимает головную боль по хранению паролей, управлению ролями и сессиями. Он интегрируется с LDAP, AD, SAML и десятками внешних OAuth-провайдеров.

Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
👍4❤2🔥2
August 31, 2026 1.3K 37