İçeriğe geç
Keycloak

Keycloak; Red Hat tarafından başlatılan ve sponsorlanan, açık-kaynak kimlik ve erişim yönetimi (IAM) sunucusudur. OAuth2, OpenID Connect, SAML 2.0 standartlarını native destekler; realm kavramıyla multi-tenant izolasyon, federation (LDAP, Active Directory, Kerberos) ile mevcut dizin servisleriyle entegrasyon sunar.

Keycloak’ın gücü, bir tek imza (SSO) altyapısıyla farklı protokollerdeki uygulamaları birleştirebilmesinden gelir. Eski SAML SaaS’iniz, yeni OIDC mikroservis’iniz, kurumsal AD’niz — hepsi tek Keycloak realm’inde birleşir. KVKK + veri ikametgâhı gerektiren kurumsal IAM ihtiyacı için fiili açık-kaynak standardıdır.

Mono’nun yaklaşımı

Mono ekibi Keycloak’ı hem kendi platform mühendisliği yığınında hem de müşteri kurulumlarında kullanır. Standart kararlarımız:

  • Sürüm: Keycloak 24+ (Quarkus tabanlı); WildFly tabanlı eski sürümlerden geçiş.
  • Veritabanı: PostgreSQL Patroni cluster; PgBouncer transaction-mode.
  • Topology: Yatay ölçekli (3+ instance) + distributed cache (Infinispan) + sticky session veya session externalization.
  • Auth flow: WebAuthn + TOTP varsayılan; password-policy minimum 12 karakter + breached check.
  • Realm yapısı: Tek realm yerine kurum başına realm (operasyonel basitlik) — federation ile birleştir.
  • Theme: Mono custom theme (kurumsal kimlik); SPA login pages için.
  • Audit: Event listener → Kafka → SIEM (Wazuh).

Tipik kurulum

  1. Cluster: 3 Keycloak instance (K8s StatefulSet veya VM); HAProxy önünde sticky session.
  2. Database: PostgreSQL Patroni (3 node) + PgBouncer.
  3. Federation: Kurumsal AD/LDAP read-only; user import veya on-demand sync.
  4. Brokers: Microsoft Entra ID, Google Workspace, GitHub OAuth (uygulama bazlı).
  5. Themes + custom flow: Mono custom theme + sosyal login + WebAuthn.
  6. Monitoring: keycloak-metrics-spi → Prometheus → Grafana dashboard.

Yaygın sorunlar ve çözümler

  • Yavaş login: PostgreSQL connection pool dar; long-running query (token introspection); user search index eksik.
  • Yüksek session memory: Distributed cache yapılandırılmamış; session-externalization tercih (özellikle yatay ölçeklendirmede).
  • MFA bypass: “Trust device” özelliği policy ile sınırlandırılmalı; risk-based authentication (Mono müşterilerimizde Authelia ek kat olarak).
  • Realm export/import bozuk: kc.sh export --users different_files; binary export her zaman ASCII’den iyi.
  • JWT signature key rotation: Realm key rotation periyodik (90 gün); cache invalidation orchestration.

İlgili hizmetlerimiz

Sıkça sorulan sorular

Keycloak yerine başka ne kullanılır?
Açık-kaynak: Authentik, Authelia, Casdoor. Bulut: Auth0, AWS Cognito, Azure Entra ID. Mono varsayılanı Keycloak — özellik zenginliği + olgunluk + KVKK self-hosted seçeneği.
Database olarak ne kullanmalı?
PostgreSQL zorunlu (üretim için). H2 yalnızca dev. PostgreSQL HA için Patroni cluster; connection pooling PgBouncer ile zorunlu — Keycloak realm sayısı ve session yoğunluğuna göre bağlantı patlaması olur.
Hangi protokol: OIDC mi SAML mi?
Yeni uygulamalar için OIDC (OAuth2 üzerine, JSON-friendly, mobil dostu). Eski kurumsal SaaS’ler genelde SAML 2.0 ister. Keycloak ikisini de native destekler ve tek session paylaşır — kullanıcı SAML SaaS + OIDC kendi uygulamada tek SSO yapar.
MFA / WebAuthn?
Native destekleniyor: TOTP, WebAuthn (FIDO2 anahtarları + platform authenticator), recovery codes. Mono önerisi: yönetici hesapları için WebAuthn zorunlu, son kullanıcılar için TOTP + recovery.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.