Considerazioni relative alla sicurezza quando si accede alle app in remoto usando il proxy applicazione di Azure ADSecurity considerations for accessing apps remotely with Azure AD Application Proxy

Questo articolo illustra i componenti che vengono usati per proteggere la sicurezza degli utenti e delle applicazioni quando si usa il proxy applicazione di Azure Active Directory.This article explains the components that work to keep your users and applications safe when you use Azure Active Directory Application Proxy.

Il diagramma seguente illustra in che modo Azure AD consente l'accesso remoto sicuro alle applicazioni locali.The following diagram shows how Azure AD enables secure remote access to your on-premises applications.

Diagramma dell'accesso remoto sicuro con il proxy applicazione di Azure AD

Vantaggi di sicurezzaSecurity benefits

Il proxy applicazione di Azure AD offre i vantaggi di sicurezza seguenti:Azure AD Application Proxy offers the following security benefits:

Accesso autenticatoAuthenticated access

Se si sceglie di usare la preautenticazione di Azure Active Directory, solo le connessioni autenticate possono accedere alla rete.If you choose to use Azure Active Directory preauthentication, then only authenticated connections can access your network.

Il proxy applicazione di Azure AD fa affidamento sul servizio token di sicurezza di Azure AD per tutta l'autenticazione.Azure AD Application Proxy relies on the Azure AD security token service (STS) for all authentication. La preautenticazione, per sua natura, blocca un numero significativo di attacchi anonimi perché solo le identità autenticate possono accedere all'applicazione back-end.Preauthentication, by its very nature, blocks a significant number of anonymous attacks, because only authenticated identities can access the back-end application.

Se si sceglie Pass-through come metodo di preautenticazione, non si otterrà questo vantaggio.If you choose Passthrough as your preauthentication method, you don't get this benefit.

Accesso condizionaleConditional access

Applicare controlli dei criteri più completi prima che vengano stabilite connessioni alla rete.Apply richer policy controls before connections to your network are established.

Con l'accesso condizionale è possibile definire restrizioni sul tipo di traffico che può accedere alle applicazioni back-end.With conditional access, you can define restrictions on what traffic is allowed to access your back-end applications. È possibile, ad esempio, creare criteri per definire restrizioni in base alla posizione, al livello di autenticazione e al profilo di rischio.You can create policies that restrict sign-ins based on location, strength of authentication, and user risk profile.

È possibile usare l'accesso condizionale anche per configurare criteri di autenticazione a più fattori e aggiungere così un altro livello di sicurezza alle autenticazioni utente.You can also use conditional access to configure Multi-Factor Authentication policies, adding another layer of security to your user authentications.

Terminazione di trafficoTraffic termination

Tutto il traffico viene terminato nel cloud.All traffic is terminated in the cloud.

Il proxy applicazione di Azure AD è un proxy inverso, quindi tutto il traffico verso le applicazioni back-end viene terminato nel servizio.Because Azure AD Application Proxy is a reverse-proxy, all traffic to back-end applications is terminated at the service. La sessione può essere ristabilita solo con il server back-end e ciò significa che i server back-end non sono esposti al traffico HTTP diretto.The session can get reestablished only with the back-end server, which means that your back-end servers are not exposed to direct HTTP traffic. Questa configurazione consente una protezione migliore da attacchi mirati.This configuration means that you are better protected from targeted attacks.

Tutti gli accessi sono in uscitaAll access is outbound

Non è necessario aprire alcuna connessione in ingresso nella rete aziendale.You don't need to open inbound connections to the corporate network.

I connettori proxy di applicazione usano solo connessioni in uscita per il servizio proxy di applicazione di Azure AD e, pertanto, non è necessario aprire le porte del firewall per le connessioni in ingresso.Application Proxy connectors only use outbound connections to the Azure AD Application Proxy service, which means that there is no need to open firewall ports for incoming connections. I proxy tradizionali richiedono una rete perimetrale e consentono l'accesso a connessioni non autenticate al perimetro della rete.Traditional proxies required a perimeter network (also known as DMZ, demilitarized zone, or screened subnet) and allowed access to unauthenticated connections at the network edge. Questo scenario richiede investimenti in prodotti web application firewall per analizzare il traffico e proteggere l'ambiente.This scenario required investments in web application firewall products to analyze traffic and protect the environment. Con il proxy applicazione non è necessario disporre di una rete perimetrale perché tutte le connessioni sono in uscita e su un canale sicuro.With Application Proxy, you don't need a perimeter network because all connections are outbound and take place over a secure channel.

Per altre informazioni sui connettori, vedere Understand Azure AD Application Proxy connectors (Informazioni sui connettori proxy di applicazione di Azure AD).For more information about connectors, see Understand Azure AD Application Proxy connectors.

Machine Learning e analisi di livello cloudCloud-scale analytics and machine learning

Ottenere una protezione all'avanguardia.Get cutting-edge security protection.

Dal momento che fa parte di Azure Active Directory, il proxy applicazione può sfruttare Azure AD Identity Protection con i dati provenienti da Microsoft Security Response Center e dalla Digital Crimes Unit.Because it's part of Azure Active Directory, Application Proxy can leverage Azure AD Identity Protection, with data from the Microsoft Security Response Center and Digital Crimes Unit. Insieme si possono identificare gli account compromessi e offrire protezione contro gli accessi ad alto rischio. Per determinare quali tentativi di accesso sono ad alto rischio, si prendono in considerazione diversi fattori.Together we proactively identify compromised accounts and offer protection from high-risk sign-ins. We take into account numerous factors to determine which sign-in attemps are high risk. Questi fattori includono l'uso di flag per contrassegnare i dispositivi infettati, l'anonimizzazione delle reti e i percorsi atipici o improbabili.These factors include flagging infected devices, anonymizing networks, and atypical or unlikely locations.

Molti di questi eventi e segnalazioni sono già disponibili tramite un'API per l'integrazione con i sistemi SIEM (Security Information and Event Management, Sistema di gestione delle informazioni e degli eventi di sicurezza).Many of these reports and events are already available through an API for integration with your security information and event management (SIEM) systems.

Accesso remoto come servizioRemote access as a service

Non è necessario preoccuparsi di mantenere e applicare patch ai server locali.You don’t have to worry about maintaining and patching on-premises servers.

Il software senza patch è tuttora responsabile di un numero elevato di attacchi.Unpatched software still accounts for a large number of attacks. Il proxy di applicazione di Azure AD è un servizio Internet di Microsoft e, quindi, sarà sempre possibile ottenere le patch di sicurezza e gli aggiornamenti più recenti.Azure AD Application Proxy is an Internet-scale service that Microsoft owns, so you always get the latest security patches and upgrades.

Per migliorare la sicurezza delle applicazioni pubblicate dal proxy applicazione di Azure AD, vengono bloccate l'indicizzazione e l'archiviazione delle applicazioni da parte dei robot dell'agente di ricerca Web.To improve the security of applications published by Azure AD Application Proxy, we block web crawler robots from indexing and archiving your applications. Ogni volta che un robot dell'agente di ricerca Web prova a recuperare le impostazioni dei robot per un'app pubblicata, il proxy applicazione risponde con un file robots.txt che include User-agent: * Disallow: /.Each time a web crawler robot tries to retrieve the robot's settings for a published app, Application Proxy replies with a robots.txt file that includes User-agent: * Disallow: /.

Prevenzione DDoSDDOS prevention

Le applicazioni pubblicate mediante il proxy applicazione sono protette contro gli attacchi Distributed Denial di Service (DDoS).Applications published through Application Proxy are protected against Distributed Denial of Service (DDOS) attacks.

Il servizio Proxy applicazione monitora la quantità di traffico che tenta di raggiungere la rete e le applicazioni.The Application Proxy service monitors the amount of traffic attempting to reach your applications and network. Se il numero di dispositivi che richiedono l'accesso remoto alle applicazioni subisce un picco, Microsoft limita l'accesso alla rete.If the number of devices requesting remote access to your applications spikes, Microsoft throttles access to your network.

Microsoft osserva i modelli di traffico delle singole applicazioni e della sottoscrizione interessata nel suo complesso.Microsoft watches traffic patterns for individual applications and for your subscription as a whole. Se un'applicazione riceve un numero di richieste superiore rispetto al normale, le richieste di accesso all'applicazione vengono negate per un breve periodo di tempo.If one application receives higher than normal requests, then requests to access that application are denied for a short period of time. Se si riceve un numero di richieste superiore al normale per l'intera sottoscrizione, vengono negate le richieste di accesso a qualsiasi app.If you receive higher than normal requests across your whole subscription, then requests to access any of your apps are denied. Questa misura preventiva impedisce che i server applicazioni vengano sovraccaricati da richieste di accesso remoto e consente agli utenti locali di continuare ad accedere alle proprie app.This preventative measure keeps your application servers from being overloaded by remote access requests, so that your on-premises users can keep accessing their apps.

Dietro le quinteUnder the hood

Il proxy applicazione di Azure AD è costituito da due parti:Azure AD Application Proxy consists of two parts:

  • Servizio basato sul cloud: servizio eseguito in Azure in cui vengono stabilite le connessioni esterne client/utente.The cloud-based service: This service runs in Azure, and is where the external client/user connections are made.
  • Connettore locale: componente locale in ascolto delle richieste provenienti dal servizio proxy di applicazione di Azure AD e in grado di gestire le connessioni alle applicazioni interne.The on-premises connector: An on-premises component, the connector listens for requests from the Azure AD Application Proxy service and handles connections to the internal applications.

Un flusso tra il connettore e il servizio proxy applicazione viene stabilito quando:A flow between the connector and the Application Proxy service is established when:

  • Il connettore viene configurato per la prima volta.The connector is first set up.
  • Il connettore reperisce le informazioni di configurazione dal servizio proxy di applicazione.The connector pulls configuration information from the Application Proxy service.
  • Un utente accede a un'applicazione pubblicata.A user accesses a published application.

Nota

Tutte le comunicazioni si verificano su SSL e hanno sempre origine dal connettore verso il servizio proxy applicazione.All communications occur over SSL, and they always originate at the connector to the Application Proxy service. Il servizio è solo in uscita.The service is outbound only.

Il connettore usa un certificato client per l'autenticazione al servizio proxy applicazione per quasi tutte le chiamate.The connector uses a client certificate to authenticate to the Application Proxy service for nearly all calls. L'unica eccezione a questo processo è il passaggio di configurazione iniziale in cui viene stabilito il certificato client.The only exception to this process is the initial setup step, where the client certificate is established.

Installazione del connettoreInstalling the connector

Quando il connettore viene configurato per la prima volta, si verificano gli eventi di flusso seguenti:When the connector is first set up, the following flow events take place:

  1. La registrazione del connettore al servizio avviene durante l'installazione del connettore.The connector registration to the service happens as part of the installation of the connector. Agli utenti viene chiesto di immettere le credenziali di amministratore di Azure AD.Users are prompted to enter their Azure AD admin credentials. Il token acquisito dalla procedura di autenticazione viene quindi presentato al servizio proxy di applicazione di Azure AD.The token acquired from this authentication is then presented to the Azure AD Application Proxy service.
  2. Il servizio proxy di applicazione valuta il tokenThe Application Proxy service evaluates the token. Controlla se l'utente è un amministratore dell'azienda nel tenant.It checks whether the user is a company administrator in the tenant. Se l'utente non è un amministratore, il processo viene terminato.If the user is not an administrator, the process is terminated.
  3. Il connettore genera una richiesta di certificato client e la passa con il token al servizio proxy di applicazione,The connector generates a client certificate request and passes it, along with the token, to the Application Proxy service. che a sua volta verifica il token e firma la richiesta del certificato client.The service in turn verifies the token and signs the client certificate request.
  4. Il connettore usa questo certificato client per la futura comunicazione con il servizio proxy applicazione.The connector uses the client certificate for future communication with the Application Proxy service.
  5. Il connettore esegue un pull iniziale dei dati di configurazione del sistema dal servizio usando il certificato client ed è quindi pronto ad accettare le richieste.The connector performs an initial pull of the system configuration data from the service using its client certificate, and it is now ready to take requests.

Aggiornamento delle impostazioni di configurazioneUpdating the configuration settings

Ogni volta che il servizio proxy applicazione aggiorna le impostazioni di configurazione, si verificano gli eventi di flusso seguenti:Whenever the Application Proxy service updates the configuration settings, the following flow events take place:

  1. Il connettore si connette all'endpoint di configurazione all'interno del servizio proxy applicazione usando il suo certificato client.The connector connects to the configuration endpoint within the Application Proxy service by using its client certificate.
  2. Dopo che il certificato client è stato convalidato, il servizio proxy applicazione restituisce i dati di configurazione al connettore, ad esempio il gruppo di connettori di cui fa parte il connettore.After the client certificate is validated, the Application Proxy service returns configuration data to the connector (for example, the connector group that the connector should be part of).
  3. Se il certificato corrente ha più di 180 giorni, il connettore genera una nuova richiesta di certificato, aggiornando di fatto il certificato client ogni 180 giorni.If the current certificate is more than 180 days old, the connector generates a new certificate request, which effectively updates the client certificate every 180 days.

Accesso alle applicazioni pubblicateAccessing published applications

Quando gli utenti accedono a un'applicazione pubblicata, tra il servizio proxy di applicazione e il connettore del proxy di applicazione si verificano gli eventi seguenti:When users access a published application, the following events take place between the Application Proxy service and the Application Proxy connector:

  1. Il servizio autentica l'utente per l'appThe service authenticates the user for the app
  2. Il servizio inserisce la richiesta nella coda del connettoreThe service places a request in the connector queue
  3. Un connettore elabora la richiesta ricevuta dalla codaA connector processes the request from the queue
  4. Il connettore attende una rispostaThe connector waits for a response
  5. Il servizio invia i dati all'utenteThe service streams data to the user

Per altre informazioni sugli eventi che si verificano in ognuno di questi passaggi, continuare la lettura.To learn more about what takes place in each of these steps, keep reading.

1. Il servizio autentica l'utente per l'app1. The service authenticates the user for the app

Se l'app è configurata per l'utilizzo di PassThrough come metodo di autenticazione, gli eventi descritti in questa sezione non si verificano.If you configured the app to use Passthrough as its preauthentication method, the steps in this section are skipped.

Se l'app è configurata per eseguire la pre-autenticazione con Azure AD, l'utente viene reindirizzato al servizio token di sicurezza di Azure AD per eseguire l'autenticazione e si verificano gli eventi seguenti:If you configured the app to preauthenticate with Azure AD, users are redirected to the Azure AD STS to authenticate, and the following steps take place:

  1. Il proxy applicazione verifica gli eventuali requisiti dei criteri di accesso condizionale per l'applicazione specifica.Application Proxy checks for any conditional access policy requirements for the specific application. Questo passaggio verifica che l'utente sia stato assegnato all'applicazione.This step ensures that the user has been assigned to the application. Se è necessaria la verifica in due passaggi, la sequenza di autenticazione richiede all'utente di usare un secondo metodo di autenticazione.If two-step verification is required, the authentication sequence prompts the user for a second authentication method.

  2. Dopo avere superato tutti i controlli, il servizio token di sicurezza di Azure AD rilascia un token firmato per l'applicazione e l'utente viene reindirizzato al servizio proxy applicazione.After all checks have passed, the Azure AD STS issues a signed token for the application and redirects the user back to the Application Proxy service.

  3. Il proxy applicazione verifica che il token sia stato rilasciato per correggere l'applicazione.Application Proxy verifies that the token was issued to correct the application. Vengono eseguiti anche altri controlli, come verificare che il token sia stato firmato da Azure AD e si trovi ancora nella finestra valida.It performs other checks also, such as ensuring that the token was signed by Azure AD, and that it is still within the valid window.

  4. Il proxy applicazione imposta un cookie di autenticazione crittografato per indicare che l'autenticazione all'applicazione è stata completata.Application Proxy sets an encrypted authentication cookie to indicate that authentication to the application has occurred. Questo cookie include un timestamp di scadenza basato sul token di Azure AD e su altri dati, ad esempio il nome utente su cui si basa l'autenticazione.The cookie includes an expiration timestamp that's based on the token from Azure AD and other data, such as the user name that the authentication is based on. Questo cookie viene crittografato con una chiave privata nota solo al servizio proxy applicazione.The cookie is encrypted with a private key known only to the Application Proxy service.

  5. Il proxy applicazione reindirizza l'utente all'URL originariamente richiesto.Application Proxy redirects the user back to the originally requested URL.

Se qualsiasi parte dei passaggi di preautenticazione non ha esito positivo, la richiesta dell'utente viene negata e viene visualizzato un messaggio che indica l'origine del problema.If any part of the preauthentication steps fails, the user’s request is denied, and the user is shown a message indicating the source of the problem.

2. Il servizio inserisce la richiesta nella coda del connettore2. The service places a request in the connector queue

I connettori mantengono aperta una connessione in uscita diretta al servizio proxy di applicazione.Connectors keep an outbound connection open to the Application Proxy service. Quando viene ricevuta una richiesta, il sevizio la mette in coda su una delle connessioni aperte affinché il connettore la accetti.When a request comes in, the service queues up the request on one of the open connections for the connector to pick up.

La richiesta include elementi dell'applicazione, come le intestazioni della richiesta e i dati del cookie crittografato, l'utente che effettua la richiesta e l'ID richiesta.The request includes items from the application, such as the request headers, data from the encrypted cookie, the user making the request, and the request ID. Con la richiesta vengono inviati i dati del cookie crittografato, non il cookie di autenticazione.Although data from the encrypted cookie is sent with the request, the authentication cookie itself is not.

3. Il connettore elabora la richiesta ricevuta dalla coda.3. The connector processes the request from the queue.

A seconda della richiesta, il proxy applicazione eseguirà una delle azioni seguenti:Based on the request, Application Proxy performs one of the following actions:

  • Se la richiesta è un'operazione semplice, ad esempio non sono presenti dati all'interno del corpo come avviene in una richiesta RESTful GET, il connettore esegue una connessione alla risorsa interna di destinazione e attende una risposta.If the request is a simple operation (for example, there is no data within the body as is with a RESTful GET request), the connector makes a connection to the target internal resource and then waits for a response.

  • Se la richiesta contiene dati associati nel corpo, ad esempio un'operazione RESTful POST, il connettore esegue una connessione in uscita usando il certificato client verso l'istanza del proxy applicazione.If the request has data associated with it in the body (for example, a RESTful POST operation), the connector makes an outbound connection by using the client certificate to the Application Proxy instance. Esegue questa connessione per richiedere i dati e aprire una connessione alla risorsa interna.It makes this connection to request the data and open a connection to the internal resource. Dopo la ricezione della richiesta dal connettore, il servizio proxy applicazione inizia ad accettare contenuto dall'utente e inoltra i dati al connettore.After it receives the request from the connector, the Application Proxy service begins accepting content from the user and forwards data to the connector. Il connettore, a sua volta, inoltra i dati alla risorsa interna.The connector, in turn, forwards the data to the internal resource.

4. Il connettore attende una risposta.4. The connector waits for a response.

Dopo aver completato la richiesta e la trasmissione di tutto il contenuto al back-end, il connettore attende una risposta.After the request and transmission of all content to the back end is complete, the connector waits for a response.

Dopo aver ricevuto la risposta, il connettore esegue una connessione in uscita al servizio proxy applicazione per restituire i dettagli dell'intestazione e avviare il flusso dei dati restituiti.After it receives a response, the connector makes an outbound connection to the Application Proxy service, to return the header details and begin streaming the return data.

5. Il servizio invia i dati all'utente.5. The service streams data to the user.

In questa fase è possibile che vengano eseguite alcune operazioni di elaborazione dell'applicazione.Some processing of the application may occur here. Se è il proxy di applicazione è stato configurato in modo da convertire le intestazioni o gli URL nell'applicazione, in questa fase vengono eseguite tutte le operazioni di elaborazione necessarie.If you configured Application Proxy to translate headers or URLs in your application, that processing happens as needed during this step.

Passaggi successiviNext steps

Considerazioni relative alla topologia di rete quando si usa il proxy applicazione di Azure ADNetwork topology considerations when using Azure AD Application Proxy

Comprendere i connettori del proxy applicazione di Azure ADUnderstand Azure AD Application Proxy connectors