Estendere la durata della sessione di una Enterprise App pubblicata mediante App Proxy di Azure

da | Nov 4, 2025

 

 

Sempre più aziende decidono di pubblicare le proprie applicazioni mediante Azure Application Proxy al posto di esporle direttamente su internet.

Questa funzionalità di Azure permette di richiedere di l’autenticazione mediante Microsoft Entra prima di poter contattare l’applicazione, in modo da garantire standard di sicurezza elevati come ad esempio l’adozione di MFA.

Di default circa ogni ora il proxy richiede all’utente di autenticarsi nuovamente, per evitargli questo disagio è possibile modificare la durata del “access token” mediante Graph API.

Questa modifica ha un impatto diverso rispetto a configurare una Conditional Access Policy per impostare la frequenza di Log-in, che invece sarebbe il metodo consigliato da Microsoft per stabilire la durata del “refresh token” e del “session token”.

Il “refresh token” e il “session token” servono rispettivamente per richiedere un nuovo “access token” e per mantenere la sessione di log-in con Microsoft Entra, tipicamente hanno durata molto più estesa e perciò non hanno nessun impatto sulla validità della sessione con l’Application Proxy.

La stessa procedura mostrata in questo articolo può essere utilizzata per estendere la durata dei token di autenticazione (access token, id token e SAML token) utilizzati dalle app che fanno mezzo di OIDC/OAuth2 o SAML mediante Microsoft Entra.

PREREQUISITI

Prima di poter proseguire è necessario aver installato il modulo di PowerShell Microsoft Graph, se non lo si ha già installato è possibile farlo eseguendo il seguente comando:

Mediante l’opzione -Scope CurrentUser il modulo viene installato solamente per l’utente corrente, in modo che non siano necessari i privilegi amministrativi.

Se viene mostrato un errore simile al seguente significa che il modulo è già installato:

 

AUTENTICAZIONE MEDIANTE GRAPH API

Per poter effettuare le richieste API mostrate in questo articolo è necessario richiedere i seguenti Scopes in fase di autenticazione:

  • Policy.ReadWrite.ApplicationConfiguration
  • Policy.Read.All
  • Application.ReadWrite.All

È possibile assegnare gli scopes ad un applicazione per utilizzare l’autenticazione mediante certificati o secrets, tuttavia verrà mostrato solo come autenticarsi in modo interattivo.

Eseguire il seguente comando ed effettuare il log-in con un utenza con privilegi sufficienti:

Se si volesse accedere come guest ad un tenant esterno, sarebbe necessario specificare il Tenant ID:

Se l’autenticazione va a buon fine, viene mostrato un messaggio simile al seguente:

NOTA BENE: You can use the -NoWelcome parameter to suppress this message.

OBJECT ID DELL’APPLICAZIONE

Al fine di selezionare su quale app si vuole agire mediante Graph API è necessario utilizzare il suo Object ID per identificarla.

L’attributo Object ID è disponibile nella sezione Overview dell’app in App Registration sul portale Microsoft Entra:

Se non fosse possibile trovare l’applicazione su App Registration, sarebbe possibile cercarla mediante PowerShell specificandone il DisplayName (sostituire la variabile $appDisplayName con il nome mostrato su Enterprise App):

L’output del precedente comando è simile al seguente e l’attributo necessario per procedere è Id nella seconda colonna:

In questo articolo l’ID dell’applicazione verrà indicato facendo utilizzo della variabile applicationObjectId, per inizializzare la variabile eseguire il seguente comando sostituendo l’ID con quello ottenuto negli step precedenti:

 

CONFIGURAZIONE DELLA POLICY

Per creare la policy eseguire su PowerShell:

Nello script precedente la policy configura una durata di 4 ore (parametro AccessTokenLifetime), è possibile modificare la durata a patto che il valore sia maggiore di 10 minuti e minore di 24 ore.

Nella variabile tokenLifetimePolicyId viene salvato l’ID della policy ed è possibile visualizzarla eseguendo:

 

ASSEGNAZIONE DELLA POLICY ALL’APP

Prima di proseguire verificare se sono attive delle policy per l’app, eseguendo il seguente comando:

Se l’output è vuoto significa che non sono attive delle policies, altrimenti è possibile rimuoverle seguendo gli step elencati nel paragrafo successivo.

Per assegnare la policy all’app eseguire:

 

RIMOZIONE DI UNA POLICY

Se si è a conoscenza di un’app a cui è assegnata la policy da rimuovere, è possibile identificare l’ID della policy eseguendo il seguente comando:

Se invece non fosse possibile identificare un’app a cui è asssegnata la policy, sarebbe possibile elencarle tutte per poi leggere l’ID di quella da rimuovere, per farlo eseguire:

Il valore dell’ID della policy viene indicato nell’output di entrambi i comandi nella colonna chiamata Id.

Inizializzare la variabile tokenLifetimePolicyId con il valore dell’ID ottenuto con uno dei comandi precedenti:

Per disassegnare la policy ad una specifica app è possibile eseguire il seguente comando:

Successivamente, se non viene utilizzata per altre apps, è possibile rimuovere la policy eseguendo il seguente comando:

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Servizi ICT
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore
  • Angelo Lauria  Autore
  • Edoardo Prot  Autore
  • Davide D’Urso  Autore
Marco Valle

Marco Valle

Mi chiamo Marco Valle e da sempre sono appassionato di Cybersicurezza e Linux. Per lavoro implemento soluzioni open source.

Related Post

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione