VPN-Alternative: Interne Anwendungen mit Azure AD App Proxy von außen zugänglich machen


    Tags: , , ,

    Azure AD App ProxyDer App Proxy ist ein Azure-Dienst, mit dem man für eine lokal betriebene Anwendung einen extern er­reich­baren, öffentlichen HTTPS-Endpunkt in der Cloud veröffentlichen kann. Auf diesem Weg zugäng­liche Anwen­dungen lassen sich in Entra ID inte­grieren, so dass man Conditional Access, Identi­täts­­schutz und SSO für die Zugriff­steuerung nutzen kann.

    Der Service setzt sich zusammen aus dem in dem Cloud-Dienst Anwendungsproxy, dem auf einem lokalen Server installierten Connector und dem Identitätsanbieter Entra ID (neuer Name für Azure Active Directory).

    Als externe Benutzer gelten in diesem Kontext solche, die sich mit ihrem Gerät nicht im Unter­nehmens­netz­werk befinden, die aber über ein so genanntes Schul- oder Organisationskonto in Entra ID verfügen. Dies kann auch ein hybrides, mit einem on-prem AD synchronisiertes Konto sein.

    Sie können sich mit einer Anzeige-URL oder über das Portal myapplication.microsoft.com von PCs oder Macs aus mit ihrem Entra-ID-Account anmelden, um auf die lokal ausgeführten (Web)-Anwendungen zuzugreifen, die für sie freigegeben sind.

    Die Architektur des Dienstes Anwendungsproxy (Quelle: Microsoft)

    Der Anwendungsproxy funktioniert mit Web-Anwendungen, die zur Anmeldung die integrierte Windows-Authentifizierung nutzen (IWA). Außerdem funktioniert der Dienst mit formularbasierten Web-Anwendungen oder Header-basiertem Zugriff sowie mit SAML-Authentifizierung oder mit von ihnen veröffentlichten Web-APIs.

    Der Dienst lässt sich auch mit Programmen nutzen, die hinter einem Remotedesktop-Gate­way gehostet sind, sowie mit Rich-Client-Apps, welche die Microsoft Authentication Library (MSAL) integriert haben.

    Somit ermöglicht der Anwendungsproxy unter anderem Remote-Zugriff und Single Sign-on (SSO) für Remotedesktop, SharePoint-Websites, Tableau, Qlik, OWA und viele Line-of-Business-Applikationen.

    Aufbau und Funktionsweise

    Im Zentrum der Architektur steht der veröffentlichte Endpunkt. Das kann entweder eine externe URL sein, wenn der Benutzer außerhalb des lokalen Netzwerks auf seine Anwendungen zugreifen möchte, oder ein Benutzer-Portal, etwa bei einem internen Zugriff.

    Erreicht ein User einen solchen Endpunkt, dann authentifiziert er sich zunächst via Entra ID und wird dann mit Hilfe des lokal installierten Connectors an die lokale Anwendung weitergeleitet. App Proxy baut dabei im Hintergrund eine Verbindung über eine interne Anwendungs-URL auf, ohne dass man dafür ein VPN benötigt.

    Beim Connector handelt es sich um einen einfachen, auf einem beliebigen Windows-Server innerhalb des Domänen-Netzwerks ausgeführten Agenten, der die Kommunikation zwischen dem Dienst in der Cloud und der lokalen Anwendung verwaltet.

    Dies geschieht ausschließlich über ausgehende Verbindungen, das heißt, der Connector baut von innen heraus über HTTP oder HTTPS einen Tunnel auf.  Die folgende Abbildung zeigt, wie die Entra-ID-Authenti­fizierungs­dienste und der Anwendungs­proxy gemeinsam Single Sign-on (SSO) für lokale Apps bereitstellen können.

    Der Authentifizierungs-Workflow im Zusammenspiel von App Proxy und Connector (Quelle: Microsoft)

    1. Greift der Benutzer über den Endpunkt auf seine Anwendung zu, dann wird er an die Entra-ID-Anmeldeseite weitergeleitet;
    2. Dabei stellt je nach Konfiguration Entra ID Conditional Access sicher, dass der Zugriff nur unter den konfigurierten Bedingungen funktioniert. Bei erfolgreicher Anmeldung sendet Entra ID ein Token an das Client-Gerät des Nutzers;
    3. Der Client übergibt es an den Anwendungsproxy-Dienst. Dieser extrahiert wiederum den User Principal Name und den Security Principal Name aus dem Token;
    4. Anschließend leitet der Anwendungsproxy die Anforderung an den lokalen Connector, der dann die weitere Authentifizierung durchführt, die je nach konfigurierter Authentifizierungs­methode (zum Beispiel SAML) unter Umständen noch erforderlich ist;
    5. Der lokale Connector kontaktiert dazu den internen Endpunkt des Anwendungs-Servers, um die Anforderung an die lokale Anwendung senden zu können;
    6. Danach sendet der Connector die Antwort des Anwendungs-Servers an den Anwendungsproxy und dieser leitet die Antwort an den Nutzer zurück.

    Vorteile des Dienstes

    Selbst wenn Sie sich nur auf die durch den App Proxy durchgeführte Vor-Authentifizierung mittels Entra ID beschränken und auf SSO komplett verzichten, weil es ihre Applikation nicht unterstützt oder der Konfigurations­aufwand zu hoch erscheint, ist ohne gültiges Token kein Datenverkehr durch den Anwendungsproxy-Dienst zur lokalen Umgebung erlaubt. Sie blockieren damit bereits eine große Zahl zielgerichteter Angriffe.

    Darüber hinaus können Sie mit dem Dienst auch solche lokalen Anwendungen mit dem bedingten Zugriff bzw. allgemein der starken Authentifizierung von Entra ID versorgen, die das von Haus aus gar nicht unterstützen würden.

    Da der Dienst keine eingehenden Verbindungen benötigt, ist es auch nicht notwendig, Firewall-Ports für eingehenden Traffic zu öffnen oder andere Komponenten in der DMZ bereitzustellen.

    Da der gesamte Datenverkehr zur Back-End-Anwendung im Proxy-Dienst terminiert wird, ist ihr Backend-Server nie für direkten HTTP-Datenverkehr zugänglich. Somit könnten Sie sogar Anwendungen mit SSL absichern, die SSL gar nicht zulassen. Der Dienst schützt somit auch vor DoS-Angriffen.

    Zusammenfassung

    Der Azure AD Anwendungsproxy erlaubt externen Benutzern den Zugriff auf Anwendungen im Unternehmens­netzwerk. Diese müssen sich dazu mit einem Schul- oder Arbeitskonto an Entra ID anmelden.

    Im Vergleich zu einem VPN bietet es gleich mehrere Vorteile. So profitieren Unternehmen von den starken Authentifizierungs­verfahren des Azure AD und können zusätzlich den Zugriff über Conditional Access absichern.

    Der Connector baut alle Verbindungen von innen zum Anwendungsproxy in der Cloud auf, so dass kein Port in der Firewall geöffnet werden muss. Potenzielle DoS-Angriffe würden sich zudem nur gegen den Cloud-Service richten, so dass die interne Anwendung davon unberührt bliebe.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Thomas Drilling

    Thomas Drilling arbeitet ist seit fast 30 Jahren selb­ständig in der IT-Welt sowohl als Consultant, als auch als Redakteur, Buchautor und Journalist für viele ehe­malige und aktuelle IT-Magazine sowie Blogs.

    Aktuell bestätigt sich Thomas schwerpunktmäßig als IT-Trainer für Cloud-Computing in den Bereichen Microsoft Azure, Amazon Web Services und VMware.

    Thomas ist zertifizierter Microsoft-Trainer für nahe das gesamte Portfolio an Microsoft Azure Trainings. Thomas ist außerdem zerti­fi­zierter Microsoft Azure Solutions Architect Expert sowie VMware Certified Professional und wurde von VMware in den Jahren 2016 bis 2022 mit dem Blogger-Status vExpert ausge­zeichnet.

    Thomas führt aktuell jeden Monat zwei selbstkonziperte 4-tägigen Grund­lagenkurse in Cloud Computing mit Azure durch, die sich inhaltlich bewusst von den Microsft-Kursen abheben und vorzuweise als Bootcamp in eine besonderen Lokation stattfinden. Optional kann aber aber auch remote via Microsoft Teams teilgenommen werden.

    Das aktuelle Trainingsprogramm findet sich unter Azure-Trainings. Weitere Infor­mationen und Anmel­dung über sein Azure-Blog.

    Verwandte Beiträge

    Weitere Links

    1 Kommentar

    Guter Artikel danke. Wie das mit der Performance im Vergleich zu einem traditionellen VPN (FortiClient, Cisco, AlwaysOn etc.)? Ist er App Proxy evtl. minim langsamer, da man über den MS Backbone gehen muss, oder ist das vernachlässigbar? Ich denke nicht an die Authentifizierung sondern nur an das Arbeiten danach.