Aracılığıyla paylaş


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

Bu makalede, büyük müşterilerle çalışma deneyimimizi temel alan bazı öğrenmeleri paylaşacağız. Hizmetlerinizin tasarımı ve uygulanmasında bu önerileri göz önünde bulundurabilirsiniz.

Geliştirici deneyimi bileşenlerini gösteren görüntü

Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL) kullanma

ASP.NET için Microsoft Kimlik Doğrulama Kitaplığı (MSAL) ve Microsoft kimlik web kimlik doğrulama kitaplığı, bir uygulamanın gerektirdiği 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 desteklemek için özel olarak iyileştirilmiştir.

Geliştiriciler MSAL'nin en son sürümlerini benimsemeli ve güncel kalmalıdır. 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 ve iyi kurulmuş kitaplıklar kullanın.

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

Azure AD B2C dizin hizmeti günde milyarlarca kimlik doğrulamasını destekler. Saniyede yüksek okuma hızı için tasarlanmıştır. 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şlevi kullanmaktan kaçının: Özel ilkelerinizde önkoşul (if yan tümcesi) olmadan hiçbir zaman oturum açmada yazma işlemi yürütmeyin. 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 gerektiren senaryolardan kaçının. Kullanıcı yolculuğundaki önkoşullar şöyle görünür:

    <Precondition Type="ClaimEquals" ExecuteActionsIf="true"> 
    <Value>requiresMigration</Value>
    ...
    <Precondition/>
    
  • Azaltmayı anlama: Dizin hem uygulama hem de kiracı düzeyinde azaltma kuralları uygular. Okuma/ALMA, Yazma/POST, Güncelleştirme/PUT ve Silme/SILME işlemleri için başka hız sınırları vardır ve 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 mevcut kullanıcılar için PUT altına girer.
    • Her oturum açma işleminde bir kullanıcı oluşturan veya güncelleştiren özel ilke, uygulama düzeyinde PUT veya POST hız sınırına ulaşma olasılığına sahip olabilir. 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. Hem Azure AD B2C sistemini hem de uygulamanızı yoğun trafik için test etmeye dikkat edin. Azure AD B2C, aşağı akış uygulamalarınız veya hizmetleriniz azaltmadan yükü 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ıların geçişini tamamlamak için gereken süreyi 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. Yine de kiracı başına eşiğin altında kalması gerekir.
    • Geçiş işinizin diğer uygulamalar üzerindeki etkilerini anlayın. Canlı uygulamanız için kiracı düzeyinde azaltmaya ve kaynak açlığına neden 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 Active Directory B2C hizmet sınırları ve kısıtlamaları hakkında daha fazla bilgi edinin.

Belirteç ömrünü uzatma

Olası olmayan bir durumda, Azure AD B2C kimlik doğrulama hizmeti yeni kaydolmaları ve oturum açmaları tamamlayamadıysa, oturum açmış kullanıcılar için azaltma sağlamaya devam edebilirsiniz. Yapılandırma ile, kullanıcı uygulamadan oturumu kapatana veya etkinlik dışı kalma nedeniyle oturum zaman aşımına uğramadan önceden oturum açmış olan kullanıcıların algılanan kesinti olmadan uygulamayı kullanmaya devam etmelerine izin vekleyebilirsiniz.

İş gereksinimleriniz ve istediğiniz son kullanıcı deneyimi, hem web hem de Tek sayfalı uygulamalar (SPA) için belirteç yenileme sıklığınızı belirler.

Belirteç ömrünü uzatma

  • Web uygulamaları: Kimlik doğrulama belirtecinin oturum açma işleminin başlangıcında doğrulandığı web uygulamalarında, uygulama oturum geçerliliğini genişletmeye devam etmek için oturum tanımlama bilgisine bağımlıdır. Kullanıcı etkinliğine bağlı olarak oturumları yenilemeye devam edecek 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, uygulamada bir kerelik yapılandırma olarak bu oturum süreleri daha da 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 etme seçeneği olarak Kod Değişimi için Proof Key (PKCE) akışı ile yetkilendirme kodu akışını kullanmanızı öneririz. SPA'nız şu anda ö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ışı kullanmaya devam ederseniz, örtük akışın yenileme belirteciyle sonuçlanmadığını unutmayın. 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 bu senaryoda uygulamayı kullanmaya devam etmesi için kullanabileceğiniz birkaç seçenek vardır.
    • İş gereksinimlerinizi karşılamak için 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 herhangi bir 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 dayalı yetkilendirme kodu izni kullanarak bir oturum açma işlemi aracılığıyla gönderir ve kullanıcının kimliğini doğrular. Ardından 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'lere 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 hizmet vermektedir.
    • 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çirerek önerilen seçeneğe geçin.
    • Mobil uygulamalar için hem yenileme hem de erişim belirteci yaşam sürelerinin uzatılması önerilir.
  • Arka uç veya mikro hizmet uygulamaları: Arka uç (daemon) uygulamaları etkileşimli olmadığından ve kullanıcı bağlamında olmadığından belirteç hırsızlığı olasılığı büyük ölçüde azalır. Güvenlik ve yaşam süresi arasında bir denge kurma ve uzun belirteç ömrü ayarlama önerisinde bulunur.

Çoklu oturum açmayı yapılandırma

Çoklu oturum açma (SSO) ile kullanıcılar tek bir hesapla bir kez oturum açar ve birden çok uygulamaya erişim elde edersiniz. Uygulama, platform veya etki alanı adından bağımsız olarak bir web, mobil veya Tek sayfalı uygulama (SPA) olabilir. Kullanıcı bir uygulamada ilk kez 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 yeniden 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'nun yapılandırılması

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ına en fazla dayanıklılık sağlar.

Güvenli dağıtım uygulamaları

Hizmetin en yaygın 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 hızlı dağıtıma yardımcı olur ve test ve üretime 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ı OWASP İlk 10'da belgelendiği gibi Dağıtılmış Hizmet Reddi (DDoS) saldırıları, SQL eklemeleri, siteler arası betik oluşturma, uzaktan kod yürütme gibi bilinen güvenlik açıklarına karşı koruyun. bir Web Uygulaması Güvenlik Duvarı (WAF) dağıtımı yaygın açıklara ve güvenlik açıklarına karşı savunma yapabilir.

Gizli dizi dö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), belirli bir anahtarın meşru varlıklar tarafından kullanılmak üzere yetkilendirildiği zaman aralığını bir kriptoperiod olarak adlandırır. İş gereksinimlerinizi karşılamak için doğru kriptoperiod uzunluğunu seçin. Geliştiricilerin süre sonunu el ile ayarlaması ve gizli dizileri süre sonu öncesinde iyi döndürmesi gerekir.

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 tüm anahtarların ve sertifikaların envanterini alın. Bu liste büyük olasılıkla özel ilkelerde, API'lerde, imzalama kimliği belirtecinde ve SAML sertifikalarında kullanılan anahtarları içerir.
  • CICD kullanarak, beklenen yoğun sezondan itibaren iki ay içinde süresi dolmak üzere olan gizli dizileri 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 proaktif olarak izleyin ve döndürün.

REST API'lerini test edin

Dayanıklılık bağlamında REST API'lerinin test edilmesi HTTP kodlarının, yanıt yükünün, üst bilgilerin ve performansın doğrulanmasını içermelidir. Test, yalnızca mutlu yol testlerini içermemelidir, aynı zamanda API'nin sorun senaryolarını düzgün bir şekilde işleyip işlemediğini de denetler.

API'leri test etme

Kapsamlı API testlerini dahil etmek için test planınızı öneririz. Promosyon veya tatil trafiği nedeniyle yaklaşan bir artış planlıyorsanız yük testinizi yeni tahminlerle gözden geçirmeniz gerekir. API'lerinizin ve Content Delivery Network'ünüzün (CDN) yük testini üretim ortamında değil geliştirici ortamında gerçekleştirin.

Sonraki adımlar