Effettuare connessioni Point-to-Site alle Azure VNET utilizzando OpenVPN e utenti di Azure Active Directory

Le connessioni Point-to-Site (P2S) consentono ai computer client di potersi collegare alle reti virtuali in Azure (Azure VNET) ed sono utili per tutti quei telelavoratori che quando sono a casa o sono in trasferta da un cliente hanno necessità di accedere alle risorse su Azure o alle risorse aziendali.

Ho già scritto in passato di come Creare una connessione Point to Site in Azure Resource Manager usando Powershell, anche se è possibile effettuare l’operazione direttamente dal portale di Azure. Ho anche affrontato come Personalizzare il client di una connessione Point to Site su Azure per poter gestire le rotte che non vengono passate dalla configurazione VPN.

L’autenticazione per le connessioni Point-to-Site (P2S) è stata inizialmente basata sui certificati digitali, che nonostante offrano un livello di sicurezza maggiore, sono più difficili da gestire. Successivamente è diventato possibile utilizzare anche un server RADIUS per l’autenticazione degli utenti, come già spiegato nella guida Utilizzare un server RADIUS per autenticare le connessioni VPN Point-to-Site verso le Azure Virtual Network

Figura 1: Diagramma delel connessioni ad una Azure VNET

Ma la vera evoluzione, sopratutto per quelle aziende che sono o che vorranno diventare CLOUD ONLY, ma anche per semplificare le configurazioni degli utenti, è offerta dalla possibilità di utilizzare OpenVPN e l’autemticazione basata su Azure Active Directory (Azure AD)

OpenVPN è un programma VPN open source usato per creare tunnel crittografati punto-punto sicuri fra due computer attraverso una rete non sicura, ad esempio Internet. Permette agli host di autenticarsi l’uno con l’altro per mezzo di chiavi private condivise, certificati digitali o credenziali utente/password. Usa le librerie di cifratura OpenSSL e il protocollo SSLv3/TLSv1.

In questa guida vi mostrerò come configurare una connessione Point-to-Site utilizzando OpenVPN e l’autenticazione basata su Azure AD

NOTA: L’autenticazione basata su Azure AD è supportata solo per le connessioni di protocollo OpenVPN e richiede il client VPN di Azure, disponibile solo per Windows 10.

Prima di cominciare è necessario che vi procuriate il tenant ID della Azure Active Directory in cui si trovano gli utenti che dovranno utilizzare la connessione point-to-site. Loggatevi al portale di Azure e segnatevi il Tenant ID, verificandolo dalle proprietà di Azure AD.

Figura 2: Tenant ID di Azure Active Directory

Accedete al link https://login.microsoftonline.com/common/oauth2/authorize?client_id=41b23e61-6c1e-4545-b367-cd054e0ed4b4&response_type=code&redirect_uri=https://portal.azure.com&nonce=1234&prompt=admin_consent con le credenziali di Global Administrator del vostro tenant di Azure AD e accettate di consentire all’applicazione Azure VPN di poter leggere il profilo degli utenti.

Figura 3: Richiesta di autorizzazione dell’applicazione Azure VPN alla lettura del profilo degli utenti

Verificate che la nuova applicazione sia disponibile tra le applicazioni aziendali della vostra Azure Active Directory.

Figura 4: L’applicazione Azure VPN è disponibile tra le applicazioni aziendali di Azure AD

Potete decidere a quali utenti deve essere concessa la connessione VPN semplicemente cliccando sull’applicazione Azure VPN e aggiungendo nel ramo Users and groups gli utenti che volete autorizzare.

Figura 5: Utenti che potranno effettuare la connessione VPN

Ricordatevi però di configurare l’applicazione in modo tale che sia obbligatorio dichiarare quali utenti potranno effettuare l’accesso altrimenti per impostazione predefinita TUTTI gli utenti potranno utilizzarla.

Figura 6: Per poter utilizzare l’applicazione gli utenti devonoe ssere esplicitamente autorizzati

Configurazione dell’Azure VPN Gateway

In questa guida darò per scontato che abbiate già creato un Azure VPN Gateway per potervi connettere alla vostra Azure VNET. Trovate tutti i passaggi per la creazione dell’Azure VPN Gateway al link https://docs.microsoft.com/it-it/azure/vpn-gateway/vpn-gateway-howto-point-to-site-resource-manager-portal

Dal portale di Azure collegatevi al VPN Gateway e selezionate User VPN Configuration. Decidete l’address pool da assegnare agli utenti remoti e dal menu a tendina scegliete come Tunnel Type OpenVPN (SSL) e come Authentication type Azure Active Directory.

Compilate gli altri campi con i seguenti valori:

  • Tenant: https://login.microsoftonline.com/<Azure AD Directory ID>
  • Audience: 41b23e61-6c1e-4545-b367-cd054e0ed4b4
  • Issuer: https://sts.windows.net/<Azure AD Directory ID>/ (ricordatevi di mettere lo slash finale!)

Figura 7: Configurazione della User VPN

Cliccate su Save e attendete qualche secondo che venga completato il salvataggio. A questo punto si illuminerà il pulsante Download VPN client e sarà possibile scaricare il file di configurazione da utilizzare per l’applicazione Azure VPN Client che installerete in Windows 10.

Figura 8: Download del VPN Client

Estraete il file ZIP scaricato e nella cartella AzureVPN troverete il file azurevpnconfig.xml. Questo file contiene le impostazioni per la connessione VPN e può essere importato direttamente nell’applicazione client VPN di Azure (che dovrete scaricare). È anche possibile distribuire questo file a tutti gli utenti che devono connettersi tramite posta elettronica o altri mezzi. Per la corretta connessione, l’utente dovrà disporre di credenziali Azure AD valide.

Figura 9: File di configurazione della VPN

Configurazione del Client VPN di Azure in Windows 10

Come già detto, l’autenticazione basata su Azure AD è supportata solo per le connessioni effettuate con il protocollo OpenVPN e richiede il client VPN di Azure, disponibile solo per Windows 10. Collegatevi al link https://www.microsoft.com/it-it/p/client-vpn-di-azure/9np355qt2sqb?activetab=pivot:overviewtab per scaricare il Client VPN di Azure dal Microsoft Store.

Figura 10: Download del Client VPN di Azure dal Microsoft Store

Procedete all’installazione del Client VPN di Azure dal Microsoft Store e dopo averlo lanciato, dal pulsante in basso a sinistra, importate il file azurevpnconfig.xml che avete precedentemente scaricato.

Figura 11: Importazione del profilo VPN nel Client VPN di Azure

Fate clic su Salva per completare l’importazione.

Figura 12: Dati importati dal profilo di OpenVPN

Quando lancerete per la prima volta la connessione vi verrà chiesto di inserire le credenziali per il login all’Azure VPN Server. inserite le credenziali di un utente presente nel tenant che avete deciso di utilizzare. È importante sottolineare che la connessione funzionerà anche nel caso in cui stiate utilizzando la Azure Multi-Factor Authentication o dalla Passwordless Authentication, di cui ho già abbondantemente parlato in altre guide.

Figura 13: Lancio della connessione VPN e richiesta delle credenziali di Azure AD

Figura 14: Utilizo della Azure Multi-Factor Authentication o della Passwordless Authentication

Il client di Azure VPN a questo punto scaricherà in maniera automatica tutte le informazioni che fanno riferimento alla Azure VNET e a tutte le rotte conosciute dal vostro Azure VPN Gateway.

Figura 15: Connessione Point-to-site avvenuta con successo

Se per l’autenticazione utilizzerete le credenziali di un utente a cui non avete concesso la possibilità di accedere attraverso la Azure VPN, quando l’utente lancerà per la prima volta la connessione riceverà l’errore mostrato in figura sotto:

Figura 16: Messaggio di errore per l’utente che tenta di effettuare la connessione VPN senza che sia stato autorizzato

Conclusioni

Con il proliferare del numero di telelavoratori e del remote working a causa della pandemia, ultimamente sono aumentate le connessioni VPN verso l’infrastruttura aziendale. Utilizzando il protocollo OpenVPN e l’autenticazione fornita da Azure Active Directory abbiamo la possibilità di effettuare in maniera rapida, semplice ma soprattutto sicura la nostra connessione verso una Azure VNET e nel caso sia presente una connessione Site-to-site anche verso la rete aziendale.