
Natalia - stock.adobe.com
Wie Sie Azure Functions mithilfe von Entra ID absichern
Die Absicherung von Azure Functions mit Entra ID schützt sensible Daten durch RBAC, MFA und SSO. Authentifizierungsabläufe sorgen für Sicherheit und eine einfache Nutzung.
Die Sicherung von Azure Functions ist für den Schutz sensibler Daten und die Aufrechterhaltung der Sicherheit und Ausfallsicherheit der Anwendung von größter Bedeutung.
Unternehmen können potenzielle Risiken durch die Implementierung von Sicherheitsmaßnahmen wie rollenbasierter Zugriffskontrolle (RBAC), Verschlüsselung und regelmäßigen Sicherheitsbewertungen mindern. Protokollierungs- und Überwachungsmechanismen liefern wertvolle Einblicke in Sicherheitsvorfälle oder mögliche Bedrohungen und ermöglichen so proaktive Reaktionen. Die Auswahl des geeigneten Authentifizierungsablaufs (Authentication Flow) für Ihre Anwendung bietet zusätzlichen Schutz.
Wenn Sie diese Best Practices befolgen, können Sie mit Microsoft Entra ID eine sichere, effiziente und benutzerfreundliche Umgebung für Azure Functions schaffen.
Warum mit Entra ID sichern?
Entra ID, früher bekannt als Azure Active Directory, ist für die zentralisierte Identitätsverwaltung unerlässlich. Es bietet ein System mit integrierten Microsoft-Diensten, das den Benutzerzugriff und die Verwaltung von Anmeldeinformationen vereinfacht. Dieses zentralisierte System ermöglicht es Administratoren, den Zugriff von einem einzigen Punkt aus zu steuern und zu überwachen. Entra ID unterstützt viele Authentifizierungsprotokolle und Sicherheitsstandards und gewährleistet so eine sichere und effiziente Verwaltung von Benutzeridentitäten.
Eine hilfreiche Funktion ist die RBAC von Entra ID. Sie weist Benutzern bestimmte Berechtigungen zu und stellt so sicher, dass nur autorisierte Personen auf sensible Funktionen und Daten zugreifen können. Durch die Verwendung von RBAC können Unternehmen das Prinzip der geringsten Berechtigungen (POLP) einhalten und das Risiko von Sicherheitsverletzungen verringern. Die Integration von Entra ID mit anderen Azure-Diensten optimiert Sicherheitsrichtlinien und erleichtert konsistente Sicherheitsmaßnahmen für alle Azure-Ressourcen.
Entra ID bietet außerdem erweiterte Überwachungs- und Protokollierungsfunktionen zur Verbesserung der Sicherheit. Es unterstützt Single Sign-On (SSO) und Multifaktor-Authentifizierung (MFA), während Audits und Protokolle detaillierte Aufzeichnungen über Zugriffe und Aktivitäten führen. Diese Aufzeichnungen helfen Unternehmen, verdächtiges Verhalten schnell zu erkennen und darauf zu reagieren. SSO vereinfacht die Benutzererfahrung, indem es den Zugriff auf mehrere Anwendungen mit einem einzigen Satz von Anmeldedaten ermöglicht. MFA sorgt für zusätzliche Sicherheit, indem es zusätzliche Verifizierungsschritte erfordert. Diese Funktionen tragen dazu bei, die Sicherheit, Compliance und Benutzerfreundlichkeit in Azure Functions zu verbessern.
Wählen Sie den richtigen Authentifizierungsablauf
Der richtige Authentifizierungsablauf ist bei der Integration von Entra ID in Azure Functions von entscheidender Bedeutung. Entra ID bietet verschiedene Authentifizierungsabläufe für unterschiedliche Arten von Anwendungen und Szenarien. Wenn Sie diese Abläufe verstehen, können Sie die beste Authentifizierungsstrategie für Ihre Anwendung implementieren.
Authentifizierungsabläufe von Entra ID
Authentifizierungsabläufe legen fest, wie Benutzer ihre Identität nachweisen, um auf Anwendungen und Ressourcen zuzugreifen. Diese Abläufe beschreiben die Schritte, die für den sicheren Austausch von Informationen zwischen dem Benutzer, der Anwendung und Entra ID erforderlich sind. Dazu gehören das Einholen von Autorisierungscodes, deren Austausch gegen Token und deren Validierung, um die Identität der Benutzer sicherzustellen.
Verschiedene Anwendungen erfordern unterschiedliche Abläufe, von Single-Page-Apps bis hin zu Mobil- und Desktop-Anwendungen, die jeweils unterschiedliche Sicherheitsaspekte und Kompromisse mit sich bringen. Die Authentifizierungsabläufe in Entra ID umfassen Folgendes:
- Authorization Code Flow: Dieser Ablauf eignet sich für Web- und native Anwendungen, die eine sichere, serverseitige Token-Verarbeitung erfordern. Er umfasst einen zweistufigen Prozess, bei dem die Anwendung einen Autorisierungscode anfordert und diesen gegen ein Zugriffs-Token eintauscht. Dieser Ablauf ist sehr sicher, da das Token niemals dem Benutzeragenten zugänglich gemacht wird, was ihn ideal für Anwendungen mit hohen Sicherheitsanforderungen macht.
- Implicit Flow: Dieser Ablauf wird in der Regel von Single-Page-Anwendungen verwendet, die in einem Browser ausgeführt werden. Er ist einfacher, aber weniger sicher als der Authorization Code Flow. Er ermöglicht es der Anwendung, ein Zugriffs-Token von Entra ID ohne einen zwischengeschalteten Autorisierungscode zu erhalten. Aufgrund der direkten Offenlegung des Tokens wird er nur für Anwendungen empfohlen, bei denen ein kurzlebiges Token akzeptabel ist und sicher gehandhabt werden kann.
- Client Credentials Flow: Dieser Ablauf ist für die Server-zu-Server-Kommunikation ohne Benutzerkontext vorgesehen. Die Anwendung authentifiziert sich selbst mit ihren Anmeldeinformationen, wie zum Beispiel einer Client-ID und einem Geheimnis, um ein Zugriffs-Token zu erhalten. Er ist ideal für Hintergrunddienste, Daemons und APIs, die Zugriff auf Ressourcen benötigen oder Operationen unabhängig ausführen.
- Device Code Flow: Dieser Codeablauf ermöglicht es Benutzern, sich über ein sekundäres Gerät zu authentifizieren. Die Anwendung präsentiert dem Benutzer einen Code, der sich dann auf einem separaten Gerät authentifiziert, um die Anfrage zu genehmigen. Er ist für Geräte mit eingeschränkten Eingabemöglichkeiten wie Smart-TVs oder IoT-Geräte konzipiert. Dieser Flow bietet Benutzern eine bequeme und sichere Möglichkeit, sich auf Geräten mit eingeschränkter Benutzeroberfläche zu authentifizieren.
- Resource Owner Password Credentials Flow (ROPC): Der ROPC-Flow gilt als unsicher, da er Benutzernamen und Passwörter direkt verarbeitet und wichtige Sicherheitsfunktionen wie MFA nicht unterstützt. Microsoft rät, ihn nur in Ausnahmefällen einzusetzen, wenn andere Authentifizierungsabläufe technisch nicht möglich sind.
Faktoren, die bei der Auswahl eines Ablaufs zu berücksichtigen sind
Bei der Auswahl eines Authentifizierungsablaufs ist es entscheidend, die Sicherheit zu berücksichtigen. Anwendungen, die mit sensiblen Daten umgehen oder hohe Sicherheit erfordern, sollten Abläufe verwenden, die die Gefährdung von Tokens minimieren, wie beispielweise den Authorization Code Flow. In Szenarien mit geringeren Sicherheitsanforderungen können der Implicit Flow oder der Device Code Flow gewählt werden.
Der ausgewählte Authentifizierungsablauf sollte Benutzern eine nahtlose und intuitive Erfahrung bieten. Der Device Code Flow ermöglicht es Benutzern beispielsweise, sich auf Geräten mit eingeschränkten Eingabemöglichkeiten zu authentifizieren. Dies verbessert die Benutzerfreundlichkeit, ohne die Sicherheit zu beeinträchtigen. Der Authorization Code Flow gewährleistet eine reibungslose Erfahrung für Benutzer von Web- und nativen Apps, indem er Tokens sicher im Hintergrund verarbeitet.
Für Webanwendungen und Single-Page-Apps ist der Authorization Code Flow mit PKCE der aktuelle Standard. Er verhindert die Token-Exposition im Browser und bietet zusätzliche Sicherheit bei öffentlichen Clients.
Mittlerweile wird der Implicit Flow von Microsoft als unsicher angesehen und nicht mehr empfohlen. Für Single-Page-Apps wird stattdessen der Authorization Code Flow genutzt.
Wenn Sie diese Faktoren berücksichtigen und ihre Funktionen verstehen, können Sie den Entra ID-Ablauf auswählen, der ein Gleichgewicht zwischen Sicherheit, Benutzererfahrung und Anwendungsanforderungen herstellt. Dadurch wird sichergestellt, dass die Azure-Functions-Umgebung sowohl sicher als auch benutzerfreundlich ist.
So sichern Sie Azure Functions mit Entra ID
Um Azure Functions mit Entra ID zu schützen, führen Sie die folgenden Schritte aus:
1. Registrieren Sie die Azure Functions-App in Entra ID: Dazu müssen Sie die Azure-Functions-App im Entra ID-Authentifizierungssystem einrichten, um eine sichere Zugriffskontrolle zu ermöglichen.
2. Konfigurieren Sie die Authentifizierung in Azure Functions: Richten Sie die erforderlichen Authentifizierungseinstellungen in der Azure-Functions-App ein, um sicherzustellen, dass nur autorisierte Benutzer oder Anwendungen auf die Funktion zugreifen können.
3. Autorisieren Sie den Zugriff: Definieren Sie die spezifischen Zugriffskontrollen und Berechtigungen der Function und legen Sie fest, wer sie aufrufen darf und welche Aktionen durchgeführt werden dürfen.
4. Implementieren Sie die Authentifizierung in Client-Anwendungen: Stellen Sie sicher, dass alle Client-Anwendungen, die die Function aufrufen müssen, korrekt konfiguriert sind, um den Authentifizierungsprozess zu verarbeiten.
Um Azure Functions zu sichern, navigieren Sie zum Azure-Portal und klicken Sie auf Azure Function. Wählen Sie im Abschnitt Einstellungen die Option Authentifizierung und dann Identitätsanbieter hinzufügen. Wählen Sie einen Anbieter aus der Dropdown-Liste aus, beispielsweise Microsoft.

Im nächsten Schritt legen Sie fest, ob die Azure-Functions-App für interne oder externe Benutzer verfügbar ist. Wählen Sie für dieses Beispiel Workforce-Konfiguration aus, die nur den aktuellen Entra-ID-Mandanten unterstützt.

Wählen Sie als Nächstes eine vorhandene App-Registrierung aus oder erstellen Sie eine neue. Registrierungseinträge, zum Beispiel eine App oder ein Konto, steuern die gesamte Sicherheit. Bei Azure Functions ist dies nicht anders.

Legen Sie die zusätzlichen Überprüfungen und App-Dienst-Authentifizierungseinstellungen für Azure Functions fest.

Weisen Sie als Nächstes die erforderlichen Berechtigungen zu. Wählen Sie Weiter: Berechtigungen aus, wo Sie dann beliebige Microsoft-Graph-Berechtigungen hinzufügen können. Standardmäßig ist die zugewiesene Berechtigung User.Read. Sie können weitere Berechtigungen hinzufügen, beispielsweise beim manuellen Erstellen einer App-Registrierung. Für eine Functions-App, die Benutzer in Entra ID erstellt, müssen Sie beispielsweise weitere Berechtigungen zuweisen, wie die folgende:

Nachdem Sie die erforderlichen Berechtigungen hinzugefügt haben, klicken Sie auf die Schaltfläche Hinzufügen, um die neue Konfiguration zu speichern.
Um die Authentifizierung zu testen, navigieren Sie zur Azure-Functions-App. Klicken Sie auf die jeweilige Funktion, wählen Sie Function-URL abrufen und starten Sie sie in einem Browser-Fenster.

Wenn Sie die URL aufrufen, sollten Sie sofort zum Entra-ID-Einwilligungsfenster weitergeleitet werden, sofern Sie angemeldet sind. Ist dies nicht der Fall, werden Sie aufgefordert, sich anzumelden und Ihre Einwilligung zu erteilen.

Der Vorteil dieser Art des Schutzes der Azure-Functions-App besteht darin, dass alle Sicherheitskontrollen innerhalb von Entra ID dem Schutz des Kontos dienen. Funktionen wie MFA und RBAC sorgen gemeinsam für Sicherheit.
Obwohl diese Option sicher ist und gut funktioniert, sollten Sie vorsichtig mit dem zulässigen Ansatz sein, der darauf basiert, wie andere Anwendungen oder Organisationen die Azure Functions-App nutzen. Beispielsweise kann die Durchsetzung von MFA fehlschlagen, wenn die nutzende Anwendung diese Anforderung nicht erfüllen kann.
Sicherung von Azure Functions mit Entra ID
Die Sicherung von Azure Functions schützt sensible Daten und gewährleistet die Sicherheit sowie Ausfallsicherheit von Anwendungen. Microsoft Entra ID, ehemals Azure Active Directory, bietet dafür zentrale Identitätsverwaltung mit RBAC, SSO und MFA. Verschiedene Authentifizierungsabläufe wie Authorization Code, Implicite, Client Credentials und Device Code Flow ermöglichen je nach Anwendung sicheren Zugriff. Ergänzend sorgen Protokollierung, Überwachung und die Integration mit anderen Azure-Diensten für umfassende Sicherheit und eine benutzerfreundliche Umgebung.