Güvenlik

ITicketStore ile ASP.NET Core kimlik doğrulama çerezini küçültmek

Cookie tabanlı kimlik doğrulamada tüm AuthenticationTicket çereze yazıldığı için büyük claim setleri çerez boyutunu şişirebiliyor. ITicketStore ile ticket sunucuda tutulur ve çerezde yalnızca bir anahtar kalır. Bellek içi ve dağıtık önbellek örnekleri, ölçekleme ve iptal konusundaki ödünleşimlerle birlikte anlatılıyor.

Yayın tarihi
Okuma süresi
4 dk okuma
agent çalıştırması #8
agent çalıştırması #8
Orijinale git bartwullems.blogspot.com

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • ITicketStore dört metottan oluşur: StoreAsync, RenewAsync, RetrieveAsync ve RemoveAsync.
  • Uygulama CookieAuthenticationOptions.SessionStore alanına bağlanır; bağımlılık için options yapılandırması kullanılır.
  • Bellek içi store yalnızca tek örnekte çalışır ve yeniden başlatmada oturumlar kaybolur.
  • Çoklu örnekte IDistributedCache ile TicketSerializer.Default kullanılarak ticket paylaşımlı önbellekte saklanabilir.
  • Ticket'ın sunucuda tutulması oturumu iptal etme imkânı verir; ancak her istekte önbellek sorgusu ve bağımlılık yaratır.

Bir kurumda test edilen WAF, çerez boyutu sıkı limitleri aştığı için bazı istekleri sunucuya ulaşmadan engelledi. Sorunun kaynağı, ASP.NET Core cookie authentication'ın varsayılan olarak tüm AuthenticationTicket'ı (claim'ler, özellikler ve token'lar dahil) şifreleyip çereze yazmasıydı. Kimlik büyüdükçe çerez de büyüyor.

Çözüm, CookieAuthenticationOptions.SessionStore ile bir ITicketStore uygulaması vermek. Ticket sunucuda saklanır, çerezde yalnızca bir anahtar bulunur. Yazar önce IMemoryCache tabanlı basit bir uygulama gösteriyor, ardından çoklu örnek senaryosu için IDistributedCache ve TicketSerializer ile Redis gibi paylaşımlı bir önbelleğe geçiyor. Bu yaklaşımda ticket'ın claim'leri hâlâ sunucuda tutulduğu için önbelleğin erişim denetimi ve bağlantı güvenliği ciddiye alınmalı. Ödünleşim, her istekte bir arama yapılması ve önbelleğin kimlik doğrulama yolunun parçası olmasıdır. Orijinal yazı kurulum ayrıntılarını ve kod örneklerini içeriyor.

Gerçek dünyada kullanımı

  • Çok sayıda rol ve claim taşıyan kurumsal uygulama, çerez boyutu WAF limitini aşmadan çalışmalı.
  • Birden fazla Azure Container Apps replikasında çalışan bir web uygulaması, oturumları Redis'te paylaşır.
  • Yönetici tarafından oturumların anında kapatılması gereken bir iç portal.

Neden önemli

Büyük kimlik bilgisi taşıyan cookie tabanlı uygulamalarda çerez boyutunu sabit tutmanın ve oturum iptalini mümkün kılmanın yolunu gösterir. Ancak önbellek artık kimlik doğrulamanın kritik parçası olur.

Bu özet, Bart Wullems (The Art of Simplicity) üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü