Aracılığıyla paylaş


Uzak uygulama kurulumu

Bazı artımlı yükseltme senaryolarında, yeni ASP.NET Core uygulamasının özgün ASP.NET uygulamasıyla iletişim kurabilmesi yararlıdır.

Özellikle, bu özellik şu anda uzak uygulama kimlik doğrulaması ve uzak oturum özellikleri için kullanılır.

Yapılandırma

ASP.NET Core uygulamasının ASP.NET uygulamasıyla iletişim kurmasını sağlamak için her uygulamada birkaç küçük değişiklik yapılması gerekir.

uygulama yapılandırmasını ASP.NET

ASP.NET uygulamasını ASP.NET Core uygulamasından istek alacak şekilde ayarlamak için:

  1. nuget paketini yükleme Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices
  2. AddRemoteAppServer üzerinde uzantı yöntemini çağırınISystemWebAdapterBuilder:
SystemWebAdapterConfiguration.AddSystemWebAdapters(this)
    .AddRemoteAppServer(options =>
    {
        // ApiKey is a string representing a GUID
        options.ApiKey = ConfigurationManager.AppSettings["RemoteAppApiKey"];
    });

Çağrıya geçirilen seçenekler yapılandırma yönteminde AddRemoteAppServer bir API anahtarı belirtilmelidir. API anahtarı:

  • Yalnızca güvenilen arayanların istekte bulunabilmesi için uç noktanın güvenliğini sağlamak için kullanılır.
  • yapılandırıldığında ASP.NET Core uygulamasına sağlanan API anahtarı.
  • bir dize ve GUID olarak ayrıştırılabilir olmalıdır. Anahtardaki kısa çizgiler isteğe bağlıdır.
  1. İsteğe bağlı: NuGet tarafından henüz eklenmediyse modülüne web.config ekleyinSystemWebAdapterModule. ASP.NET SystemWebAdapterModule Core için SDK stili projeleri kullanılırken modül otomatik olarak eklenmez.
  <system.webServer>
    <modules>
+      <remove name="SystemWebAdapterModule" />
+      <add name="SystemWebAdapterModule" type="Microsoft.AspNetCore.SystemWebAdapters.SystemWebAdapterModule, Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices" preCondition="managedHandler" />
    </modules>
</system.webServer>

ASP.NET Core uygulaması

ASP.NET uygulamasına istek gönderebilmek için ASP.NET Core uygulamasını ayarlamak için, System.Web bağdaştırıcı hizmetlerini ile AddSystemWebAdapterskaydettikten sonra çağırarak AddRemoteApp benzer bir değişiklik yapmanız gerekir.

builder.Services.AddSystemWebAdapters()
    .AddRemoteAppClient(options =>
    {
        options.RemoteAppUrl = new(builder.Configuration["ReverseProxy:Clusters:fallbackCluster:Destinations:fallbackApp:Address"]);
        options.ApiKey = builder.Configuration["RemoteAppApiKey"];
    });

Önceki kodda:

  • Çağrı AddRemoteApp , uzak uygulamanın URL'sini ve paylaşılan gizli dizi API anahtarını yapılandırmak için kullanılır.
  • özelliği, RemoteAppUrl ASP.NET Core uygulamasının iletişim kurduğunu ASP.NET Framework uygulamasının URL'sini belirtir. Bu örnekte URL, artımlı geçişin boğma deseninin bir parçası olarak ASP.NET Framework uygulamasına proxy'ler tarafından istenen YARP proxy'si tarafından kullanılan mevcut bir yapılandırma ayarından okunur.

Hem ASP.NET hem de ASP.NET Core uygulaması güncelleştirildikçe, uzantı yöntemleri artık gerektiğinde uzak uygulama kimlik doğrulamasını veya uzak oturumu ayarlamak için kullanılabilir.

Uzak uygulama bağlantısının güvenliğini sağlama

Uzak uygulama özellikleri, ASP.NET uygulamasından yeni uç noktalarda istek sunulmasını içerdiğinden, ASP.NET uygulamasıyla iletişimin güvenli olması önemlidir.

İlk olarak, ASP.NET uygulamasıyla ASP.NET Core uygulamasının kimliğini doğrulamak için kullanılan API anahtar dizesinin benzersiz olduğundan ve gizli tutulduğundan emin olun. API anahtarının kaynak denetiminde depolanmaması en iyi yöntemdir. Bunun yerine, Azure Key Vault veya diğer güvenli çalışma zamanı yapılandırması gibi güvenli bir kaynaktan çalışma zamanında yükleyin. Güvenli API anahtarlarını teşvik etmek için uzak uygulama bağlantıları, anahtarların boş olmayan GUID'ler (128 bit onaltılık sayılar) olmasını gerektirir.

İkinci olarak, ASP.NET Core uygulamasının doğru ASP.NET uygulamasından bilgi istediği konusunda güvenebilmesi önemli olduğundan, ASP.NET uygulamanın ASP.NET Core uygulamasının yanıtların güvenilir bir kaynak tarafından sunulduğundan haberdar olabilmesi için herhangi bir üretim senaryosunda HTTPS kullanması gerekir.