2026. gada 8. jūlijs

Kā pievienot 2FA mantotai tīmekļa lietotnei, nemainot tās kodu

Novietojiet SAML reverso starpniekserveri jebkuras mantotas tīmekļa lietotnes priekšā un pieprasiet apstiprinājumu tālrunī katrai pieteikšanās reizei.

Gandrīz katrā uzņēmumā ir šāda lietotne: iekšēja tīmekļa sistēma, uz kuras turas puse biznesa procesu, kuras piegādātājs sen pazudis vai kuras pirmkodam neviens neuzdrošinās pieskarties — un kuru revidents tagad prasa aizsargāt ar daudzfaktoru autentifikāciju.

Jums tā nav jāmaina. Jums pat nav jāzina, kādā valodā tā rakstīta. Risinājums ir izturēties pret lietotni kā pret melno kasti un novietot autentifikāciju tās priekšā: reverso starpniekserveri, kas sazinās SAML protokolā un izmanto Notakey SSO servisu, lai ikviena pieteikšanās būtu jāapstiprina ar pieskārienu tālrunī, pirms lietotni sasniedz kaut viens pieprasījums.

Kā tas darbojas

Browser ──▶ reverse proxy (Apache + mod_auth_mellon) ──▶ legacy app

                 └──SAML──▶ Notakey SSO (IdP) ──▶ push ──▶ user's phone
  1. Pārlūkprogramma pieprasa aizsargātu URL. Starpniekserverim vēl nav SAML sesijas, tāpēc tas novirza lietotāju uz identitātes nodrošinātāju (SSO servisu, kas iekļauts Notakey iekārtas komplektā).
  2. Lietotājs ievada savu lietotājvārdu, un autentifikācijas serveris nosūta apstiprinājuma pieprasījumu uz viņa tālruni.
  3. Pēc apstiprinājuma pārlūkprogramma atgriežas ar parakstītu SAML apliecinājumu (assertion). Starpniekserveris pārbauda parakstu un tikai tad ļauj pieprasījumiem sasniegt lietotni.

Pati lietotne netiek mainīta nekad. Ja tai ir savs pieteikšanās ekrāns, tas paliek, kur bijis: šis risinājums uzstāda vārtus priekšā, nevis aizstāj to, kas atrodas aiz tiem.

Galvenais drošības priekšnoteikums

Starpniekserveris spēj aizsargāt tikai to, ko nevar apiet. Mantotajai lietotnei jābūt sasniedzamai vienīgi caur starpniekserveri. Iekšējs ugunsmūra noteikums vai atsevišķs Docker tīkls (ja lietotne darbojas konteinerā) ir obligāta uzstādīšanas daļa, nevis papildiespēja. Ja lietotāji lietotnei joprojām var piekļūt tieši pēc IP adreses, 2FA ir tikai dekorācija.

Kas būs nepieciešams

  • Notakey autentifikācijas iekārta ar ieslēgtu iebūvēto SSO servisu un lietotājiem, kuri jau reģistrēti Notakey Authenticator lietotnē
  • Docker jebkurā resursdatorā, kas var sasniegt lietotni
  • DNS ieraksts un TLS sertifikāti jaunajam ārējam resursdatora nosaukumam

Uzstādīšana piecos soļos

Pilns ceļvedis ar visām komandām un Apache konfigurācijas failiem (visu var kopēt un ielīmēt) atrodams mūsu blackbox-webapp-2fa-howto repozitorijā. Īsumā:

  1. Ģenerējiet SAML SP sertifikātus un metadatus ar mellon_create_metadata.sh (viena Docker komanda).
  2. Iegūstiet IdP metadatus no sava SSO servisa.
  3. Pielāgojiet parauga Apache konfigurāciju: ierakstiet savu resursdatora nosaukumu, backend URL un sertifikātu ceļus.
  4. Palaidiet starpniekservera konteineru un pārbaudiet tā žurnālus.
  5. Reģistrējiet starpniekserveri kā pakalpojuma sniedzēju SSO federācijas lapā. Iekārta pārvērš SP metadatus gatavā ntk cfg set komandā.

Atveriet lietotnes jauno adresi, apstipriniet push paziņojumu — un jūsu priekšā būs tā pati neskartā mantotā lietotne, nu jau aiz stingras autentifikācijas.

Repozitorijā aprakstīts arī cits variants: palaist starpniekserveri tieši uz iekārtas mezgliem, izmantojot to esošos TLS sertifikātus vai ACME konfigurāciju, tad atsevišķs resursdators nav vajadzīgs vispār.

Kur šis risinājums iederas

Šis modelis der jebkurai lietotnei, kas darbojas caur HTTP. Pārējās mantotās infrastruktūras “durvis” tā pati iekārta nosedz ar citiem paņēmieniem:

← Visi raksti

Pirmā pieteikšanās bez paroles — jau šonedēļ

30 minūšu saruna ar inženieri, nevis pārdošanas prezentācija. Kopīgi izplānosim, kā jūsu VPN, SSO vai Windows vidē palaist strādājošu pilotprojektu.