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 sadece bir kez giriş yapmanızı ve ardından çıkış yapmak istediğinizi söyleyene kadar sizi hatırlamasını hepimiz seviyoruz. Maalesef web her zaman bu şekilde çalışmıyor.

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

Ancak, oturumu uzatmak isteseniz bile bazı web siteleri, her istekte kullanıcının kimlik doğrulamasını doğrulamaz (diğer bir deyişle, oturum çerezini gönderdikten sonra iptal etmenin bir yolu yoktur). Bu durum genellikle kısa oturumlara yol açar. Kullanıcı, kimlik doğrulamasının yeniden doğrulanabilmesi için sıklıkla oturum açmaya zorlanır. Bu da, mevcut oturumları bilinen bir süre içinde geçersiz kılmak için şifre değişikliği gibi işlemlerin yapılmasına olanak tanır.

Bu yaklaşımı kullanıyorsanız durum bilgisiz kimlik doğrulama çerezini otomatik olarak yeniden doğrulamanıza yardımcı olabilecek bir teknik çözümümüz vardır. Mevcut kısa ömürlü kimlik doğrulama çerezinizi yenilemek için kullanılabilecek uzun ömürlü ikincil bir jetonla çalışır. Yeni hizmet çalışanı kalıbından yararlanmak, uzun ömürlü jetonla düzenli olarak "kontrol" yapmamıza, kullanıcının kimliğini doğrulamamıza (örneğin, yakın zamanda şifrelerini değiştirmediklerini veya oturumu iptal edip etmediklerini kontrol etmemize) ve yeni bir kısa ömürlü kimlik doğrulama çerezi oluşturmamıza olanak tanır.

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

Bu yayında, 2-Cookie-Handoff (2CH) adını verdiğimiz yeni bir teknik açıklanmaktadır. Bu yaklaşımın olumlu olup olmadığına dair topluluk geri bildirimlerini dinlemek ve olumlu bir fikir edinebilirse 2CH kullanımıyla ilgili en iyi uygulamaları belgelemek için sektörle işbirliği yapmak için bu makaleyi kullanmayı umuyoruz.

Service Worker'lar; Chrome, Firefox ve Opera gibi birçok tarayıcı tarafından desteklenen ve yakında Edge'de de kullanıma sunulacak yeni bir teknolojidir. Mevcut sayfaları değiştirmeden, istemcideki ortak bir kod noktası üzerinden sitenizden gelen tüm ağ isteklerini yerine getirmenize olanak tanır. Bu, giriş yapmış kullanıcılar için sayfanızın yaptığı tüm ağ isteklerine müdahale edebilecek ve mobil uygulamaların yaptığı gibi jeton değişimini gerçekleştirebilecek bir "2CH çalışanı" ayarlamanıza olanak tanır.

Çoğu durumda sunucunuzda, mobil uygulamalar tarafından kısa ömürlü yeni bir jeton almak için kullanılan bir uç nokta zaten bulunur (genellikle OAuth protokolü kullanılarak). Yukarıdaki kalıbı web'de etkinleştirmek için bu uç noktanın, bir hizmet çalışanı tarafından ne zaman çağrıldığını anlayacak şekilde güncellenmesi ve ardından sitedeki diğer sayfaların zaten beklediği şekilde biçimlendirilmiş yeni bir kısa ömürlü 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'lara sahip iki jetonlu kalıp, OAuth 2.0 kalıbına oldukça yakın bir şekilde izler. Halihazırda bir OAuth jetonu uç noktası kullanıyorsanız web kimlik doğrulamanız için bunu hizmet çalışanlarıyla yeniden kullanabilirsiniz.

Kullanıcının Service Worker'ları desteklemeyen bir tarayıcıyı ziyaret etmesi durumunda ne olacağını merak ediyor olabilirsiniz. Yukarıdaki yaklaşımı uygularsanız hiçbir fark görmeyecek ve kısa oturumlar yapmaya devam edeceklerdir.

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