Настройка удаленного приложения
В некоторых сценариях добавочного обновления полезно для нового приложения ASP.NET Core взаимодействовать с исходным приложением ASP.NET.
В частности, эта возможность используется в настоящее время для удаленной проверки подлинности приложений и функций удаленного сеанса .
Настройка
Чтобы приложение ASP.NET Core взаимодействовать с приложением ASP.NET, необходимо внести несколько небольших изменений в каждое приложение.
ASP.NET конфигурации приложения
Чтобы настроить приложение ASP.NET для получения запросов от приложения ASP.NET Core:
- Установка пакета nuget
Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices
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. Дефисы в ключе являются необязательными.
- Необязательно. Добавьте модуль в
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 могло знать ответы, обслуживаемые доверенным источником.
ASP.NET Core