Nastavení vzdálené aplikace
V některých scénářích přírůstkového upgradu je užitečné, aby nová aplikace ASP.NET Core mohla komunikovat s původní aplikací ASP.NET.
Konkrétně se tato funkce používá v současné době pro vzdálené ověřování aplikací a funkce vzdálené relace .
Konfigurace
Pokud chcete aplikaci ASP.NET Core povolit komunikaci s ASP.NET aplikací, je nutné provést v každé aplikaci několik malých změn.
konfigurace aplikace ASP.NET
Nastavení aplikace ASP.NET tak, aby mohla přijímat požadavky z aplikace ASP.NET Core:
- Instalace balíčku NuGet
Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices
- Volání metody rozšíření na
AddRemoteAppServer
ISystemWebAdapterBuilder
:
SystemWebAdapterConfiguration.AddSystemWebAdapters(this)
.AddRemoteAppServer(options =>
{
// ApiKey is a string representing a GUID
options.ApiKey = ConfigurationManager.AppSettings["RemoteAppApiKey"];
});
V metodě konfigurace možností předávané volání AddRemoteAppServer
musí být zadán klíč rozhraní API. Klíč rozhraní API je:
- Používá se k zabezpečení koncového bodu, aby na něj mohli požadavky provádět jenom důvěryhodní volající.
- Stejný klíč rozhraní API poskytnutý aplikaci ASP.NET Core, když je nakonfigurovaný.
- Řetězec a musí být parsovatelný jako identifikátor GUID. Spojovníky v klíči jsou volitelné.
- Volitelné: Přidejte
SystemWebAdapterModule
modul doweb.config
modulu, pokud ho ještě nepřidali NuGet. ModulSystemWebAdapterModule
se nepřidá automaticky při použití projektů stylu sady SDK pro 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>
Aplikace v ASP.NET Core
Pokud chcete nastavit aplikaci ASP.NET Core tak, aby mohla odesílat požadavky do aplikace ASP.NET, musíte provést podobnou změnu, která volá AddRemoteApp
po registraci služeb system.web adaptéru u AddSystemWebAdapters
.
builder.Services.AddSystemWebAdapters()
.AddRemoteAppClient(options =>
{
options.RemoteAppUrl = new(builder.Configuration["ReverseProxy:Clusters:fallbackCluster:Destinations:fallbackApp:Address"]);
options.ApiKey = builder.Configuration["RemoteAppApiKey"];
});
V předchozím kódu:
- Volání
AddRemoteApp
se používá ke konfiguraci adresy URL vzdálené aplikace a klíče sdíleného tajného klíče rozhraní API. - Vlastnost
RemoteAppUrl
určuje adresu URL aplikace ASP.NET Framework, se kterou aplikace ASP.NET Core komunikuje. V tomto příkladu se adresa URL načítá z existujícího nastavení konfigurace používaného proxy serverem YARP, které proxy serveruje požadavky na aplikaci ASP.NET Framework jako součást vzoru škrtiče přírůstkové migrace.
S aktualizovanou aplikací ASP.NET i ASP.NET Core je teď možné metody rozšíření použít k nastavení vzdáleného ověřování aplikací nebo vzdálené relace podle potřeby.
Zabezpečení připojení vzdálené aplikace
Vzhledem k tomu, že funkce vzdálené aplikace zahrnují obsluhu požadavků na nové koncové body z aplikace ASP.NET, je důležité, aby komunikace s ASP.NET aplikací a z ní byla zabezpečená.
Nejprve se ujistěte, že řetězec klíče rozhraní API použitý k ověření aplikace ASP.NET Core pomocí aplikace ASP.NET je jedinečný a uchovávaný tajný klíč. Osvědčeným postupem je neukládaný klíč rozhraní API ve správě zdrojového kódu. Místo toho ho načtěte za běhu ze zabezpečeného zdroje, jako je Azure Key Vault nebo jiná konfigurace zabezpečeného modulu runtime. Aby bylo možné podpořit zabezpečené klíče rozhraní API, připojení vzdálených aplikací vyžadují, aby klíče byly neprázdné identifikátory GUID (128bitová šestnáctkové čísla).
Zadruhé, protože je důležité, aby aplikace ASP.NET Core mohla důvěřovat tomu, že žádá o informace ze správné aplikace ASP.NET, měla by aplikace ASP.NET používat PROTOKOL HTTPS v jakýchkoli produkčních scénářích, aby aplikace ASP.NET Core věděla, že odpovědi obsluhuje důvěryhodný zdroj.