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 mimari bileşendir.
Keycloak Nedir?
Keycloak, açık kaynaklı bir Identity and Access Management (IAM) çözümüdür. Uygulamalar için merkezi kimlik doğrulama, yetkilendirme, rol yönetimi ve token tabanlı güvenlik sağlar.
Keycloak sayesinde login formları, kullanıcı doğrulama kodları ve oturum yönetimi uygulamanızdan çıkarılır ve merkezi bir kimlik sağlayıcıya taşınır.
Single Sign-On (SSO) ve Single Logout
Keycloak ile kullanıcılar her uygulama için ayrı login yapmak zorunda kalmaz.
- ✔ Kullanıcı Keycloak üzerinden giriş yapar
- ✔ Diğer tüm bağlı uygulamalara tekrar login olmadan erişir
- ✔ Çıkış yaptığında tüm uygulamalardan otomatik logout olur
Bu özellik özellikle kurumsal sistemlerde büyük kolaylık sağlar.
Identity Brokering ve Social Login
Keycloak yalnızca kendi kullanıcı veritabanı ile çalışmaz.
Social Login Desteği
- Microsoft
- GitHub
Admin Console üzerinden birkaç tıklama ile sosyal login eklenebilir. Kod değişikliği gerekmez.
Harici Identity Provider Desteği
Keycloak mevcut OpenID Connect veya SAML 2.0 sağlayıcıları ile entegre olabilir.
User Federation (LDAP & Active Directory)
Kurumsal sistemlerde kullanıcılar genellikle LDAP veya Active Directory üzerinde tutulur.
Keycloak bu sistemlerle doğrudan entegre olabilir.
- ✔ LDAP bağlantısı
- ✔ Active Directory entegrasyonu
- ✔ Harici veritabanı provider geliştirme
Admin Console (Yönetim Paneli)
Keycloak Admin Console üzerinden:
- Kullanıcı oluşturma ve yönetme
- Rol ve grup tanımlama
- Authorization policy oluşturma
- Identity brokering yapılandırma
- Session yönetimi
Account Management Console
Kullanıcılar kendi hesaplarını yönetebilir:
- Profil güncelleme
- Şifre değiştirme
- İki faktörlü doğrulama (2FA)
- Oturum geçmişi görüntüleme
- Sosyal hesap bağlama
Standart Protokoller
Keycloak şu standartları destekler:
- OpenID Connect (OIDC)
- OAuth 2.0
- SAML 2.0
Detaylı içerikler: Spring Boot? | JWT Nedir?
Authorization Services (Fine-Grained Authorization)
Rol bazlı erişim yeterli değilse Keycloak gelişmiş yetkilendirme servisleri sunar.
- Policy-based access control
- Resource-based authorization
- Attribute-based access control
- Dinamik izin kuralları
Tüm yetkiler merkezi admin panelinden yönetilebilir.
Angular + Spring Boot Mimarisi
Angular Tarafı
- Login redirect
- Token alma
- HTTP interceptor ile token taşıma
Spring Boot Tarafı
- JWT doğrulama
- Rol bazlı erişim kontrolü
İlgili içerikler: Spring Security JWT
Keycloak Avantajları
- ✔ Açık kaynak ve ücretsiz
- ✔ Merkezi IAM çözümü
- ✔ Kurumsal LDAP desteği
- ✔ Mikroservis uyumlu mimari
- ✔ SSO & Single Logout
- ✔ Gelişmiş yetkilendirme servisleri
Sık Sorulan Sorular
Keycloak ile OAuth2 aynı mı?
Hayır. OAuth2 bir protokoldür, Keycloak bu protokolü uygulayan IAM ürünüdür.
Keycloak mikroservislerde neden tercih edilir?
Merkezi token üretimi ve doğrulama sayesinde servisler arasında güvenlik tutarlılığı sağlar.
Keycloak ücretli mi?
Hayır, açık kaynaklıdır. Enterprise destek Red Hat tarafından sunulabilir.