Quando vogliamo ospitare una web app o una function, gli app service sono lo strumento più semplice da utilizzare. In pochi passi abbiamo un dominio, la protezione SSL e un ambiante completamente gestito accessibili direttamente con un indirizzo pubblico.
Molto spesso però, queste app fanno parte di un ecosistema di servizi e non devono essere interrogati direttamente da chiunque. Potremmo disporre di un API Gateway, di un Application Gateway o di un Front Door che si pongono nel mezzo per aumentare il livello di sicurezza e fornire un punto di accesso univoco.
Questo significa che dobbiamo impedire l'accesso a chiunque al nostro App Service, ma consentire il forward delle chiamate ai gateway prima citati o ad altri servizi ospitati sempre nell'infrastruttura Azure. Per raggiungere questo obbiettivo gli App Service dispongono di una sezione Access Restrictions conosciuta principalmente per la possibilità di bloccare IP, ma in realtà quando aggiungiamo una rule possiamo anche ricorrere all'uso di service tag. In pratica con essi possiamo identificare uno specifico servizio di Azure. Non dobbiamo far altro quindi che indicare Service Tag come tipologia di sorgente ed indicare il tipo di servizio in Service Tag.

Nell'esempio precedente indichiamo il backend di FrontDoor, ma disponiamo anche delle voci AppService, eventualmente circoscrivibili ad una specifica region. Possiamo eventualmente filtrare per header addizionali che in genere i gateway inseriscono, come l'ip o l'host.

Nel momento in cui inseriamo una sola rule di tipo allow, automaticamente la regola implicita già esistente diventa di tipo deny, impedendo l'accesso a chi non viene da FrontDoor.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare automaticamente una pipeline YAML da una sua definizione in Azure DevOps
Impostare il forward degli header in un sito ASP.NET Core dietro a un reverse proxy
Gestire la query string nell'output cache di ASP.NET Core
Utilizzare Front Door come CDN di contenuti statici
Parallelizzare le chiamate HTTP con async/await e le Promise in JavaScript
Innestare una query nel metodo Contains di Entity Framework Core
Permettere l'append ai file di un Azure Storage immutabile
Offline first con Blazor e IndexedDB
Azure Functions e OpenAPI: la coppia perfetta!
ChatOps con GitHub
torniamo il 26/05 con un nuovo format, dedicato a tutti gli sviluppatori: non perdete la nostra devConf!Call for Paper e iscrizioni aperte! https://aspit.co/devconf-22#azure #dotnet #aws #docker #angular #react #devops #vuejs
Real world .NET Architecture
I più letti di oggi
- Bloccare una pull request che arriva da branch non definiti in GitHub
- Gestire condizioni complesse in JavaScript
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Proteggersi dagli attacchi di Open Redirect in ASP.NET Core MVC
- La gestione dei verbi PUT e DELETE in un servizio REST con ASP.NET MVC 2
- Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache