Aracılığıyla paylaş


Geliştirici en iyi yöntemleriyle dayanıklılık

Bu makalede, büyük müşterilerle çalışma deneyimimizden yararlanabilirsiniz. Hizmetlerinizin tasarımı ve uygulanması için bu önerileri göz önünde bulundurabilirsiniz.

Microsoft Kimlik Doğrulama Kitaplığı

ASP.NET için Microsoft Kimlik Doğrulama Kitaplığı (MSAL) ve Microsoft kimlik web kimlik doğrulama kitaplığı, uygulamalar için belirteçleri almayı, yönetmeyi, önbelleğe almayı ve yenilemeyi basitleştirir. Bu kitaplıklar, uygulama dayanıklılığını geliştiren özellikler de dahil olmak üzere Microsoft Identity'i destekleyecek şekilde iyileştirilmiştir.

Geliştiriciler MSAL'ın en son sürümlerini benimseyerek güncel kalabilir. Uygulamalarınızda kimlik doğrulaması ve yetkilendirme dayanıklılığını artırmayı öğrenin. Mümkün olduğunda, kendi kimlik doğrulama yığınınızı uygulamaktan kaçının. Bunun yerine, iyi oluşturulmuş kitaplıkları kullanın.

Dizin okumalarını ve yazmalarını iyileştirme

Azure AD B2C dizin hizmeti, saniyede yüksek okuma oranıyla günde milyarlarca kimlik doğrulamasını destekler. Bağımlılıkları en aza indirmek ve dayanıklılığı artırmak için yazmalarınızı iyileştirin.

Dizin okuma ve yazmalarını iyileştirme

  • Oturum açmada dizine yazma işlevlerinden kaçının: Özel ilkelerinizde önkoşul (if yan tümcesi) olmadan oturum açmada yazma işlemi yürütmekten kaçının. Oturum açmada yazma gerektiren bir kullanım örneği, kullanıcı parolalarının tam zamanında geçirilmesidir. Her oturum açmada yazma işlemine gerek yoktur. Kullanıcı yolculuğundaki önkoşullar şunlardır:

    <Precondition Type="ClaimEquals" ExecuteActionsIf="true"> 
    <Value>requiresMigration</Value>
    ...
    <Precondition/>
    
  • Azaltmayı anlama: Dizin, uygulama ve kiracı düzeyinde azaltma kuralları uygular. Okuma/ALMA, Yazma/POST, Güncelleştirme/PUT ve Silme/SILME işlemleri için daha fazla hız sınırı vardır. Her işlemin farklı sınırları vardır.

    • Oturum açma sırasında yazma işlemi, yeni kullanıcılar için POST veya geçerli kullanıcılar için PUT altında yer alır.
    • Her oturum açma işleminde bir kullanıcı oluşturan veya güncelleştiren özel ilke, uygulama düzeyi PUT veya POST hız sınırına isabet edebilir. Microsoft Entra Id veya Microsoft Graph aracılığıyla dizin nesnelerini güncelleştirirken de aynı sınırlar geçerlidir. Benzer şekilde, her oturum açmada okuma sayısını en düşük düzeyde tutmak için okumaları inceleyin.
    • Dizin yazma oranını tahmin etmek ve azaltmayı önlemek için en yüksek yükü tahmin edin. En yüksek trafik tahminleri kaydolma, oturum açma ve çok faktörlü kimlik doğrulaması (MFA) gibi eylemlere yönelik tahminleri içermelidir. Yoğun trafik için Azure AD B2C sistemini ve uygulamanızı test edin. Azure AD B2C, aşağı akış uygulamalarınız veya hizmetleriniz azaltma olmadığında yükü azaltmadan işleyebilir.
    • Geçiş zaman çizelgenizi anlayın ve planlayın. Microsoft Graph kullanarak kullanıcıları Azure AD B2C'ye geçirmeyi planlarken, kullanıcı geçişini tamamlama süresini hesaplamak için uygulama ve kiracı sınırlarını göz önünde bulundurun. Kullanıcı oluşturma işinizi veya betiğinizi iki uygulama kullanarak bölerseniz, uygulama başına sınırı kullanabilirsiniz. Kiracı başına eşiğin altında kaldığından emin olun.
    • Geçiş işinizin diğer uygulamalar üzerindeki etkilerini anlayın. Kiracı düzeyinde azaltma olmadığından ve canlı uygulamanız için kaynak açlığı olmadığından emin olmak için bağlı olan diğer uygulamalar tarafından sunulan canlı trafiği göz önünde bulundurun. Daha fazla bilgi için bkz . Microsoft Graph azaltma kılavuzu.
    • Kaydolma ve oturum açma benzetimi yapmak için bir yük testi örneği kullanın.
    • Azure AD B2C hizmet sınırları ve kısıtlamaları hakkında daha fazla bilgi edinin.

Belirteç ömrü

Azure AD B2C kimlik doğrulama hizmeti yeni kaydolma ve oturum açma işlemleri tamamlayamazsa, oturum açan kullanıcılar için azaltma sağlayın. Yapılandırmayla, oturum açan kullanıcılar uygulama oturumunu kapatana veya oturumun etkinlik dışı kalma süresi geçene kadar uygulamayı kesinti olmadan kullanabilir.

İş gereksinimleriniz ve son kullanıcı deneyiminiz, web ve tek sayfalı uygulamalar (SPA) için belirteç yenileme sıklığını belirler.

Belirteç ömrünü uzatma

  • Web uygulamaları: Kimlik doğrulama belirtecinin oturum açma sırasında doğrulandığı web uygulamaları için uygulama, oturum geçerliliğini genişletmeye devam etmek için oturum tanımlama bilgisine bağlıdır. Kullanıcı etkinliğine göre yenilenen sıralı oturum sürelerini uygulayarak kullanıcıların oturum açmış durumda kalmasını sağlayın. Uzun süreli belirteç verme kesintisi varsa, bu oturum süreleri uygulamada tek seferlik bir yapılandırma olarak artırılabilir. Oturum ömrünü izin verilen en yüksek düzeye kadar tutun.
  • SPA'lar: SPA, API'lere çağrı yapmak için erişim belirteçlerine bağımlı olabilir. SPA'lar için, kullanıcının uygulamayı kullanmaya devam etmesi için bir seçenek olarak Kod Değişimi için Proof Key (PKCE) akışı ile yetkilendirme kodu akışını kullanmanızı öneririz. SPA'nız örtük akış kullanıyorsa PKCE ile yetkilendirme kodu akışına geçiş yapmayı göz önünde bulundurun. Web uygulamalarının dayanıklılığını gerçekleştirmek için uygulamanızı MSAL.js 1.x'ten MSAL.js 2.x'e geçirin. Örtük akış yenileme belirteciyle sonuçlanmıyor. Tarayıcının Azure AD B2C ile etkin bir oturumu varsa SPA, yetkilendirme uç noktasında yeni belirteç istekleri gerçekleştirmek için gizli iframe kullanabilir. SPA'lar için, kullanıcının uygulamayı kullanmaya devam etmesi için birkaç seçenek vardır.
    • Erişim belirtecinin geçerlilik süresini uzatın.
    • Kimlik doğrulama ara sunucusu olarak api ağ geçidi kullanmak için uygulamanızı derleyin. Bu yapılandırmada, SPA kimlik doğrulaması olmadan yüklenir ve API çağrıları API ağ geçidine yapılır. API ağ geçidi, kullanıcıyı bir ilkeye göre yetkilendirme kodu verme işlemini kullanarak oturum açma işlemi aracılığıyla gönderir ve kullanıcının kimliğini doğrular. API ağ geçidi ile istemci arasındaki kimlik doğrulama oturumu bir kimlik doğrulama tanımlama bilgisi kullanılarak korunur. API ağ geçidi API ağ geçidi tarafından alınan belirteci veya sertifikalar, istemci kimlik bilgileri veya API anahtarları gibi başka bir doğrudan kimlik doğrulama yöntemini kullanarak API'lere hizmet eder.
    • Önerilen seçeneğe geçin. Kod Değişimi için Proof Key (PKCE) ve Çıkış Noktaları Arası Kaynak Paylaşımı (CORS) desteğiyle SPA'nızı örtük izinden yetkilendirme kodu verme akışına geçirin.
    • Mobil uygulamalar için yenileme ve erişim belirteci yaşam sürelerini uzatın.
  • Arka uç veya mikro hizmet uygulamaları: Arka uç (daemon) uygulamaları etkileşimli değildir ve kullanıcı bağlamında değildir, bu nedenle belirteç hırsızlığı olasılığı azalır. Önerimiz, güvenlik ve yaşam süresi arasında bir denge kurma ve uzun belirteç ömrü ayarlama.

Çoklu oturum açma

Çoklu oturum açma (SSO) ile kullanıcılar bir hesapla bir kez oturum açar ve platform veya etki alanı adından bağımsız olarak uygulamalara erişim elde edersiniz: web, mobil veya tek sayfalı uygulama (SPA). Kullanıcı bir uygulamada oturum açtığında, Azure AD B2C tanımlama bilgisi tabanlı bir oturumda kalır.

Sonraki kimlik doğrulama isteklerinde Azure AD B2C, tanımlama bilgisi tabanlı oturumu okur ve doğrular ve kullanıcıdan oturum açmasını istemeden bir erişim belirteci gönderir. SSO bir ilkede veya uygulamada sınırlı bir kapsamla yapılandırılmışsa, daha sonra diğer ilkelere ve uygulamalara erişim için yeni kimlik doğrulaması gerekir.

SSO'yi yapılandırma

Kiracınızdaki birden çok uygulamanın ve kullanıcı akışının aynı kullanıcı oturumunu paylaşmasına izin vermek için SSO'nun kiracı genelinde (varsayılan) olacak şekilde yapılandırın. Kiracı genelinde yapılandırma, yeni kimlik doğrulaması için en fazla dayanıklılığı sağlar.

Güvenli dağıtım uygulamaları

En yaygın hizmet kesintileri kod ve yapılandırma değişiklikleridir. Sürekli Tümleştirme ve Sürekli Teslim (CICD) süreçlerinin ve araçlarının benimsenmesi büyük ölçekte dağıtıma olanak tanır ve test ve dağıtım sırasında insan hatalarını azaltır. Hata azaltma, verimlilik ve tutarlılık için CICD'yi benimseyin. Azure Pipelines bir CICD örneğidir.

Botlardan koruma

Uygulamalarınızı Dağıtılmış Hizmet Reddi (DDoS) saldırıları, SQL eklemeleri, siteler arası betik oluşturma, uzaktan kod yürütme ve OWASP Top-10'da belgelenen diğer bilinen güvenlik açıklarından koruyun. Yaygın açıklara ve güvenlik açıklarına karşı savunmak için bir Web Uygulaması Güvenlik Duvarı (WAF) dağıtın.

Sır -larını

Azure AD B2C; uygulamalar, API'ler, ilkeler ve şifreleme için gizli dizileri kullanır. Gizli diziler kimlik doğrulamasının, dış etkileşimlerin ve depolamanın güvenliğini sağlar. Ulusal Standartlar ve Teknoloji Enstitüsü (NIST), meşru varlıklar tarafından kriptoperiod olarak kullanılan anahtar yetkilendirme süresini ifade eder. Gerekli kriptoperiod uzunluğunu seçin. Süre sonunu ayarlayın ve gizli dizileri süresi dolmadan önce döndürün.

Gizli dizi döndürmeyi uygulama

  • Microsoft Entra kimlik doğrulamasını destekleyen herhangi bir hizmette kimlik doğrulaması yapmak için desteklenen kaynaklar için yönetilen kimlikleri kullanın. Yönetilen kimlikleri kullandığınızda, kimlik bilgilerinin döndürmesi de dahil olmak üzere kaynakları otomatik olarak yönetebilirsiniz.
  • Azure AD B2C'de yapılandırılan anahtarların ve sertifikaların envanterini alın. Bu liste özel ilkelerde, API'lerde, imzalama kimliği belirtecinde ve Güvenlik Onaylama İşaretleme Dili (SAML) sertifikalarında kullanılan anahtarları içerebilir.
  • CICD kullanarak süresi dolan gizli dizileri beklenen yoğun sezondan itibaren iki ay içinde döndürün. Bir sertifikayla ilişkili özel anahtarlar için önerilen maksimum şifreleme alanı bir yıldır.
  • Parolalar ve sertifikalar gibi API erişim kimlik bilgilerini izleyin ve döndürün.

REST API testi

Dayanıklılık için REST API testlerinin HTTP kodlarının, yanıt yükünün, üst bilgilerin ve performansın doğrulanmasını içermesi gerekir. Yalnızca mutlu yol testlerini kullanmayın ve API'nin sorun senaryolarını düzgün bir şekilde işlediğini onaylayın.

Test planı

Test planınızın kapsamlı API testleri içermesini öneririz. Promosyon veya tatil trafiğine bağlı dalgalanmalar için yük testlerini yeni tahminlerle düzeltin. API yük testlerini ve Content Delivery Network'u (CDN) üretim ortamında değil geliştirici ortamında gerçekleştirin.

Sonraki adımlar