3 puan yazan GN⁺ 2024-02-12 | 1 yorum | WhatsApp'ta paylaş

Keycloak SSO yapılandırması: Docker Compose ve Nginx kullanımı

  • Keycloak, açık kaynaklıdır ve başlıca SSO protokolleriyle uyumlu, güvenilir bir kimlik ve erişim yönetimi çözümüdür.
  • Docker Compose ile kurulum karmaşık değildir, ancak sezgisel de değildir; bu nedenle yapılandırma süreci özetlenmiştir.

Kavram

  • Nginx, localhost üzerinden trafiği ayrı servislere yönlendiren merkezi reverse proxy olarak kullanılan standart kurulum tercih edilir.
  • Tek bir hostun kaynaklarını paylaşırken ortamları mümkün olduğunca izole eden ekonomik bir kurulum olarak değerlendirilir.

Gereksinimler

  • Temel araçlar gerekir: SSH, Linux kurulu bir VM ve bir alan adı veya alt alan adı.
  • Docker rootless kurulumu için parolasız yeni bir non-root kullanıcı olan keycloak oluşturulur, /etc/subuid ve /etc/subgid aralıkları güncellenir, Docker rootless kurulur ve servislerin otomatik başlatılması yapılandırılır.

Keycloak yapılandırması

  • Yeni oluşturulan keycloak kullanıcısıyla oturum açılır ve kalıcı veri ile Docker dosyaları için dizinler oluşturulur.
  • Resmi belgeler referans alınarak docker-compose.yml hazırlanır ve hassas ya da değişken bilgiler .env dosyasına girilir.

Yerelde test

  • Docker Compose stack'i test edilir, VM için reverse SSH tüneli oluşturulur ve ardından tarayıcıda Keycloak karşılama ekranı doğrulanır.

Nginx yapılandırması

  • Nginx, sistem reverse proxy'si olarak yapılandırılır ve Keycloak servisi için yeni bir Nginx .conf dosyası oluşturulur.
  • Alan adı kayıt şirketinde, DNS sorgularını VM'in IP adresine yönlendirecek bir A kaydı eklenir.

Hata ayıklama

  • .tld.com açılarak admin kullanıcıyla Keycloak'a giriş yapılır; Docker Compose logları ile Nginx access ve error logları kontrol edilir.
  • Gerekirse Keycloak veritabanı incelenir.

Dockerfile ile özelleştirilmiş build

  • quay.io'daki önceden build edilmiş imajı kullanmak yerine, Dockerfile ile kendi imajı build edilir.
  • İmajı build etmek ve servisi başlatmak için Docker Compose yeniden başlatılır.

Sonuç

  • Rootless Docker'ın arkasında, sistem Nginx reverse proxy'si kullanılarak Keycloak servisi çalıştırılmaktadır.
  • Sonraki adımlar arasında Docker container'larının otomatik güncellenmesi, Keycloak servisine login ve e-posta eklenmesi, realm eklenmesi ve tema eklenmesi bulunur.

GN⁺ görüşü:

  • Güvenliğin önemi: Web'in mevcut durumu, güvenlikle ilgili zafiyetleri takip etmeyi zorlaştırdığı için Keycloak gibi güvenilir bir çözüm kullanmak önemlidir.
  • Verimli mimari: Tek bir hostta kaynakları paylaşırken ortamları izole eden yaklaşım, maliyet açısından verimlidir ve yönetimi kolaydır.
  • Özelleştirilebilirlik: Dockerfile ile yapılan özelleştirilmiş build, Keycloak'ı kendi ihtiyaçlarınıza göre uyarlama esnekliği sağlar.

1 yorum

 
GN⁺ 2024-02-12
Hacker News görüşleri
  • Authelia'yı seçen bir kullanıcının görüşü:

    • Keycloak çok özellikli, ancak yapılandırması karmaşık ve ek hizmetler gerektiriyor.
    • Authelia'nın kullanıcı arayüzü yok ve LDAP sunucusuyla çift yönlü senkronizasyon yapamıyor, ancak statik dosyalar ve ortam değişkenleriyle yapılandırılabildiği için birçok durumda uygun.
    • Basit kimlik doğrulama ve SSO gerekiyorsa Authelia ile başlamayı öneriyor.
  • JetBrains Hub ve Keycloak kullanım deneyimi olan, sonunda Dex'i seçen bir kullanıcının görüşü:

    • JetBrains Hub'ın kurulumu çok kolay, ancak Docker imajında latest etiketinin olmaması rahatsız edici.
    • Keycloak geliştirme modunda kolay, ancak gerçek üretim ortamında yapılandırması zor.
    • Sonunda dokümantasyonu yetersiz olsa da yapılandırması basit olan Dex'i seçmiş.
    • OAuth2 Proxy ve Nginx şablonlarını birleştirerek SSO yapılandırmasını basitleştirmiş.
    • Güvenlik için Cloudflare Access ve WAF eklemiş.
  • OpenID Connect sunucularını karşılaştıran bir tablo hazırlayan kullanıcının görüşü:

    • Keycloak kod tabanının büyüklüğüne şaşırmış.
  • Keycloak'ın güvenlik sorunları hakkında görüş bildiren bir kullanıcının yorumu:

    • Keycloak'ın CVE'lerine (kamuya açıklanmış güvenlik açıkları) bakınca güvenlik sorunları konusunda endişeleri var.
  • AWS ECS üzerinde Keycloak uygulama deneyimini paylaşan bir kullanıcının görüşü:

    • Keycloak uzun zaman içinde çok fazla değişim geçirdi.
    • Kümelenmede zorluklar yaşadı; özellikle DNS keşfi ve UDP üzerinden küme keşfi sorunluydu.
    • Durum bilgili oturum açmalar sunucular arasında tutarlı değildi, bu da yük dengelemeyi zorlaştırdı.
  • Keycloakify hakkında olumlu görüş bildiren bir kullanıcının yorumu:

    • Keycloakify, Keycloak için harika bir alternatif gibi görünüyor.
  • Authelia ve Keycloak'ı karşılaştıran bir kullanıcının görüşü:

    • Authelia cazip görünüyor, ancak Keycloak Angular bağlayıcısı sunduğu için başlamak daha kolay.
  • Keycloak kullanım deneyimini paylaşan bir kullanıcının görüşü:

    • Keycloak'ın yapılandırması karmaşık ve dokümantasyonu yetersiz, ancak Terraform kullanarak kolayca dağıtılıp yönetilebiliyor.
  • Zitadel kullanmış bir kullanıcının görüşü:

    • Keycloak yeni başlayanlar için kafa karıştırıcı olabilir ve Zitadel kullanımı daha kolay.
  • Keycloak kullanmanın zorluklarından bahseden bir kullanıcının görüşü:

    • Keycloak parola sıfırlama bağlantısını doğrudan vermiyor; bunun API üzerinden yapılması gerekiyor.
    • Küme yapılandırması kolay değil ve realm'lerle ilgili sınırlamalar var.
    • Güvenli bir oturum açma sistemini doğrudan kendin kurmak riskli veya zor olabilir.