Application Gateway'de App Service sorunlarını giderme

Azure Uygulaması Hizmeti Azure Uygulaması lication Gateway ile arka uç hedefi olarak kullanıldığında karşılaşabileceğiniz sorunları tanılamayı ve çözmeyi öğrenin.

Genel Bakış

Bu makalede, Mimari Merkezi'nde daha ayrıntılı olarak açıklandığı gibi aşağıdaki sorunları gidermeyi öğreneceksiniz: Ters ara sunucu ile arka uç web uygulaması arasında özgün HTTP ana bilgisayar adını koruma

  • Yanlış mutlak URL'ler
  • Yanlış yeniden yönlendirme URL'leri
    • Yeniden yönlendirme olduğunda app service URL'si tarayıcıda görünür
    • bunun bir örneği: Yanlış ana bilgisayar adına sahip bir yeniden yönlendirme nedeniyle OIDC kimlik doğrulama akışı bozuk; Bu, App Service Kimlik Doğrulaması ve Yetkilendirme kullanımını içerir
  • Bozuk tanımlama bilgileri
    • tanımlama bilgileri tarayıcı ile App Service arasında yayılmaz
    • bunun bir örneği: app service ARRAffinity tanımlama bilgisi etki alanı app service ana bilgisayar adına ayarlanır ve özgün ana bilgisayar yerine "example.azurewebsites.net" öğesine bağlıdır. Sonuç olarak oturum benzitesi bozulur.

Yukarıdaki belirtilerin kök nedeni, Application Gateway tarafından App Service'e doğru kullanılan ana bilgisayar adını tarayıcı tarafından görüldüğü gibi farklı bir ana bilgisayar adına geçersiz kılan bir kurulumdur. Konak adı genellikle varsayılan App Service "azurewebsites.net" etki alanına geçersiz kılınabilir.

Root cause - Application Gateway overwrites hostname to azurewebsites.net

Örnek yapılandırma

Yapılandırmanızın aşağıdaki iki durumdan biriyle eşleşmesi durumunda, kurulumunuz bu makaledeki yönergelere tabidir:

  • HTTP Ayarlar Arka Uç Adresinden Ana Bilgisayar Adı'nın etkin olduğunu seçin
  • Belirli bir etki alanı adıyla geçersiz kılma, tarayıcı isteğinin sahip olduğu değerden farklı bir değere ayarlanır

Neden

App Service çok kiracılı bir hizmet olduğundan isteği doğru uç noktaya yönlendirmek için istekteki ana bilgisayar üst bilgisini kullanır. App Services'in varsayılan etki alanı adı olan *.azurewebsites.net (örneğin, contoso.azurewebsites.net), uygulama ağ geçidinin etki alanı adından (örneğin, contoso.com) farklıdır. Arka uç App Service'de, tarayıcı tarafından görüldüğü gibi etki alanıyla uyumlu yeniden yönlendirme URL'leri veya tanımlama bilgileri oluşturmak için gerekli bağlam eksik.

Çözüm

Üretim için önerilen çözüm, Application Gateway ve App Service'i konak adını geçersiz kılmayacak şekilde yapılandırmaktır. App Service'i Application Gateway ile Yapılandırma başlığındaki "Özel Etki Alanı (önerilen)" yönergelerini izleyin

Yalnızca makalede açıklandığı gibi etkileri değerlendirdikten sonra başka bir geçici çözüm (aşağıda açıklandığı gibi Konum üst bilgisinin yeniden yazılması gibi) uygulamayı göz önünde bulundurun: Ters ara sunucu ile arka uç web uygulaması arasında özgün HTTP ana bilgisayar adını koruma. Bu etkiler, etki alanına bağlı tanımlama bilgilerinin ve mutlak URL'lerin konum üst bilgisinin dışında kalma olasılığını içerir.

Geçici çözüm: Konum üst bilgisini yeniden yazın

Uyarı

Bu yapılandırmanın sınırlamaları vardır. İstemci ile Application Gateway arasında ve arka uçtaki Application ve App Service arasında farklı ana bilgisayar adları kullanmanın etkilerini gözden geçirmenizi öneririz. Daha fazla bilgi için Mimari Merkezi'ndeki makaleyi gözden geçirin: Ters ara sunucu ile arka uç web uygulaması arasında özgün HTTP ana bilgisayar adını koruma

Konum üst bilgisindeki konak adını uygulama ağ geçidinin etki alanı adı olarak ayarlayın. Bunu yapmak için, yanıttaki konum üst bilgisinin azurewebsites.net içerip içermediğini değerlendiren bir koşulla yeniden yazma kuralı oluşturun. Ayrıca, uygulama ağ geçidinin ana bilgisayar adına sahip olmak için konum üst bilgisini yeniden yazmak için bir eylem gerçekleştirmesi gerekir. Daha fazla bilgi için konum üst bilgisini yeniden yazma yönergelerine bakın.

Dekont

HTTP üst bilgisi yeniden yazma desteği yalnızca Application Gateway'in Standard_v2 ve WAF_v2 SKU'su için kullanılabilir. Üst Bilgi Yeniden Yazma ve v2 SKU ile kullanılabilen diğer gelişmiş özellikler için v2'ye geçiş yapmanızı öneririz.

Sonraki adımlar

Yukarıdaki adımlar sorunu çözmediyse bir destek bileti açın.