Hyperlane'da Kimlik Doğrulama Middleware'i

Güvenlik, her web uygulaması için bir önceliktir. Kaynaklarınıza kimin erişebileceğini kontrol etmelisiniz. Hyperlane'da bunu middleware kullanarak yaparsınız. Middleware bir kapı bekçisi görevi görür. İstekleri kodunuza ulaşmadan önce yakalar.

Hyperlane Middleware Nasıl Çalışır

Middleware, ServerHook trait'ini kullanır. İki ana bölümden oluşur:

new(): Bağlantıyı kurar. • handle(): Her istek için çalışır. Güvenliği burada kontrol edersiniz.

handle metodu bir durum (status) döndürür:

Status::Continue: İstek güvenlidir. Geçmesine izin verin. • Status::Reject: İstek güvensizdir. Burada durdurun.

Yaygın Kimlik Doğrulama Desenleri

  1. Header Kontrolleri Bir Authorization header'ı olup olmadığını kontrol edebilirsiniz. Eğer header eksikse, 401 Unauthorized durumu döndürün. İsteği hemen reddedin.

  2. Bearer Token'lar Çoğu API, Bearer token'lar kullanır. Middleware'iniz şunları yapmalıdır: • Header'ın "Bearer " ile başlayıp başlamadığını kontrol edin. • Token'ı ayıklayın. • Token'ı daha sonra kullanmak üzere context içinde saklayın.

  3. Öznitelik Filtreleme Hyperlane, basit makrolar kullanarak istekleri filtrelemenize olanak tanır. Erişimi şunlarla kısıtlayabilirsiniz: • HTTP yöntemleri (GET veya POST gibi). • Host adları. • Belirli yollar (paths). • Referer header'ları.

Güvenli API'ler için En İyi Uygulamalar

• Hızlı hata verin (Fail fast). Sunucu kaynaklarından tasarruf etmek için hatalı istekleri erkenden reddedin. • Context özniteliklerini kullanın. Doğrulanmış token'ları context içinde saklayın, böylece uygulamanızın diğer bölümleri bunları tekrar ayrıştırmak (re-parsing) zorunda kalmadan okuyabilir. • CORS'u doğru şekilde yönetin. Kimlik doğrulama yapmadan önce CORS header'larınızı ayarlayın. Bu, tarayıcıların hata mesajlarını okuyabilmesini sağlar. • Middleware'lerinizi katmanlandırın. Sıralamaya karar vermek için öncelik numaraları kullanın. Önce CORS'u, ardından kimlik doğrulamayı çalıştırın. • Akışları (streams) yönetin. Bir istek gönderilemezse, hataları önlemek için akışı kapatın.

Bu araçları kullanarak güvenli ve düzenli sistemler inşa edersiniz.

Kaynak: https://dev.to/tengxgfyrz67s/authentication-middleware-151c Proje Kodu: https://github.com/hyperlane-dev/hyperlane