Yenileme token döngüsü nedir ve neden önemlidir?
Daldık ve yenileme token döngüsünün yenileme token'ınızın güvenliğini korumanın etkili bir yolu olduğunu neden konuşalım.
Yenileme token nedir?
Yenileme token, mevcut erişim token süresi dolduğunda, yeni bir erişim token elde etmek için kullanılan özel bir token türüdür. Daha fazla bilgi edinmek için önceki gönderimiz OIDC'de token'ları anlama adresine göz atabilirsiniz.
Tanıtım sırasında, Logto'da yenileme token'ınızın güvenliğini korumak için varsayılan olarak "yenileme token döngüsü" mekanizmasını zorunlu hale getirdiğimizi de belirtmiştik.
Peki "yenileme token döngüsü" tam olarak nedir? Son kullanıcılarımıza nasıl fayda sağlar? Hadi detaylara inelim!
Yenileme token döngüsü nedir?
Yenileme token döngüsü, bir yeni erişim token elde etmek için yenileme token kullanıldığında, önceki yenileme token'ını geçersiz kılan ve yeni bir tane veren bir mekanizmadır. Bu mekanizma, yenileme token'ın süresi dolmadan yenilendiğini garanti eder.
Neden yenileme token döngüsüne ihtiyacımız var?
Yenileme token'larının uzun süreli yaşam döngüleri vardır, genellikle haftalar ya da hatta aylarla ölçülür. Ve çünkü yenileme token ile yeni erişim token'lar elde edebiliyoruz, yenileme token'ı aynı zamanda bir saldırgan için çekici bir hedef haline gelir. Bu nedenle, OAuth 2.0 BCP uyarınca, yetkilendirme sunucusu bu gibi saldırıları önlemek için aşağıdaki önlemlerden birini almalıdır.
- Gönderen kısıtlamalı yenileme token'ları sağlama: İstemci bir imza (
Sec-Token-Binding
) ile yenileme isteği başlığına bir imza ekler, böylece verilen yenileme token belirli bir istemciye kriptografik olarak bağlanır. Ancak günümüzde yalnızca bazı yerel istemciler gönderen kısıtlamalıdır ve modern SPA'ların ve mobil istemcilerin çoğu herkese açıktır. - Yenileme token döngüsü: Yetkilendirme sunucusu yeni bir yenileme token'ı (genellikle yeni bir erişim token'ı elde ederken) verir ve önceki token'ı geçersiz kılar. Bu, bir token sızıntısı riskini azaltır.
Yenileme token döngüsü uygulaması için en iyi uygulamalar
Logto'da, bir kullanıcı başarıyla oturum açtığında, DB'de önce bir Grant
nesnesi oluşturulacak ve ardından verilen yenileme token'ı, bir referans grantId
'ye sahip olacak ve ilk Grant nesnesine işaret edecektir.
Bir yenileme token döngüsü meydana geldiğinde, önceki yenileme token tüketilmiş olarak işaretlenecek ve Logto yetkilendirme sunucusu, aynı grantId
ile yeni bir yenileme token verecektir.
Önceki yenileme token'ının sızdırıldığını varsayalım, o zaman ya meşru istemci ya da saldırgan, bir erişim token'ı için değişim yapmak için onu kullanırdı. Ve bunu kimin yaptığına bakılmaksızın, sızan yenileme token'ı zaten döngüde olacak ve tüketilmiş olarak işaretlenmiş olmalı. Tüketilmiş yenileme token'ını ikinci kez kullanan kişi, yetkilendirme sunucusuna ihlal hakkında bilgi verecektir. Yetkilendirme sunucusu, aynı grantId
ile tüm yenileme token'larını iptal edecektir.
Yukarıdaki durumda, alarm tetiklendikten sonra, meşru istemci yalnızca yeniden giriş yaparak yeni bir yenileme token elde edebilir. Öte yandan, saldırgan sisteminiz üzerindeki kontrolü kaybedecek ve dışarıda kalacaktır.
Yenileme token döngüsü ne zaman gerçekleşir?
Logto'da, yenileme token döngüsünün varsayılan davranışı tanımlar ki:
- İstemci gönderen kısıtlamalı veya herkese açık değilse (örneğin, sunucu tarafı işleme web uygulamaları), yenileme token döngüsü toplam süre yaşama (TTL) süresinin %70'ine ulaştığında gerçekleşir.
- İstemci herkese açık bir istemciyse (örneğin, tek sayfa web uygulamaları), yenileme token her kullanıldığında bir erişim token'ı ile değiştirilmek üzere yenileme token döngüsü her defasında gerçekleşir. Token değişim yanıtı hem yeni bir erişim token hem de yeni bir yenileme token döndürecektir.
Logto'da yenileme token döngüsünü nasıl etkinleştirip/devre dışı bırakabilirim?
Logto yönetici konsolunda, Yönetim Konsolu > Uygulamalar adresine gidin ve yenileme token döngüsünü değiştirmek istediğiniz uygulamayı seçin. Uygulama detayları sayfasında, “Gelişmiş ayarlar” sekmesine gidin ve aşağı kaydırarak düğmeyi ve bazı diğer faydalı ayarları bulacaksınız.
Anahtarı kapatırsanız, yenileme token'ınız süresi dolana kadar asla yenilenmez. Bu nedenle, yenileme token döngüsünü her zaman etkin tutmayı şiddetle tavsiye ediyoruz.
Gözden geçirme: Yenileme token döngüsü nedir ve neden önemlidir?
Yenileme token döngüsü, uygulamanızda yenileme token güvenliğini sağlayan en iyi uygulamadır. Bir yeni erişim token elde edildiğinde, önceki yenileme token'ı geçersiz hale getirir ve yeni bir tane verir. Bu mekanizma, bir token sızıntısı riskini azaltır ve yenileme token'ınızın güvenliğini sağlar.
Logto, endüstri lideri en iyi uygulamaları takip eder ve her zaman kullanıcı güvenliğini en üst sıraya koyar.
Bu blogun yenileme token döngüsü mekanizması hakkındaki şüphelerinizi iyi bir şekilde açıkladığını umuyorum. Eğer hala belirsiz bir şey varsa bize bildirin. Geri bildirimleriniz ve önerileriniz her zaman memnuniyetle karşılanır!
Bugün Logto'yu deneyin ve daha güvenli bir kimlik doğrulama deneyimi kucaklayın.