Minden cégnél akad egy: az a belső webalkalmazás, amelyen a fél üzletmenet múlik, amelynek a szállítója rég eltűnt, vagy amelynek a forráskódjához senki sem mer hozzányúlni, és amelyet az auditor most többfaktoros hitelesítés mögött szeretne látni.
Nem kell módosítania. Még azt sem kell tudnia, milyen nyelven íródott. A trükk az, hogy az alkalmazást fekete dobozként kezeljük, és a hitelesítést elé tesszük: egy SAML-t beszélő reverse proxy formájában, mögötte a Notakey SSO-szolgáltatással. Így minden felhasználónak egyetlen telefonos érintéssel jóvá kell hagynia a bejelentkezését, mielőtt akár egyetlen kérés is elérné az alkalmazást.
Hogyan működik
Browser ──▶ reverse proxy (Apache + mod_auth_mellon) ──▶ legacy app
│
└──SAML──▶ Notakey SSO (IdP) ──▶ push ──▶ user's phone
- A böngésző lekér egy védett URL-t. A proxy nem talál SAML-munkamenetet, ezért átirányít a személyazonosság-szolgáltatóhoz, a Notakey készülék beépített SSO-szolgáltatásához.
- A felhasználó megadja a felhasználónevét; a hitelesítési szerver jóváhagyási kérést küld push értesítésben a telefonjára.
- Jóváhagyás után a böngésző aláírt SAML-állítással (assertion) tér vissza. A proxy ellenőrzi az aláírást, és csak ezután engedi tovább a kéréseket az alkalmazáshoz.
Maga az alkalmazás változatlan marad. Ha van saját bejelentkezési képernyője, az is a helyén marad. Ez a megoldás egy kaput állít elé, nem cseréli le azt, ami mögötte van.
Az egyetlen szabály, amelyen a biztonság áll vagy bukik
A proxy csak azt tudja megvédeni, amit nem lehet megkerülni. A régi alkalmazásnak kizárólag a proxyn keresztül szabad elérhetőnek lennie: egy belső tűzfalszabály, vagy konténerizált alkalmazás esetén egy dedikált docker-hálózat a telepítés része, nem opcionális extra. Ha a felhasználók továbbra is közvetlenül elérik az alkalmazás IP-címét, a kétfaktoros hitelesítés csupán dísz.
Mire lesz szüksége
- Egy Notakey Authentication Appliance-re működő beépített SSO-szolgáltatással, valamint a Notakey Authenticatorban regisztrált felhasználókra
- Dockerre egy olyan gépen, amely eléri az alkalmazást
- DNS-bejegyzésre és TLS-tanúsítványokra az új, bejáratként szolgáló gépnévhez
A beállítás öt lépésben
A teljes, másolható-beilleszthető útmutató (az Apache-konfigurációs fájlokkal és minden paranccsal) a blackbox-webapp-2fa-howto repóban található. Nagy vonalakban:
- Generálja le a SAML SP tanúsítványokat és metaadatokat a
mellon_create_metadata.shszkripttel (egyetlen docker-parancs). - Töltse le az IdP-metaadatokat az SSO-szolgáltatásból.
- Igazítsa a minta Apache-konfigurációt a saját környezetéhez: gépnév, backend URL, tanúsítványútvonalak.
- Indítsa el a proxykonténert, és ellenőrizze a naplóit.
- Regisztrálja a proxyt szolgáltatóként (service provider) az SSO
föderációs oldalán, ahol a készülék az SP-metaadatokból kész
ntk cfg setparancsot állítja elő.
Nyissa meg az alkalmazás új címét, hagyja jóvá a push értesítést, és máris az érintetlen, régi alkalmazását látja, immár erős hitelesítés mögött.
A repó egy opcionális változatot is bemutat: a proxy futtatását közvetlenül a készülék csomópontjain, azok meglévő TLS-tanúsítványainak vagy ACME-beállításának újrafelhasználásával, így külön gépre egyáltalán nincs szükség.
Hova illeszkedik ez a minta
Ez a minta mindenre alkalmazható, ami HTTP-n kommunikál. A régi rendszerek többi ajtaját ugyanez a készülék fedi le:
- VPN 2FA RADIUS-szal: VPN-koncentrátorokhoz és mindenhez, ami RADIUS-t beszél
- Windows Credential Provider távoli asztalhoz: Windows-bejelentkezésekhez
- Linux SSH 2FA pam_radius-szal: magukhoz a szerverekhez