다음을 통해 공유


원격 앱 설정

일부 증분 업그레이드 시나리오에서는 새 ASP.NET Core 앱이 원래 ASP.NET 앱과 통신할 수 있도록 하는 것이 유용합니다.

특히 이 기능은 현재 원격 앱 인증원격 세션 기능에 사용됩니다.

구성

ASP.NET Core 앱이 ASP.NET 앱과 통신할 수 있도록 하려면 각 앱을 약간 변경해야 합니다.

ASP.NET 앱 구성

ASP.NET Core 앱에서 요청을 받을 수 있도록 ASP.NET 앱을 설정하려면 다음을 수행합니다.

  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 키는 다음과 같습니다.

  • 신뢰할 수 있는 호출자만 요청을 수행할 수 있도록 엔드포인트를 보호하는 데 사용됩니다.
  • 구성될 때 ASP.NET Core 앱에 제공된 것과 동일한 API 키입니다.
  • 문자열이며 GUID구문 분석할 수 있어야 합니다. 키의 하이픈은 선택 사항입니다.
  1. 선택 사항: 모듈이 SystemWebAdapterModule NuGet에서 web.config 아직 추가되지 않은 경우 모듈을 추가합니다. SystemWebAdapterModule ASP.NET Core에 SDK 스타일 프로젝트를 사용하는 경우 모듈이 자동으로 추가되지 않습니다.
  <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 앱에 요청을 보낼 수 있도록 ASP.NET Core 앱을 설정하려면 System.Web 어댑터 서비스를 AddSystemWebAdapters에 등록한 후 AddRemoteApp을 호출하여 유사한 변경을 수행해야 합니다.

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 속성은 ASP.NET Core 앱이 통신하는 ASP.NET Framework 앱의 URL을 지정합니다. 이 예제에서는 증분 마이그레이션 의 스트랭글러 무화과 패턴의 일부로 ASP.NET Framework 앱에 요청을 프록시하는 YARP 프록시에서 사용하는 기존 구성 설정에서 URL을 읽습니다.

ASP.NET 및 ASP.NET Core 앱이 모두 업데이트되면 필요에 따라 확장 메서드를 사용하여 원격 앱 인증 또는 원격 세션을 설정할 수 있습니다.

원격 앱 연결 보안

원격 앱 기능에는 ASP.NET 앱의 새 엔드포인트에 대한 요청을 제공하는 작업이 포함되므로 ASP.NET 앱과 통신하는 것이 중요합니다.

먼저 ASP.NET 앱으로 ASP.NET Core 앱을 인증하는 데 사용되는 API 키 문자열이 고유하고 비밀로 유지되는지 확인합니다. API 키는 소스 제어에 저장하지 않는 것이 좋습니다. 대신 Azure Key Vault 또는 기타 보안 런타임 구성과 같은 보안 원본에서 런타임에 로드합니다. 보안 API 키를 장려하기 위해 원격 앱 연결을 사용하려면 키가 비어있지 않은 GUID(128비트 16진수)여야 합니다.

둘째, ASP.NET Core 앱이 올바른 ASP.NET 앱에서 정보를 요청하는 것을 신뢰할 수 있어야 하므로 ASP.NET 앱은 모든 프로덕션 시나리오에서 HTTPS를 사용하여 ASP.NET Core 앱이 신뢰할 수 있는 원본에서 응답이 제공되고 있음을 알 수 있어야 합니다.