Azure MFA NPS Extension bevezetése hibrid környezetben

A modern IT-környezetekben egyre fontosabb szerepet kap a kétfaktoros hitelesítés (MFA), különösen akkor, ha távoli hozzáférésekről van szó. Jelen cikk célja, hogy bemutassa, miként egészíthető ki a Windows Server környezetben történő RDP (Remote Desktop Protocol) elérés Azure MFA-val, a Network Policy Server (NPS) és annak Azure MFA Extension kiegészítője segítségével. A megoldás ideális hibrid Active Directory környezetben, ahol a felhasználók földi AD-t használnak, de az MFA-t a Microsoft felhőszolgáltatása biztosítja.

Tesztelés alatt használt topológiánk:

Mikor érdemes használni az NPS MFA bővítményt?

  • RDP hozzáférés védelme Windows Server környezetben (mi erre fogjuk használni)
  • Földi „on-premise” alkalmazások vagy eszközök, amelyek nem támogatják az Entrát
  • Hibrid AD környezet, ahol Azure AD Connect is működik
  • VPN vagy Wi-Fi belépés RADIUS-on keresztül (másodlagos felhasználás)

Előfeltételek

  • Működő NPS (RADIUS) szerver Windows Server környezetben, Remote Desktop Gateway (+ NPS szerepkör, mint NPS „kliens”)
  • Hybrid Azure AD csatlakozás (Azure AD Connect)
  • Felhasználók regisztrált MFA-val
  • Azure AD Premium P1 vagy P2 licenc
  • Internetkapcsolat a NPS szerverről

Tűzfal és kommunikáció

Engedélyezni kell a 443-as portot és az alábbi FQDN-eket a központi NPS szerveren:

  • https://adnotifications.windowsazure.com
  • https://login.microsoftonline.com
  • https://login.microsoft.com
  • https://sts.windows.net

 

Mindez a vállalati környezetben általában használt SSL bontás nélkül. Ez ahhoz kell, hogy szabadon tudjon kommunkiálni az NPS bővítmény az Entrában lévő MFA provider-el.

NPS szerepkör telepítése

Szükség lesz egy meglévő NPS (RADIUS) szerver-re, vagy újat is lehet telepíteni.

Telepítés Server Managerből, vagy az alábbi Powershell parancsal:

Install-WindowsFeature NPAS -IncludeManagementTools

.NET 3.5 is szükséges:

NPS Extension (bővítmény) telepítése

Töltsd le az NPS Extension for Azure MFA-t: Microsoft letöltési oldal

Entrából (Azure AD)  szükség lesz a Tenant ID-ra:

Telepítsd a bővítményt:

Telepítés után futtasd a konfiguráló PowerShell scriptet:

cd „C:\Program Files\Microsoft\AzureMfa\Config”

.\AzureMfaNpsExtnConfigSetup.ps1

A script kérni fogja a Tenant ID-t

Override number matching:

Az NPS szerveren létre kell hozni a következő rendszerleíró (registry) bejegyzést:

  • Kulcs neve: OVERRIDE_NUMBER_MATCHING_WITH_OTP

  • Típus: REG_SZ (karakterlánc)

  • Érték: FALSE

Erre azért van szükség, mert az NPS-en futó Microsoft Entra MFA bővítmény nem támogatja a számbeíráson alapuló (number matching) hitelesítést a Microsoft Authenticator alkalmazással. Ezért ezt a funkciót ki kell kapcsolni, hogy a felhasználók csak egyszerű push értesítést kapjanak, amit jóváhagyással tudnak megerősíteni a telefonjukon.

Remote Desktop Gateway, és NPS kliens beállítása

Remote Desktop Gateway  szervert használunk a távoli aztali kapcsolatok menedzselésére. Ez a szerepkör szolgál arra, hogy biztonságosan érhesd el a belső hálózatban lévő szervereket Remote Desktop-al (RDP). Az alábbi parancsal telepíthető az RDP Gateway:

Install-WindowsFeature -Name RD-Gateway -IncludeManagementTools

Természetesen ez egy különálló szerver, ahogy a fenti topológia ábránk is mutatja. Ide is kell az NPS szerepkör, a fent tárgyalt módon ide is telepíteni kell, de itt csak „kliens” módban használjuk.

Remote Desktop Gateway Connection authorization policy beállítása központi tároló használatához (Central Store):

Az RD CAP szabályok határozzák meg, ki és hogyan csatlakozhat a Remote Desktop Gateway szerverhez. Ezeket alapból helyileg tárolja a rendszer, de célszerű központi tárolót (NPS szervert) használni, főleg ha Microsoft Entra MFA-t szeretnél bekapcsolni. Esetünkben a központi szervernek a fentebb tárgyalt NPS szervert kell megadni.

Beállítás lépései:

  1. A RD Gateway szerveren nyisd meg a Server Manager-t.

  2. A menüben válaszd a Tools > Remote Desktop Services > Remote Desktop Gateway Manager menüpontot.

  3. A bal oldalon kattints jobb gombbal a szerver nevére, majd válaszd a Properties menüpontot.

  4. Válaszd az RD CAP Store fület.

  5. Jelöld be a Central server running NPS lehetőséget.

  6. Add meg az NPS szerver nevét vagy IP-címét.

  7. Kattints az Add gombra.

  8. A megjelenő ablakban adj meg egy megosztott titkos kulcsot (shared secret), majd kattints az OK gombra.

    • Fontos: ez a kulcs hoz létre biztonságos kapcsolatot a RADIUS kliensek és szerverek között, legyen hosszú és bonyolult!

  9. Zárd be az ablakot az OK gombra kattintva.

RADIUS timeout beállítása a Remote Desktop Gateway szerveren

A Remote Desktop Gateway szerveren is fel van telepítve az NPS szerepkör de jelen esetben mint „NPS kliens” működik.

Mire jó ez, miért fontos?

Ha az NPS szerveren Microsoft Entra MFA bővítmény van, akkor a hitelesítéshez gyakran kell:

  • értesítést küldeni a felhasználó mobiljára (push notification),

  • megvárni, hogy azt jóváhagyja (ez akár 10–15 másodperc is lehet).

Ha a RADIUS timeout túl rövid, például 5 másodperc, akkor:

  • az RD Gateway megszakítja a kérést még azelőtt, hogy a felhasználó tudna reagálni az MFA értesítésre,

  • ebből következően a bejelentkezés elbukik, függetlenül attól, hogy a felhasználó megnyomta volna az „Engedélyezés” gombot.

Connection Request policy ellenőrzése

Alapértelmezés szerint, ha az RD Gateway-t úgy állítod be, hogy a connection authorization szabályokat (CAP) egy központi tárolóból használja, akkor a szerver automatikusan továbbítja ezeket a kérelmeket az NPS szerver felé. Az NPS szerver – amelyen telepítve van a Microsoft Azure NPS bővítmény – dolgozza fel ezeket a RADIUS hozzáférési kéréseket.

A „TS Gareway Server Group” a „Remote Radius Server Groups” alatt található ide van felvéve a központi NPS szerverünk. A fenti Central Store beállítás miatt automatikusan létrejött. Itt állítottuk a timeoutot is.

NPS szerver beállítása (ide van telepítve az Azure MFA bővítmény is)

Annak a szervernek, amelyen az NPS bővítmény telepítve van, képesnek kell lennie RADIUS üzenetek küldésére és fogadására a Remote Desktop Gateway-en futó NPS „klienssel” való kommunikációhoz. Ehhez megfelelően konfigurálni kell az NPS szolgáltatást azon a szerveren, ahol a bővítmény található – ide is meg kell adni a korábban beállított shared secret értéket a biztonságos kapcsolat érdekében.

Network policy beállítása:

Ne feledd, hogy az a NPS szerver (amelyen az NPS bővítmény telepítve van) szolgál központi szabálytárolóként a connection authorization szabályokhoz (CAP). Ezért ezen az NPS szerveren kell létrehoznod egy CAP szabályt, hogy engedélyezni tudd a jogos kapcsolódási kérelmeket.

A csoport tagjainak lesz engedélye (domain\RemoteUsersMFA):

Ezt be kell pipálni:

Connection request policy létrehozása az NPS szerveren:

„From RD Gateway” és „To RD Gateway” connection request policy-k létrehozása.

Amikor az RD Gateway-t Microsoft Entra MFA-val  véded, és a hitelesítést egy NPS szerver + MFA bővítmény végzi (jelen esetben), akkor az RD Gateway és az NPS szerver RADIUS üzeneteket cserélnek egymással.

Ehhez szükség van szabályokra az NPS szerveren, hogy:

  1. „From RD Gateway” szabály – felismerje és elfogadja a beérkező hitelesítési kérelmeket, amelyeket az RD Gateway küld.

  2. „To RD Gateway” szabály – RD Gateway szerveren futó NPS csak proxyként működik, és a hitelesítési kérelmeket továbbítja a központi, MFA-t végző NPS szerver felé, majd onnan kap választ ezért kell ez a szabály.

Ezek a szabályok teszik lehetővé, hogy:

  • Az RD Gateway és az NPS szerver kommunikálni tudjon,

  • A többfaktoros hitelesítés zökkenőmentesen működjön.

  • A rendszer felismerje, hogy honnan jön a kérés, és hová kell választ küldeni.

From RD Gateway szabály:

A Client Friendly feltételnél a Remote Desktop Gateway szerverünk nevét kell megadni.

To RD Gateway szabály:

NAS port type: Virtual (VPN)

Itt pedig továbbítjuk (forward) a választ vissza a Remote Desktop Gateway felé (Remote radius Serverként fel van véve a remote desktop gateway szerverünk):

Tesztelés RDP-vel

Remote Desktop Gateway-en keresztül RDP-zünk az alábbi módon:

Egy olyan felhasználóval fogjuk kipróbálni a távoli asztali kapcsolatot (RDP), aki tagja a korábban említett RemoteUsersMFA Active Directory csoportnak, rendelkezik a szükséges engedélyekkel, és szinkronizálva van az Entra ID felé. A felhasználónál engedélyezve van a többtényezős hitelesítés (MFA), és a Microsoft Authenticator alkalmazás megfelelően be van állítva a telefonján. Plusz a távoli számítógépen is van Remote Desktop csatlakozáshoz jogosultásga.

A távoli asztali kapcsolat kezdeményezésekor a rendszer néhány másodpercig várakozik, amíg a felhasználó jóvá nem hagyja a bejelentkezést a Microsoft Authenticator alkalmazásban a telefonján.

Közben a telefonon megjelenik a bejelentkezési értesítés, amit jóváhagyunk a Microsoft Authenticator alkalmazásban.

A jóváhagyás után sikeresen bejutunk a szerverre, immár egy biztonságos, kétfaktoros hitelesítéssel védett kapcsolaton keresztül.

Összefoglalás

Az Azure MFA NPS Extension kiváló választás, ha szeretnéd az RDP hozzáférést megerősíteni kétfaktoros hitelesítéssel egy meglévő, földi Windows Server környezetben. Mivel nincs szükség külön on-premises MFA szerverre, a megoldás költséghatékony és egyszerűbben menedzselhető, miközben jelentősen növeli a biztonságot.