Integrazioni · Applicazioni web legacy
Autenticazione a due fattori per applicazioni web legacy con un proxy SAML
Per l’applicazione web interna che regge metà dell’attività, il cui fornitore non esiste più o il cui codice nessuno osa toccare, e che ora l’auditor vuole dietro un’autenticazione a più fattori. Un reverse proxy davanti all’applicazione, appoggiato al servizio SSO di Notakey, aggiunge l’approvazione sul telefono senza modificare una sola riga dell’app.
Come si collega
Trattate l’applicazione come una scatola nera
Un reverse proxy Apache con mod_auth_mellon si colloca davanti all’applicazione e parla SAML con il servizio SSO fornito con l’appliance Notakey. Quando il browser richiede un URL protetto senza una sessione SAML, il proxy reindirizza all’identity provider. L’utente inserisce il proprio nome utente, il server di autenticazione invia una richiesta di approvazione al suo telefono e, una volta approvata, il browser ritorna con un’asserzione SAML firmata. Il proxy verifica la firma e solo allora lascia passare le richieste.
L’applicazione non cambia mai. Se ha una propria schermata di accesso, questa resta com’è: si aggiunge un cancello davanti, senza sostituire ciò che c’è dietro. Non serve nemmeno sapere in quale linguaggio è scritta l’applicazione.
Il proxy funziona come container Docker su qualsiasi host in grado di raggiungere l’applicazione, oppure direttamente sui nodi dell’appliance, riutilizzandone i certificati TLS o la configurazione ACME: non serve un host separato.
Cosa sapere prima di iniziare
- L’applicazione deve essere raggiungibile solo attraverso il proxy. Una regola del firewall interno, o una rete docker dedicata se l’app è containerizzata, fa parte della configurazione, non è un optional. Se gli utenti possono ancora raggiungere direttamente l’IP dell’app, la 2FA è solo decorativa.
- Servono una Notakey Authentication Appliance con il servizio SSO integrato in funzione, utenti registrati in Notakey Authenticator, Docker su un host in grado di raggiungere l’applicazione, nonché DNS e certificati TLS per il nuovo hostname.
- È lo schema adatto a tutto ciò che parla HTTP. VPN, accessi a Windows e server Linux usano invece le integrazioni RADIUS e del provider di credenziali.
- Il cancello si trova davanti all’applicazione. Se l’app mantiene la propria schermata di accesso, gli utenti la vedono ancora dopo l’approvazione sul telefono.
Da zero alla prima approvazione
- 01
Generate i certificati SP e scaricate i metadati IdP
Create i certificati e i metadati del service provider SAML con mellon_create_metadata.sh (un solo comando docker), poi scaricate i metadati dell’identity provider dal vostro servizio SSO.
- 02
Adattate la configurazione Apache e avviate il proxy
Impostate l’hostname d’ingresso, l’URL del backend e i percorsi dei certificati nella configurazione di esempio del repository blackbox-webapp-2fa-howto, avviate il container e controllatene i log.
- 03
Registrate il proxy nella pagina di federazione SSO e provate
Registrate il proxy come service provider; l’appliance converte i metadati SP in un comando ntk cfg set già pronto. Aprite il nuovo indirizzo dell’applicazione, approvate la notifica push e vi troverete davanti all’applicazione intatta, protetta da un’autenticazione forte.
Domande frequenti
- Bisogna modificare l’applicazione stessa?
- No. Un reverse proxy Apache con mod_auth_mellon parla SAML con il servizio SSO di Notakey e filtra ogni richiesta. L’applicazione e la sua schermata di accesso restano esattamente come sono.
- Cosa serve prima di iniziare?
- Una Notakey Authentication Appliance con il servizio SSO integrato in funzione, utenti registrati in Notakey Authenticator, Docker su un host in grado di raggiungere l’applicazione, nonché DNS e certificati TLS per il nuovo hostname.
- Gli utenti possono aggirare il proxy?
- Solo se l’applicazione resta raggiungibile direttamente. Impeditelo con una regola del firewall interno o, se l’app è containerizzata, con una rete Docker dedicata: fa parte della configurazione, non è un extra opzionale.
Guide e documentazione
- Aggiungere la 2FA a un’applicazione web legacy senza toccarne il codice
- blackbox-webapp-2fa-howto su GitHub
Prodotti correlati