Поделиться через


Настройка удаленного приложения

В некоторых сценариях добавочного обновления полезно для нового приложения ASP.NET Core взаимодействовать с исходным приложением ASP.NET.

В частности, эта возможность используется в настоящее время для удаленной проверки подлинности приложений и функций удаленного сеанса .

Настройка

Чтобы приложение ASP.NET Core взаимодействовать с приложением ASP.NET, необходимо внести несколько небольших изменений в каждое приложение.

ASP.NET конфигурации приложения

Чтобы настроить приложение ASP.NET для получения запросов от приложения ASP.NET Core:

  1. Установка пакета nuget Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices
  2. AddRemoteAppServer Вызов метода расширения в :ISystemWebAdapterBuilder
SystemWebAdapterConfiguration.AddSystemWebAdapters(this)
    .AddRemoteAppServer(options =>
    {
        // ApiKey is a string representing a GUID
        options.ApiKey = ConfigurationManager.AppSettings["RemoteAppApiKey"];
    });

В методе конфигурации параметров, переданном AddRemoteAppServer вызову, необходимо указать ключ API. Ключ API:

  • Используется для защиты конечной точки, чтобы только доверенные вызывающие могли выполнять запросы к нему.
  • Тот же ключ API, предоставленный приложению ASP.NET Core при его настройке.
  • Строка и должна быть синтаксического анализа в виде GUID. Дефисы в ключе являются необязательными.
  1. Необязательно. Добавьте модуль в SystemWebAdapterModule web.config файл, если он еще не добавлен NuGet. Модуль SystemWebAdapterModule не добавляется автоматически при использовании проектов стилей ПАКЕТА SDK для ASP.NET Core.
  <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

Чтобы настроить приложение ASP.NET Core для отправки запросов в приложение ASP.NET, необходимо внести аналогичные изменения, вызвав AddRemoteApp после регистрации служб System.Web adapter в AddSystemWebAdapters.

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

В предыдущем коде:

  • Вызов AddRemoteApp используется для настройки URL-адреса удаленного приложения и ключа ОБЩЕГО секрета API.
  • Свойство RemoteAppUrl указывает URL-адрес приложения ASP платформа .NET Framework, с которым взаимодействует приложение ASP.NET Core. В этом примере URL-адрес считывается из существующего параметра конфигурации, используемого прокси-сервером YARP, который прокси-сервер запрашивает приложение ASP платформа .NET Framework в рамках шаблона отчуждения добавочной миграции.

При обновлении приложения ASP.NET и ASP.NET Core методы расширения теперь можно использовать для настройки проверки подлинности удаленного приложения или удаленного сеанса по мере необходимости.

Защита подключения к удаленному приложению

Так как функции удаленного приложения включают обслуживание запросов на новых конечных точках из приложения ASP.NET, важно обеспечить безопасность связи с приложением ASP.NET и из него.

Сначала убедитесь, что строка ключа API, используемая для проверки подлинности приложения ASP.NET Core с помощью приложения ASP.NET, является уникальным и хранит секрет. Рекомендуется не хранить ключ API в системе управления версиями. Вместо этого загрузите его во время выполнения из безопасного источника, например Azure Key Vault или другой конфигурации безопасной среды выполнения. Чтобы поощрять безопасные ключи API, подключения к удаленному приложению требуют, чтобы ключи были не пустыми идентификаторами GUID (128-разрядные шестнадцатеричные номера).

Во-вторых, так как важно, чтобы приложение ASP.NET Core было в состоянии доверять тому, что оно запрашивает информацию из правильного приложения ASP.NET, приложение ASP.NET должно использовать HTTPS в любых рабочих сценариях, чтобы приложение ASP.NET Core могло знать ответы, обслуживаемые доверенным источником.