Integracje · Starsze aplikacje webowe
Uwierzytelnianie dwuskładnikowe dla starszych aplikacji webowych przez proxy SAML
Dla wewnętrznej aplikacji webowej, na której opiera się pół firmy, której dostawca dawno zniknął albo której kodu nikt nie odważy się dotknąć, a którą audytor chce teraz widzieć za uwierzytelnianiem wieloskładnikowym. Odwrotne proxy przed nią, wsparte usługą Notakey SSO, dodaje zatwierdzanie na telefonie bez zmiany ani jednej linii aplikacji.
Jak przebiega połączenie
Aplikacja jako czarna skrzynka
Odwrotne proxy Apache z mod_auth_mellon stoi przed aplikacją i komunikuje się przez SAML z usługą SSO dostarczaną z appliance Notakey. Gdy przeglądarka żąda chronionego adresu URL bez sesji SAML, proxy przekierowuje ją do dostawcy tożsamości. Użytkownik podaje nazwę użytkownika, serwer uwierzytelniania wysyła na jego telefon prośbę o zatwierdzenie, a po zatwierdzeniu przeglądarka wraca z podpisaną asercją SAML. Proxy weryfikuje podpis i dopiero wtedy przepuszcza żądania.
Sama aplikacja się nie zmienia. Jeśli ma własny ekran logowania, pozostaje on bez zmian; rozwiązanie dodaje bramkę przed aplikacją, zamiast zastępować to, co za nią stoi. Nie trzeba nawet wiedzieć, w jakim języku aplikację napisano.
Proxy działa jako kontener Docker na dowolnym hoście, który ma dostęp do aplikacji, lub bezpośrednio na węzłach appliance, korzystając z ich certyfikatów TLS lub konfiguracji ACME, więc osobny host nie jest potrzebny.
Co warto wiedzieć przed rozpoczęciem
- Aplikacja musi być niedostępna inaczej niż przez proxy. Wewnętrzna reguła firewalla lub, jeśli aplikacja działa w kontenerze, osobna sieć docker jest częścią konfiguracji, a nie opcjonalnym dodatkiem. Jeśli użytkownicy nadal mogą łączyć się bezpośrednio z adresem IP aplikacji, 2FA jest tylko ozdobą.
- Potrzebne są: Notakey Authentication Appliance z uruchomioną dołączoną usługą SSO, użytkownicy zarejestrowani w Notakey Authenticator, Docker na hoście z dostępem do aplikacji oraz DNS i certyfikaty TLS dla nowej nazwy hosta.
- To wzorzec dla wszystkiego, co posługuje się HTTP. Sieci VPN, logowania do Windows i serwery Linux korzystają zamiast tego z integracji opartych na RADIUS i dostawcy poświadczeń.
- Bramka stoi przed aplikacją. Jeśli aplikacja zachowuje własny ekran logowania, użytkownicy nadal zobaczą go po zatwierdzeniu na telefonie.
Od zera do pierwszego zatwierdzenia
- 01
Wygenerowanie certyfikatów SP i pobranie metadanych IdP
Należy utworzyć certyfikaty i metadane dostawcy usług SAML za pomocą mellon_create_metadata.sh (jedno polecenie docker), a następnie pobrać metadane dostawcy tożsamości z usługi SSO.
- 02
Dostosowanie konfiguracji Apache i uruchomienie proxy
W przykładowej konfiguracji z repozytorium blackbox-webapp-2fa-howto należy ustawić nazwę hosta, pod którą aplikacja będzie dostępna, adres URL zaplecza i ścieżki certyfikatów, uruchomić kontener i sprawdzić jego logi.
- 03
Rejestracja proxy na stronie federacji SSO i test
Proxy należy zarejestrować jako dostawcę usług; appliance przekształca metadane SP w gotowe polecenie ntk cfg set. Po wejściu na nowy adres aplikacji i zatwierdzeniu powiadomienia push widać nietkniętą aplikację, chronioną teraz silnym uwierzytelnianiem.
Najczęściej zadawane pytania
- Czy trzeba zmieniać samą aplikację?
- Nie. Odwrotne proxy Apache z mod_auth_mellon komunikuje się przez SAML z usługą Notakey SSO i kontroluje każde żądanie. Aplikacja i jej własny ekran logowania pozostają dokładnie takie, jakie były.
- Czego potrzebuję, zanim zacznę?
- Potrzebne są: Notakey Authentication Appliance z uruchomioną dołączoną usługą SSO, użytkownicy zarejestrowani w Notakey Authenticator, Docker na hoście z dostępem do aplikacji oraz DNS i certyfikaty TLS dla nowej nazwy hosta.
- Czy użytkownicy mogą ominąć proxy?
- Tylko jeśli aplikacja nadal jest dostępna bezpośrednio. Należy to zablokować regułą wewnętrznego firewalla albo, jeśli aplikacja działa w kontenerze, osobną siecią Docker; to część konfiguracji, a nie opcjonalny dodatek.
Przewodniki i dokumentacja
- Jak dodać 2FA do starej aplikacji webowej – bez ingerencji w kod
- blackbox-webapp-2fa-howto w serwisie GitHub
Powiązane produkty