Keycloak’da Reset Credentials Flow’u İnceleyelim #9
Merhaba,
Bu içeriğimizde, Keycloak içinde kullanıcıların şifrelerini veya diğer kimlik doğrulama bilgilerini (credentials) güvenli bir şekilde sıfırlamalarını sağlayan özel bir authentication flow olan Reset Credentials Flow‘u inceleyeceğiz.
Reset Credentials Flow’un en yaygın kullanım amacı ‘şifremi unuttum (forgot password)’ senaryolarıdır…
Ne Amaçla Kullanılır?
Reset Credentials Flow’un temek amacı kullanıcının mevcut şifresini bilmeden kimliğini doğrulayıp yeni bir şifre belirleyebilmesini sağlayan bir akış yaratmaktır. Bildiğiniz klasik Şifremi Unuttum senaryosu bu amaç doğrultusunda kurgulanmıştır; kullanıcı e-posta adresini girdikten sonra sistem, hesap mevcutsa bu adrese süreli ve güvenli bir reset bağlantısı gönderir, kullanıcı bu bağlantı üzerinden yeni şifresini oluşturur ve böylece eski credential geçersiz kılınarak güncellenmiş olur.
Bu Akış Hangi Durumlarda Kullanılır?
Yukarıdaki satırlarda bahsedildiği gibi ilk akla Şifremi Unuttum senaryosu geliyor olsa da esasında bu akışı ihtiyaç doğrultusunda birden fazla durumda kullanmamız gerekebilmektedir. Şimdi gelin bu durumlara farkındalık oluşturmaya çalışalım;
- 1️⃣ Admin Tarafından Zorunlu Şifre Değişimi
Keycloak’da admin bir kullanıcıya Temporary password verdiğinde, kullanıcı sisteme bu geçici şifreyle giriş yapabilir ancak oturum tamamlanmadan önce şifresini değiştirmek zorunda bırakılır. Böylece kullanıcı authenticate olur fakat hesap üzerinde tanımlıUPDATE_PASSWORDrequired action nedeniyle normal uygulamaya yönlendirilmez, bunun yerine şifre güncelleme ekranına aktarılır ve yeni bir paralo belirlenene kadar süreç tamamlanmamış sayılır. Bu mekanizma teknik olarak ‘forgot password’ resetinden farklıdır çünkü kullanıcı mevcut (geçici) şifreyi bilerek giriş yapar, ancak arka planda yine credential yenileme mantığı çalışır ve eski parola geçersiz kılınarak kalıcı yeni şifre oluşturulur. - 2️⃣ Güvenlik İhlali Sonrası Toplu Reset
Keycloak’da bir güvenlik ihlali, veri sızıntısı ya da parola güvenliğini etkileyen bir politika değişikliği yaşandığı anda, sistem yöneticisi tüm kullanıcılara zorunlu şifre değişimi dayatabilir. Bu durumda kullanıcılara, ya reset e-postası gönderilerek ya da hesaplarınaUPDATE_PASSWORDgibi bir required action atanarak bir sonraki girişlerinde normal oturuma erişmeden önce mutlaka yeni bir parola belirleme zorunluluğu yaratılabilir. Böylece risk altındaki eski şifreler sistem genelinde geçersiz kılınarak güvenlik yeniden tesis edilebilir. - 3️⃣ Multi-Factor Authentication (MFA) Reset
Keycloak’da Reset Credentials Flow yalnızca parolayı değil, kullanıcının ikinci faktör olarak tanımladığı OTP yahut diğer kimlik doğrulama mekanizmalarını da sıfırlamak için kullanılabilir. Misal olarak, kullanıcı telefonunu kaybettiğinde TOTP cihazını yeniden tanımlaması gerektiğinde ya da kayıtlı güvenlik anahtarını değiştirmek istediğinde, sistem ilgili credential’ı geçersiz kılacak ve kullanıcıyı yeniden yapılandırma sürecine yönlendirecektir. Böylece çok faktörlü kimlik doğrulama güvenli biçimde güncellenmiş olacaktır.
Evet… Görüldüğü üzere bu ve bunlara benzer senaryolarda Reset Credentials Flow’dan istifade edilebilmektedir.
Reset Credentials Flow’un İç Yapısı
├── Choose User (execution)
├── Send Reset Email (execution)
├── Reset Password (execution)
└── Reset – Conditional OTP (flow)
├── Condition – user configured (condition)
└── Reset OTP (execution)
Eğer kullanıcıda OTP tanımlıysa, Condition – user configured adımı bunu kontrol edecek; OTP mevcutsa Reset OTP çalışarak ikinci faktör yapılandırmasının da sıfırlanmasını sağlayacaktır.
Görüldüğü gibi varsayılan yapı esasında oldukça lineer ve sade bir akışa sahiptir.
Account enumeration, saldırganın sistemde hangi kullanıcıların kayıtlı olduğunu anlamaya çalışmasıdır. Genellikle reset ya da login ekranlarına e-posta girilerek sistemin verdiği (örneğin ‘bu email kayıtlı değil’, ‘şifre hatalı’ vs. gibi) mesajlar takip edilerek saldırgan açısından hangi adreslerin gerçekten sisteme ait olduğu tespit edilmeye çalışılır. Böylece saldırganın elinde geçerli kullanıcı listesi oluşturulmuş olur ve bir sonraki aşamada brute force ve kimlik avı saldırıları başlatılır. Bu yüzden güvenli sistemlerde her daim
“eğer hesap mevcutsa, e-posta gönderildi…” şeklinde nötr mesajlar dönülmelidir.
Güvenlik Perspektifinden Bakarsak!
Reset credentials mekanizması güvenlik açısından son derece kritiktir çünkü, hatalı tasarlandığında sistem ciddi saldırılara açık hale gelebilir.
Örnek vermemiz gerekirse, kullanıcı varlığını ele veren mesajlar account enumeration‘a yol açabilir yahut sınırsız deneme imkanı varsa eğer brute force riskini artırabilir. Bunların dışında uzun süreli veya tekrar kullanılabilir token’lar token reuse saldırılarına neden olabilir ve e-posta hesabının ele geçirilmesi doğrudan hesap devralmaya kapı aralayabilir.
Bu nedenlerden kaynaklı reset bağlantılarının kısa ömürlü ve tek kullanımlık olması, sürecin yalnızca HTTPS üzerinden çalışması, e-posta doğrulamasının aktif tutulması ve brute force korumasının açık olması, parola sıfırlama akışının güvenli şekilde işletilmesi için temel gerekliliklerdir.
Reset Credentials Flow’u Kullanırken Nelere Dikkat Edilmelidir?
Reset credentials flow güvenlik açısından en hassas akışlardan birisidir çünkü, kullanıcı mevcut şifreyi bilmeden credential değiştirmektedir. Haliyle yanlış yapılandırma ciddi açıklar doğurabilir…
Şimdi gelin aşağıda hem mimari hem güvenlik hem de operasyonel açıdan dikkat edilmesi gereken noktaları net ve teknik bir şekilde toparlayalım…
- Email yapılandırması kusursuz olmalıdır!
Reset credentials süreci tamamen e-posta temelli çalıştığı için e-posta altyapısının güvenli ve doğru yapılandırılmış olması kritik öneme sahiptir. SMTP servisinin sorunsuz çalışması, SPF, DKIM ve DMARC kayıtlarının doğru ayarlanmış olması, gönderilen iletilerin spam’e düşmemesi ve reset bağlantılarının mutlaka HTTPS üzerinden üretilmesi gerekmektedir. Çünkü, e-posta kanalı zayıf veya ele geçirilebilir durumdaysa parola sıfırlama mekanizması da fiilen güvenli olmaktan çıkabilir ve hesap devralma riskine açık hale gelebilir. - Account enumeration açığı engellenmelidir!
Reset credentials akışında account enumeration açığını engellemek için sistemin, girilen e-posta adresinin gerçekten kayıtlı olup olmadığına dair dışarıya bilgi sızdırmaması gerekmektedir. Eğer “bu e-posta sistemde kayıtlı değil” gibi net bir hata mesajı döndürülürse saldırgan hangi adreslerin geçerli olduğunu tespit ederek kullanıcı listesi oluşturabilir ve bunu sonraki saldırılarında kullanabilir. Bu nedenle doğru yaklaşım, e-posta kayıtlı olsun ya da olmasın her daim nötr mesaj vermektir! Varsayılan olarak Keycloak bu davranışı doğru bir şekilde uygulamaktadır, ancak özel temalarda veya özelleştirme yapılırken bu güvenlik prensibinin bozulmaması gerekmektedir. - Reset link süresi optimize edilmelidir!
Reset credentials sürecinde kullanıcıya gönderilen bağlantı aslında süreli bir action token içermektedir ve bu token’ın geçerlilik süresi güvenlik açısından kritik öneme sahiptir. Keycloak yönetim panelindeRealm Settings➔Tokens➔Action Tokensbölümünden ayarlanan bu süre ne kadar uzun olursa, ele geçirilmiş bir e-posta üzerinden hesap devralma riski de o kadar artacaktır! Bu nedenle genellikle 5-15 dakika gibi kısa bir süre önerilmekte, hadi en fazla 30 dakika makul kabul edilmektedir. - Brute force protection aktif olmalıdır!
Reset credentials akışında brute force korumasının aktif olması kritik öneme sahiptir çünkü aksi halde saldırganlar sürekli parola sıfırlama talebi göndererek hem kullanıcıları e-posta bombardımanına tutabilir hem de sistemi kötüye kullanabilir. - HTTPS zorunlu olmalıdır!
Reset credentials sürecinde gönderilen bağlantılar mutlaka HTTPS üzerinden çalışmalıdır aksi taktirde kullanıcıya özel ve süreli bir güvenlik token’ı içeren parola sıfırlama linki ağ trafiğini dinleyenler tarafından ele geçirilebilir ve hesap devralma riski söz konusu olabilir. Bu nedenle production ortamında Keycloak üzerinde SSL zorunlu hale getirilmeli ve Require SSL: all requests ayarı aktif edilerek hem reset bağlantılarının hem de tüm kimlik doğrulama trafiğinin şifreli kanal üzerinden gerçekleşmesi sağlanmalıdır. - Required actions yönetimine dikkat edilmelidir!
Required actions yönetiminde dikkat edilmesi gereken nokta, bir kullanıcıya aynı anda birden fazla zorunlu işlem (örneğinUPDATE_PASSWORD,VERIFY_EMAILveCONFIGURE_TOTP) atanmasının akış sırasını karmaşıklaştırabilmesidir. Çünkü kullanıcı giriş yaptıktan sonra bu işlemler belirli bir sırayla tamamlanmak zorundadır ve yanlış kombinasyon ya da hatalı yapılandırma durumunda kullanıcı bir işlemi bitirdiğinde tekrar diğerine yönlendirilerek döngüsel bir deneyim yaşayabilir. Bu nedenle Keycloak üzerinde required action’lar tanımlanırken hem güvenlik hem de kullanıcı deneyimi gözetilmeli, gerçekten gerekli olanlar atanmalı ve mantıklı bir tamamlanma sırası tasarlanmalıdır. - Spam / Abuse önlemine dikkat edilmelidir!
Reset credentials endpoint’i özellikle public erişime açık login sayfalarında kötüye kullanıma oldukça açıktır. Çünkü, saldırganlar otomatik istekler göndererek sürekli parola sıfırlama talebi oluşturabilir ve hem kullanıcıları e-posta spam’ine maruz bırakabilir hem de sistemi zorlayabilir. Bu nedenle yalnızca uygulama seviyesinde değil, ters proxy veya gateway katmanında rate limiting uygulanması, gerekirse CAPTCHA ile insan doğrulaması eklenmesi ve bir WAF (Web Application Firewall) ile anormal trafiklerin filtrelenmesi önemlidir. Keycloak varsayılan olarak yerleşik bir rate limit mekanizması sunmadığı için bu tür korumaların altyapı seviyesinde planlanması güvenli bir production mimarisi açısından kritik kabul edilir. - Email değişim senaryosuna dikkat edilmelidir!
Kullanıcıların e-posta adreslerini değiştirebildiği sistemlerde parola sıfırlama süreci özellikle dikkatli tasarlanmalıdır. Çünkü, eğer yeni eklenen e-posta adresi doğrulanmadan aktif kabul edilirse, hesabı ele geçiren biri e-posta adresini kendi adresiyle değiştirip ardından reset talebi oluşturarak hesabın kontrolünü tamamen devralabilir. Bu nedenle, Keycloak üzerinde email verified kontrolü mutlaka aktif olmalı ve parola sıfırlama bağlantıları yalnızca doğrulanmış (verified) e-posta adreslerine gönderilmelidir. Böylece, e-posta değişikliği ancak gerçekten hesap sahibinin erişebildiği bir adres üzerinden kesinleşmiş olur. - Cluster / Production ortamında saat senkronizasyonu optimize edilmelidir!
Cluster veya production ortamında parola sıfırlama sürecinin sağlıklı çalışabilmesi için sunucular arasındaki saat senkronizasyonu kritik öneme sahiptir. Çünkü Keycloak tarafından üretilen reset bağlantıları zaman bağımlı action token’lar içermektedir. Eğer cluster’daki node’lar arasında saat farkı varsa, bir sunucunun ürettiği token diğer sunucu tarafından süresi dolmuş ya da henüz geçerli değilmiş gibi değerlendirilebilir ve bu durum kullanıcıların ‘link geçersiz’ veya ‘token expired’ hataları almasına neden olur. Bu yüzden, tüm node’ların NTP ile senkronize edilmesi ve sistem saatlerinin tutarlı olması, dağıtık yapılarda reset mekanizmasının güvenilir çalışması için temel bir gerekliliktir. - Loglama önemsenmelidir!
Parola sıfırlama sürecinin güvenli bir şekilde izlenebilmesi için loglama ve denetim (audit) mekanizmasının aktif olması büyük önem taşımaktadır. ÖzellikleSEND_RESET_PASSWORD,RESET_PASSWORDveUPDATE_PASSWORDgibi olayların kaydedilmesi, hem olası kötüye kullanımları tespit etmeyi hem de bir güvenlik olayı yaşandığında geriye dönük analiz yapabilmeyi sağlamaktadır. Keycloak üzerindeRealm settings➔Eventsbölümünden event logging etkinleştirilmeli ve gerekli event türleri seçilmelidir. Aksi taktirde şüpheli reset talepleri, olağan dışı parola değişiklikleri veya hesap ele geçirme girişimleri görünmez kalabilir.
8 Kritik Soru / 8 Kritik Cevap
Soru 1 | Reset Credentials Flow tam olarak neyi çözer?
Kullanıcının mevcut şifresini bilmeden, kimliğini doğruladıktan sonra yeni credential oluşturmasını sağlar. Haliyle bir login flow ya da authorization flow değildir, yalnızca credential yenileme flow’udur.
En yaygın kullanım senaryosu forgot password‘dür.
Soru 2 | Reset Credentials Flow ile Required Action (UPDATE_PASSWORD) arasındaki fark nedir?
Tablodan da anlaşılacağı üzere reset credentials flow, kullanıcının mevcut şifresini bilmediği ‘şifremi unuttum’ senaryosunda çalışır ve kimliği e-posta üzerinden yeniden doğrulayarak parola oluşturmasını sağlar. Buna karşılık UPDATE_PASSWORD bir kullanıcı zaten başarıyla giriş yaptıktan sonra devreye girer ve genellikle geçici şifre verildiğinde ya da güvenlik politikası gereği parola değişimi zorunlu tutulduğunda kullanılır. Yani ilkinde kullanıcı kimliği yeniden kanıtlanarak sıfırdan parola üretilirken, ikincisinde ise authenticate olmuş bir kullanıcıdan mevcut oturumu tamamlamadan önce parolasını güncellemesi istenir. Bu ayrımı doğru anlamak mimari tasarımı açısından kritik öneme sahiptir!
Soru 3 | Reset link’i teknik olarak nedir?
Reset linki esasında kullanıcıya özel olarak oluşturulmuş, belirli süreli ve tek kullanımlık olan ve sunucu tarafından doğrulanan bir Action Token‘dır.
Soru 4 | Action Token nedir?
Keycloak içerisinde action token, kullanıcının belirli bir işlemi (örneği parola sıfırlama, e-posta doğrulama, hesabı etkinleştirme vs. gibi) güvenli ve süreli şekilde gerçekleştirebilmesi için üretilen, imzalı ve zaman kısıtlı özel bir token’dır.
Normal access token’dan farklı olarak API erişimi sağlamak için değil, tek bir aksiyonu tamamlatmak için kullanılmaktadır. Genellikle e-posta ile gönderilen bağlantının içinde yer almakta ve belirli bir süre sonra geçersiz olmaktadır. Ayrıca çoğu durumda tek kullanımlık olarak ayarlanmaktadır.
Sunucu tarafında ise dijital olarak imzalandığı için üzerinde oynama yapılamaz ve süresi ya da bağlamı geçersiz olduğu taktirde kabul edilemez! Bu sayede parola sıfırlama gibi hassas işlemler güvenli biçimde yürütülmüş olur.
Soru 5 | Reset akışında en büyük güvenlik riskleri nelerdir?
1️⃣ Account Enumeration
2️⃣ Uzun ömürlü reset linki
3️⃣ Email hijack (e-mail ele geçrilirse hesap da gider)
4️⃣ Rate limiting eksikliği
Soru 6 | Reset Credentials Flow özelleştirilmeli mi?
Varsayılan hali çoğu sistem için gayet yeterlidir. Ancak; finans uygulamaları, kritik kurumsal sistemler ve yüksek güvenlikli kamu projeleri söz konusuysa elbette ki özel dokunuşlarla sisteme göre daha da uyarlaştırılabilir.
Soru 7 | Reset Flow davranışı için uygulama tarafında özel bir API yazılması önerilir mi?
Hayır! Çünkü, parola sıfırlama süreci; güvenli token üretimi, token’ın süre yönetimi, tek kullanımlık olacak şekilde işaretlenmesi, replay saldırılarına karşı korunması ve dijital imza doğrulamasının doğru yapılması gibi son derece hassas güvenlik mekanizmalarını içermekte ve bu detayların eksik ya da hatalı uygulanması hesap devralma gibi ciddi açıklar doğurabilmektedir.
Keycloak ise bu süreci zaten imzalı ve zaman kısıtlı action token’lar üzerinden güvenli biçimde yönettiği için, uygulama içinde ayrı bir reset endpoint’i geliştirmek çoğu durumda gereksiz risk teşkil etmektedir.
Soru 8 | Cluster ortamında reset neden bazen çalışmaz?
Dağıtık mimari zaman ve durum tutarlılığına bağlıdır. Node’lar arasında saat farkı varsa eğer süreli action token’lar kimi sunucularda geçerli, kimi sunucularda ise süresi dolmuş gibi değerlendirilebilir. Ayrıca cache replikasyonu düzgün çalışmıyor veya action token’a ait durum bilgisi tüm node’lar arasında doğru şekilde paylaşılmıyorsa kullanıcı reset linkine tıkladığında ‘geçersiz’ ya da ‘expired’ hataları alınabilir.
Bu nedenlerden kaynaklı, Keycloak’un dağıtık ortamlarda çalıştığı durumlarda NTP ile saat senkronizasyonunun sağlanması, cache katmanının doğru yapılandırılması ve node’lar arası state paylaşımının tutarlı olması reset mekanizmasının güvenirliği açısından kritik öneme sahiptir.
Reset Credentials Flow Örneklendirmesi
Reset Credentials Flow ile authentication yapılmaz!
Evet, reset credentials flow ile yapacağımız örnekteki amacımız login değil credential sıfırlamaktır. Bundan kaynaklı herhangi bir mimari ile bu flow’a dair yapacağımız ekstradan bir çalışma söz konusu olmayacaktır! Burada tek bilinmesi gereken kullanıcının kimlik bilgilerini yenileyebilmesi için aşağıdaki endpoint’e yönlendirilmesi gerekliliğidir…
Tabi bu linke erişilebilmesi için Realm settings ➔ Login bölümünden Forgot password ayarının aktifleştirilmesi gerekmektedir.
Verilen linke kullanıcıyı yönlendirme davranışı, genellikle custom login sayfaları için geçerlidir. Ama unutulmamalıdır ki, kullanıcıyı Keycloak login’e yönlendirip oradan ilgili adrese yönlendirmek en doğru yöntem olacaktır, ki yukarıdaki yapılandırma neticesinde ilgili link Keycloak login ekranında da gözükecektir.
Peki kullanıcıya maili kim gönderecek?
Kullanıcı, forgot password talebinde bulunduktan sonra maili gönderen bizzat Keycloak’un kendisidir. Ancak Keycloak maili doğrudan kendi içinde bir SMTP motoruyla değil, tarafımızca yapılandırılmış SMTP sunucusu üzerinden göndermektedir.
Yani maili tetikleyen ve içeriğini oluşturan Keycloak’un ta kendisiyken, maili ileten ise tarafımızca yapılandırılmış SMTP sunucusudur (MailHog, Gmail vs.)
İyi güzel, peki SMTP ayarını nereden yapılandırabiliriz?
SMTP ayarını Keycloak üzerinden Realm settings ➔ Login alanından yapılandırabilirsiniz.
API İle Kullanıcıya Manuel Reset Mail Göndermek
Reset flow genellikle kullanıcı tarafından başlatılıyor olsa da kimi zaman da kullanıcı için yetkili bir admin API üzerinden başlatılması gerekebilmektedir.
Haliyle bu gereksinim doğrultusunda aşağıdaki endpoint’e, belirtilen body’de bir PUT isteği gönderilmesi gerekmektedir.
Body:
[ "UPDATE_PASSWORD" ]
Misal olarak aşağıdaki gibi bir çalışma gerçekleştirilebilir:
var token = await HttpContext.GetTokenAsync("access_token");
HttpClient httpClient = new HttpClient() { BaseAddress = new Uri("http://127.0.0.1:8080/") };
httpClient.DefaultRequestHeaders.Add(HeaderNames.Authorization, $"Bearer {token}");
var content = new StringContent("""["UPDATE_PASSWORD"]""", Encoding.UTF8, MediaTypeNames.Application.Json);
var response = await httpClient.PutAsync($"/admin/realms/{realm}/users/{userId}/execute-actions-email", content);
var result = await response.Content.ReadAsStringAsync();
Tabi bu API’nin belirtilen işlemi manuel yapabilmesi için Keycloak’a kendini ‘admin’ olarak kanıtlaması gerekecektir. Ee bu da doğal olarak örnekte görüldüğü üzere access token ile sağlanacaktır.
Reset Password Template’ini Özelleştirme
Reset password sürecinde gönderilecek mail varsayılan olarak aşağıdaki şablona sahiptir:
Bu şablonu özelleştirebilmek için yine FreeMarker (.ftl) template dosyası oluşturmamız gerekmektedir. Bunun için hasbel kader tasarladığım şuradaki email template’inden istifade edilebilir.
Bu tasarımın yapısına göz atarsanız aşağıdaki gibidir:
└── mytheme/
└── email/
├── html/
│ └── password-reset.ftl
├── text/
│ └── password-reset.ftl
└── theme.properties
Yüklemeyi tamamladıktan sonra yapılması gereken Realm settings ➔ Themes bölümünden Email theme‘yı seçmektir.
İşte bu kadar… Artık forgot password talebinden sonra gelen mailler aşağıdaki şablonda olacaktır:
Nihai olarak;
Keycloak’un Reset Credentials Flow’u, modern kimlik yönetiminin en kritik ve aynı zamanda en hassas bileşenlerinden biridir. Bu akış sayesinde kullanıcılar mevcut şifrelerini bilmeden güvenli bir şekilde kimliklerini doğrulayıp yeni credential’lar oluşturabilirken, sistem yöneticileri de güvenlik ihlallerine karşı hızlı ve etkili müdahale imkanı bulabilmektedirler. Ancak unutulmamalıdır ki, bu mekanizmanın güvenliği yalnızca Keycloak’un varsayılan yapılandırmasına değil, aynı zamanda SMTP altyapısının sağlamlığına, action token sürelerinin optimizasyonuna, account enumeration önlemlerinin uygulanmasına ve cluster ortamdaki senkronizasyonun tutarlılığına da doğrudan bağlılık göstermektedir. Doğru yapılandırıldığı taktirde reset credentials flow, kullanıcı deneyimi ile güvenlik arasındaki dengeyi başarıyla kurmakta, hatalı uygulandığında ise ciddi hesap devralma ve veri sızıntısı risklerine davetiye de çıkarabilmektedir. Bu nedenle production ortamına alınmadan evvel her bir adımın güvenlik perspektifinde gözden geçirilmesi, loglama ve denetim mekanizmalarının etkinleştirilmesi ve olası saldırı senaryolarına karşı test edilmesi hayati önem taşımaktadır. Keycloak’un esnek ve genişletilebilir mimarisi, bu akışı kurumsal gereksinimlere göre özelleştirme imkanı sunarken, temel güvenlik prensiplerinden taviz verilmemesi gerektiğini de hatırlatmaktadır. Umarım bu içerik, konuya dair teknik detayları ve güvenlik boyutlarını kapsamlı bir şekilde aktararak Keycloak tabanlı projelerinizde sağlıklı bir temel oluşturmanıza katkı sağlayacaktır.
İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…
Not : Konuya dair pratik bir örnek çalışmayı aşağıdaki GitHub reposundan inceleyebilirsiniz.
