Kısa oturumlara veda edin - Web'de çerez yönetimini iyileştirmek için Service Worker'ların kullanılmasıyla ilgili bir öneri

William Denniss
Owen Campbell-Moore

Yerel uygulamaların sizden yalnızca bir kez giriş yapmanızı istemesi ve sonra çıkış yapmak istediğinizi söyleyene kadar sizi hatırlaması hepimize bayılır. Ne yazık ki web de her zaman bu şekilde çalışmaz.

Cihazlar, özellikle mobil cihazlar artık daha kişisel olduğundan ve tüm trafiği HTTPS üzerinden gönderen site hırsızlığı riskini azalttığından, web sitelerinin kısa ömürlü çerez politikalarını yeniden gözden geçirmesi ve daha kullanıcı dostu, daha uzun süreli oturumlar benimsemesi gerekiyor.

Ancak, oturumun daha uzun sürmesini isteme olsanız bile bazı web siteleri her bir istekte kullanıcının kimlik doğrulamasını doğrulamaz (Diğer bir deyişle, yayınlandıktan sonra oturum çerezini iptal etmenin bir yolu yoktur). Bu durum normalde kısa oturumlara yol açar. Kullanıcı, kimlik doğrulamasının yeniden doğrulanabilmesi için sık sık oturum açmaya zorlanır. Böylece şifre değişikliği gibi işlemler, mevcut oturumları belirli bir sürede geçersiz kılar.

Kullandığınız yaklaşım buysa durum bilgisiz kimlik doğrulama çerezini otomatik olarak yeniden doğrulamanıza yardımcı olabilecek teknik bir çözümümüz vardır. Kısa ömürlü kimlik doğrulama çerezinizi yenilemek için kullanılabilecek, uzun ömürlü ikincil bir jetona sahip olarak çalışır. Yeni Service Worker kalıbından yararlanmak, uzun ömürlü jetonla düzenli olarak "check-in" yapmamızı, kullanıcının kimlik doğrulamasını doğrulamamızı (örneğin, yakın zamanda şifrelerini değiştirmemiş ya da oturumu iptal etmemiş olup olmadığını kontrol etmemizi) ve kısa ömürlü yeni bir kimlik doğrulama çerezini yeniden yayınlamamızı sağlar.

Web'de güvenli uzun oturumlara geçiş için pratik bir öneri

Burada, bu yayında, 2-Cookie-Handoff (2CH) adını verdiğimiz yeni bir teknik açıklanmaktadır. Bu makalede, söz konusu yaklaşımın olumlu olup olmadığı ve olumluysa 2CH kullanımıyla ilgili en iyi uygulamaları belgeleme konusunda sektörle birlikte çalışmak için topluluk geri bildirimlerini öğrenmeyi umuyoruz.

Service Worker'lar; Chrome, Firefox ve Opera gibi birçok tarayıcı tarafından desteklenen ve yakında Edge'de kullanıma sunulacak yeni bir teknolojidir. Mevcut sayfalarda değişiklik yapmadan, istemcideki ortak bir kod noktası aracılığıyla sitenizden gelen tüm ağ isteklerine müdahale etmenizi sağlar. Bu, sayfanızın yaptığı tüm ağ isteklerine müdahale edebilen ve mobil uygulamalarda olduğu gibi jeton değişimini gerçekleştirebilen, giriş yapmış kullanıcılar için bir "2CH çalışanı" oluşturmanıza olanak tanır.

Sunucunuzda, çoğu zaman mobil uygulamalar tarafından genellikle OAuth protokolünü kullanan yeni bir kısa ömürlü jeton almak için kullanılan bir uç nokta zaten bulunur. Yukarıdaki kalıbı web'de etkinleştirmek için bu uç noktanın, hizmet çalışanı tarafından ne zaman çağrıldığını anlayacak şekilde güncellenmesi ve ardından sitedeki diğer sayfaların önceden beklediği şekilde biçimlendirilmiş yeni bir kısa süreli oturum çerezi döndürmesi gerekir.

Sunucunuzda böyle bir uç nokta yoksa yalnızca tarayıcı oturumu yönetimi için bir uç nokta oluşturabilir.

2 çerezli aktarım sırası

Service Worker'ları olan iki jetonlu kalıp, OAuth 2.0 kalıbına oldukça yakındır. Halihazırda bir OAuth jetonu uç noktası çalıştırıyorsanız bu modeli web kimlik doğrulamanız için Service Worker'larla yeniden kullanabilirsiniz.

Ayrıca, kullanıcının Service Worker'ları desteklemeyen bir tarayıcıyı ziyaret etmesi durumunda ne olduğunu da merak ediyor olabilirsiniz. Yukarıdaki yaklaşımı uygularsanız herhangi bir değişiklik yaşanmayacak ve kısa oturumlar yaşamaya devam edeceklerdir.

Örnek bir istemci ve arka uç yayınladık. Bu özelliği kendiniz deneyeceğinizi ve oturum yönetimiyle ilgili bir ankete katılacağınızı umuyoruz.