Warpgate SSO integration

Nel post precedente su Warpgate abbiamo visto come configurare l’autenticazione a 2 fattori per l’accesso SSH ai server. Qui andiamo invece ad analizzare la possibilità di integrare sul sistema l’autenticazione Single Sign-On. Uno degli aspetti più interessanti di Warpgate è la possibilità di integrare l’autenticazione Single Sign-On con provider enterprise come Microsoft Entra ID (Azure AD). Grazie al supporto per protocolli standard come OpenID Connect (OIDC) e SAML 2.0, Warpgate può delegare completamente il processo di autenticazione al sistema di identity management aziendale, consentendo agli utenti di accedere utilizzando le stesse credenziali Microsoft già adottate per gli altri servizi corporate.
Questo approccio da un lato semplifica l’esperienza utente, eliminando la necessità di gestire account locali separati; dall’altro consente di applicare automaticamente tutte le policy di sicurezza definite in Azure, come Multi-Factor Authentication, Conditional Access, controllo dei dispositivi compliant e restrizioni geografiche. In pratica, Warpgate diventa il punto di accesso unificato alle infrastrutture tecniche, mentre Azure mantiene il ruolo di autorità centrale per identità e sicurezza.

Configurazione Warpgate come app su Microsoft Entra ID

La prima cosa da fare è registrare l’instanza di Warpgate sul provider scelto, nel mio caso Microsoft Entra ID, per ottenere il Client ID, il Client Secret ed il Tenant. Sul portale Microsoft Entra ID registrare una nuova applicazione, ed inserire come Redirect URI di tipo Web la return URL di Warpgate https://<warpgate-external-host>/_warpgate/api/sso/return. Al termine di questa fase prendere nota del Application ID, che, come vedremo in seguito, rappresenta il Client ID per Warpgate, e prendere nota anche del Directory ID, il Tenant per Warpgate.

EntraID app

Dopo Aver registrato l’applicazione procedere e creare il Client Secret.

EntraID secret

A questo punto abbiamo tutto il necessario per passare alla configurazione di Warpgate.

Configurazione SSO su Warpgate

Nel file di configurazione di Warpgate procediamo ad inserire le informazioni necessarie all’integrazione SSO con Azure, in particolare:

  • type: il provider type, nel mio caso azure
  • client_id: l’Application ID ottenuto da Entra ID
  • client_secret: il Client Secret ricevuto da Entra ID
  • tenant: il Directory ID configurato su Entra ID
  • return_url_prefix: _: necessario su Azure/Entra ID per sostituire il carattere ‘@’ nella Redirect URI (@warpgate) non supportato da Azure
  • external_host: fqdn o indirizzo IP pubblico di Warpgate
	external_host: <host public IP>
	sso_providers:
	- name: azure
      return_url_prefix: _
      provider:
        type: azure
        client_id: <Azure Application ID>
        client_secret: <Azure Client Secret>
        tenant: <Azure Directory ID>

Facciamo un restart di Warpgate e siamo pronti a configurare l’autenticazione SSO per gli utenti. Dalla console di amministrazione andiamo in Config, scegliamo Users e selezioniamo l’utente, quindi click sul pulsante Add SSO, inseriamo l’indirizzo email corporate e selezioniamo il provider appena configurato.

Warpgate add sso

Warpgate collega gli utenti ai loro account SSO basandosi sull’indirizzo email, quindi l’email dell’utente in Warpgate deve corrispondere a quella verificata su Azure, poiché Warpgate richiede che l’email sia contrassegnata come verificata dal provider SSO per procedere.
Una volta aggiunto l’SSO lo impostiamo per l’autenticazione Web HTTP, mentre per le connessioni SSH configuriamo l’out-of-band web authentication. In questo caso, Warpgate invierà un link di login al client SSH, obbligando l’utente ad autenticarsi tramite browser usando le stesse regole impostate per il protocollo HTTP.

Warpgate sso

Testare accesso SSO

Siamo pronti a vedere in opera l’autenticazione SSO su connessioni SSH tramite Warpgate.
Warpgate utilizza una modalità di autenticazione web out-of-band; quindi, al momento dell’avvio della sessione SSH il client riceverà un link di login da aprire per confermare l’autenticazione con il provider SSO.

Warpgate ssh with sso

Warpgate sso confirm

Facciamo click su Authorize è la nostra sessione SSH sarà pienamente operativa.