Keycloak Nedir? SSO, IAM, OAuth2, OIDC ve Mikroservis Güvenliği Detaylı Rehber (2025)
Modern uygulamalarda kimlik doğrulama ve yetkilendirme süreçleri artık sadece bir login ekranı değildir. Özellikle mikroservis mimarilerde güvenlik merkezi bir bileşendir.
Keycloak Nedir?
Keycloak, açık kaynaklı bir Identity and Access Management (IAM) çözümüdür. SSO, OAuth2, OpenID Connect ve SAML 2.0 desteği sunar.
Spring Boot + Keycloak Entegrasyonu
Spring Boot tarafında Keycloak güvenliğini eklemek için temel yapı aşağıdadır:
1) Maven Dependency
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-starter</artifactId>
<version>22.0.5</version>
</dependency>
2) application.yml
keycloak:
realm: myrealm
auth-server-url: http://localhost:8080
resource: spring-app
bearer-only: true
credentials:
secret: YOUR_CLIENT_SECRET
3) Security Config
@Configuration
@EnableWebSecurity
public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.authorizeRequests()
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated();
}
}
Keycloak vs Auth0 vs Okta
| Özellik | Keycloak | Auth0 | Okta |
|---|---|---|---|
| Lisans | ✔ Açık Kaynak | ❌ Ücretli (Freemium) | ❌ Ücretli |
| Self-hosting | ✔ Var | ❌ Yok | ❌ Yok |
| SSO | ✔ Var | ✔ Var | ✔ Var |
| LDAP/AD | ✔ Native destek | ⚠ Sınırlı | ✔ Var |
| Customization | ✔ Çok yüksek | Orta | Orta |
Keycloak Kurulum Adımları (HowTo)
- Keycloak server indir ve çalıştır
- Realm oluştur
- Client ekle (Spring Boot app)
- Client secret üret
- Spring Boot config ayarla
- Token doğrulama test et
Sık Sorulan Sorular
Keycloak ücretsiz mi?
Evet. Keycloak tamamen açık kaynaklıdır ve ücretsiz kullanılabilir.
Keycloak vs Auth0 farkı nedir?
Keycloak self-hosted ve ücretsizdir, Auth0 ise cloud tabanlı ve ücretlidir.
Keycloak mikroservislerde neden kullanılır?
Merkezi authentication ve JWT tabanlı güvenlik sağlar.