Veri API'si oluşturucusunda en iyi güvenlik uygulamaları

Dağıtım kılavuzunun sıralamasında Optimize bölümünün konumunu gösteren diyagram.

Bu makale, Veri API'sinin oluşturucusunda güvenlik için önerilen en iyi yöntemleri içerir. Bu makale, Veri API'sini oluşturucu çözümünüz için güvenlikle ilgili dikkat edilmesi gereken her şeyi içeren kapsamlı bir liste içermez.

TLS'nin eski sürümlerini sunucu düzeyinde devre dışı bırakma

İstemci ile Veri API oluşturucusu arasında gönderilen veriler, hassas veya değerli bilgileri korumak için güvenli bir bağlantı üzerinden gerçekleşmelidir. Güvenli bağlantı genellikle Aktarım Katmanı Güvenliği (TLS) protokolleri kullanılarak kurulur.

OWASP'nin Aktarım Katmanı Koruması kılavuzunda ayrıntılı olarak açıklandığı gibi, TLS doğru uygulandığında çok sayıda güvenlik avantajı sağlar:

  • Gizlilik - bir saldırganın trafiğin içeriğini okumasına karşı koruma.
  • Bütünlük - trafiği değiştiren bir saldırgana karşı koruma.
  • Yeniden yürütme önleme - sunucuya yönelik istekleri yeniden yürüten bir saldırgana karşı koruma.
  • Kimlik doğrulaması - istemcinin gerçek sunucuya bağlı olduğunu doğrulamasına izin verir (istemci sertifikaları kullanılmadığı sürece istemci kimliğinin doğrulanmadığını unutmayın).

Öneriler

TLS'yi güvenli bir şekilde yapılandırmaya yardımcı olan yollardan biri , tls'nin eski sürümlerinin sunucu düzeyinde kullanımını devre dışı bırakmaktır. Veri API oluşturucusu, ASP.NET Core için platformlar arası bir web sunucusu olan Kestrel'de oluşturulur ve varsayılan olarak işletim sisteminin TLS sürüm yapılandırmasını ertelemek üzere yapılandırılır. Microsoft'un .NET kılavuzuna yönelik TLS en iyi yöntemleri , bu tür davranışların ardındaki motivasyonu açıklar:

Uyarı

TLS 1.2, önceki sürümlere göre güvenlik iyileştirmeleri sağlayan bir standarttır. Daha hızlı ve daha güvenli olan en yeni standart TLS 1.3, sonunda TLS 1.2'nin yerini alacak.

.NET Framework uygulamalarının güvenli kalmasını sağlamak için TLS sürümünün sabit kodlanmış olmaması gerekir. .NET Framework uygulamaları, işletim sisteminin (OS) desteklediği TLS sürümünü kullanmalıdır.

Kestrel için desteklenen TLS protokol sürümlerini açıkça tanımlamak destekleniyor olsa da, bunu yapmanız önerilmez. Bu tanımlar, kullanılabilir hale geldikçe gelecekteki TLS sürümleri için desteği engelleyen bir izin verilenler listesine çevrilir. Kestrel'in varsayılan TLS protokolü sürüm davranışı hakkında daha fazla bilgiyi burada bulabilirsiniz.

TLS desteği

TLS 1.2, .NET'in en son sürümlerinde ve en son işletim sistemi sürümlerinin çoğunda varsayılan olarak etkindir.

Üretim için kimlik doğrulamasını yapılandırma

DAB 2.0'dan itibaren varsayılan kimlik doğrulama sağlayıcısıdır Unauthenticated. Bu kimlik doğrulama sağlayıcısı, DAB'nin herhangi bir JSON Web Belirtecini (JWT) incelemediği veya doğrulamadığı ve tüm isteklerin olarak anonymousçalıştırdığı anlamına gelir. DAB'nin önündeki başka bir hizmet arayanların kimliğini doğrulayabilir veya erişimi kısıtlayabilir, ancak DAB yalnızca anonymous olarak yetkilendirir.

Önemli

DAB'yi doğrudan istemcilere sunarsanız, EntraID'ye bağlı olmak yerine üretim seviyesinde bir kimlik doğrulama sağlayıcısı (Custom veya Unauthenticated gibi olan) yapılandırın. Etkin olduğunda Unauthenticated, authenticated ve varlık izinlerinde tanımlanan özel roller hiçbir zaman etkinleştirilmez.

Daha fazla bilgi için bkz. Kimliği Doğrulanmamış sağlayıcı ve çalışma zamanı kimlik doğrulaması yapılandırmasını yapılandırma.

Adına (OBO) kullanıcı yetkisi verilen kimlik doğrulaması

Gerçek kullanıcı kimliğiyle satır düzeyi güvenlik gerektiren SQL Server ve Azure SQL dağıtımları için Adına (OBO) kimlik doğrulamasını etkinleştirmeyi göz önünde bulundurun. OBO gelen kullanıcı belirtecini aşağı akış SQL belirteci ile değiştirir, böylece veritabanı gerçek çağıran kullanıcı olarak kimlik doğrulaması yapar. Daha fazla bilgi için bkz. kullanıcı tarafından atanan kimlik doğrulaması.