Azure MFA und Radius/NPS

Microsoft hat mittlerweile "MFA" zum Standard für alle Tenants erhoben um die Sicherheit von Zugangsdaten zu erhöhen und Passwordphishing deutlich zu erschweren. Alle Applikationen, an denen eine Anmeldung über ein AzureAD-Token gesteuert wird, können davon profitieren und wenn Sie zusätzlich noch Conditional Access (Lizenz in Azure AD P1, EMS E3, Microsoft 365 E3, u.a.) haben, können Sie noch umfangreichere Regeln zur Anmeldung implementieren. Sogar lokale HTTP-Dienste können Sie z.B. hinter einem Azure AD Application Proxy absichern.

Mit der "NPS Extension for Azure MFA" können Sie aber auch einen lokalen NPS/Radius-Server derart erweitern, dass Sie Azure-MFA bei der Anmeldung nutzen können. Damit lassen sich dann viele andere lokale Dienste absichern, wenn diese eine Authentifizierung mit Radius unterstützen.

Radius/NPS/AAA?

Es gibt vermutlich mehr Administratoren, die noch nie etwas von Radius bzw. der Microsoft Bezeichnung "Network Policy Server (NPS)" gehört haben als Administratoren, die damit schon arbeiten. Meist kennen die Netzwerker eher diesen Service, da er für die Authentifizierung an Netzwerk-Switches oder insbesondere WLAN per 802.1x genutzt wird. Diese Netzwerkgeräte haben ja keine lokale Benutzerdatenbank mit Kennworten, sondern vertrauen auf einen "Kontoserver", den sie fragen und sowohl die Anmeldung (A=Authentication) aus auch die anzuwendenden Richtlinien (A = Authorization) erhalten und Abrechnungsinformationen (A = Accounting) bereitstellen können. Daher finden Sie bei den Herstellern von VPN-Gateways, WLAN-Access-Systemen und früheren "DialIn-Gateways" diese Einstellungen auch unter dem Begriff "AAA". Sie können davon ausgehen, dass quasi alle privaten Internetzugänge diese Technik nutzen, bei denen sich ein DSL-Router beim Provider "anmeldet".

Die meisten Radius-Server sind aber nicht alleinstehend, sondern können auch als Proxy abhängig von den übermittelten Daten fungieren. Das können Sie mit einem DSL-Anschluss gut sehen, wenn Sie z.B. einen T-DSL-Anschluss haben aber im DSL-Router dann doch die Zugangsdaten von 1&1 oder anderen Providern eintragen, die ihre Leitung bei der Telekom einkaufen. Im Hintergrund bekommt der zur Leitung konfigurierte AAA-Server die Daten aber erkennt anhand des Benutzernamens, dass es nicht "seine User" sind und leitet die Anfrage entsprechend weiter.

Ähnlich funktioniert es auch beim WLAN-Netzwerk "eduroam" der Universitäten. Jede Universität hat für sich einen AAA-Service aber "vertraut" auch den AAA-Diensten der anderen Universitäten. So können sich Wissenschaftler und Studenten mit einem eduroam-Konto flexibel anmelden.

Radius ist also ein flexibler Authentifizierungsdienste im Hintergrund, der von unterschiedlichsten kompatiblen Clients genutzt werden kann. Leider kann ein Windows Client nicht Radius zur Anmeldung am Windows Desktop nutzen. Hier muss es schon eine "Domäne" mit LDAP und Kerberos sein. Aber Radius nicht nicht auf Netzwerkgeräte beschränkt, sondern es könnten auch andere Dienste wie z.B. Proxy-Server, Webserver etc. die Zugangsdaten des Anwenders abfragen und damit eine Radius-Prüfung durchführen, anstatt eine LDAP-Anmeldung o.ä.. Heute nehmen diese Verfahren natürlich immer weiter ab, da Clients einfacherer uns sicherer mit Kerberos oder OAUTH-Tokens arbeiten sollten. Diese neuen Optionen gehen natürlich nur, wenn es schon eine Netzwerkverbindung gibt. Insofern wird Radius speziell in Verbindung mit 802.1x oder Systemen ohne Kerberos/OAUTH-Support noch länger Bestand haben.

MFA mit Radius

Interessant ist nun, dass die meisten Radius-Server auch Schnittstellen für 3rd Party-Erweiterungen haben, um z.B. weitere Authentifizierungsverfahren einbinden. Hier kommt dann Azure MFA ins Spiel, denn es gibt eine "NPS-Extension for Azure MFA", die den Windows Radius Server (NPS) um die Option erweitert eine MFA-Authentifizierung zu fordern.

NPS Extension for Azure MFA
https://www.microsoft.com/en-us/download/details.aspx?id=54688

Das geht nun natürlich nicht wie bei RSA mit einem zweiten Dialog zur Eingabe, sondern sinnvoll nutzbar ist dies eigentlich nur mit der Authenticator App. Der Anwender autorisiert sich beim Service mit seine, Benutzername und Kennwort und dann triggert die Extension über Azure eine Bestätigung durch die Authenticator App des Anwenders, der sich gerade anmeldet.

Der NPS-Service ist in meinem Beispiel mit dem lokalen AD verbunden, damit sich die Anwender zuerst einmal gegen das lokale Verzeichnis authentifizieren. Der Service selbst ist als Radius-Client mit dem NPS konfiguriert.

Sie sehen hier aber auch, dass die MFA-Rückfrage nicht beim eigentlichen Client landet. Eine VPN-Software ein Webformular oder eine sonstige Anmeldung kennt auf dem Client ja in der Regel nur die Felder "Username" und "Kennwort", welche durch Radius gegen die primäre Anmeldung geprüft werden. Wenn nun Radius einen zweiten Faktor anfordern will, dann kann er das nicht über das Radius-Protokoll machen. Der Service erwartet ja nur ein "Ja" oder "Nein" vom Radius-Server und ggfls. einige Parameter aber eben keinen zweiten Authentifizierungsdialog.

Der Radius-Server kann über die NPS Extension nur per HTTPS mit Azure sprechen, dass dieser Service eine Push-Meldung an den Authenticator sendet, so dass der Anwender z.B. auf einem Smartphone dann die Anfrage bestätigt. Wenn dies erfolgt, meldet Azure MFA dann sein OK zurück zum Radius-Server, der dann aus dem OK der primären Anmeldung und dem OK von Azure MFA dem Service eine Antwort liefert.

Nach meinem Wissen ist eine Anmeldung per FIDO-Key, OneTime-Kennwort o.ä. mit mit Azure MFA hier nicht möglich, sondern nur die Bestätigung per App

Wer kann Radius nutzen?

Der klassische Fall für Radius/NPS ist natürlich der Remote Zugang zu einem Netzwerk per VPN oder 802.1x. Insofern ist es keine Überraschung, dass diese Geräte und Softwareklasse quasi von Hause aus schon immer einen Radius-Client enthalten hat. Entsprechend gibt es auch von Microsoft eine Beschreibung für den Windows VPN-Server-Zugang.

Es kann aber jeglicher Client sein, der RADIUS/NPS unterstützt. Microsoft beschreibt z.B. auch den Einsatz mit einem RDP-Gateway.

Für den "Service" ist es einfach immer eine Authentifizierung über Radius. Wenn Sie mal herumschauen, dann gibt es auch diverse AddOns mit denen Sie andere Dienste dazu bringen können, eine Anmeldung per Radius zu prüfen und damit mi Azure auch MFA-tauglich machen zu können. Suchen Sie einfach nach entsprechenden Radius-Client für ihre Produkt. Ich habe Module z.B. gefunden für

Einschätzung

Die Anmeldung allein mit Benutzername und Kennwort ist heute nicht mehr sicher genug, Daher hat Microsoft in der Cloud alle neueren Tenants per Default mit MFA eingerichtet und für die älteren Tenants kann das ein Admin kostenfrei aktivieren. Wer es etwas "granularer" einstellen möchte, kann dies über die Azure AD P1-Lizenz und das darin enthaltene "Conditional Access" noch feiner abstufen. Über die Integration der "NPS Extension" in einen lokal vorhandenen NPS-Server können wir aber sehr einfach auch MFA für die beiden wesentlichen lokalen Zugänge, VPN und RDP, ohne weitere lokalen Server, Software oder Geräte zu konfigurieren.

Mit der NPS-Extension ist es sehr einfach, lokale VPN/RDS-Anmeldungen mit MFA zusätzlich abzusichern und Sie sollten prüfen, ob sie solche lokalen Zugänge weiter ohne MFA anbieten wollen.

Weitere Links