Zum Inhalt springen

Logic Apps-Guide: Überwachen Sie ablaufende Azure-App-Registrierungsgeheimnisse

Artikel vom 14. Dezember 2023

In der heutigen Cloud-Welt sind Sicherheit und Zugriffsverwaltung von größter Bedeutung. Ein Bestandteil der Sicherheit sind die geheimen Schlüssel, die bei Microsoft Entra ID-App-Registrierungen verwendet werden. Diese Geheimnisse haben eine begrenzte Gültigkeitsdauer und müssen vor Ablauf erneuert werden, um Unterbrechungen beim Zugriff zu vermeiden. In diesem Artikel stellen wir Ihnen einen praktischen Ansatz vor, mit dem Sie mithilfe von Azure Logic Apps eine automatische Benachrichtigung erhalten, bevor Ihre Geheimnisse ablaufen.

Ablaufende Geheimschlüssel sind aus Sicherheits- und Betriebsgründen ein Problem, insbesondere in einer Cloud-Computing-Umgebung wie Microsoft Azure. Insgesamt können ablaufende Geheimschlüssel zu erheblichen Sicherheitsrisiken, Betriebsstörungen und einem hohen Verwaltungsaufwand führen. Daher ist es wichtig, einen proaktiven Ansatz für die Verwaltung und Überwachung dieser Schlüssel zu verfolgen, um Probleme zu vermeiden und eine zuverlässige und sichere Umgebung zu schaffen.

Dies kann beispielsweise durch eine automatische Benachrichtigung vor Ablauf eines Geheimschlüssels umgesetzt werden.

 

Schlagwörter
Security & Compliance
Hyperscalers
Microsoft
Teilen

5 Gründe, warum ablaufende Geheimnisse problematisch sein können

1. Sicherheitslücken

Geheimnisse sind vertrauliche Informationen, die zum Schutz vor unbefugtem Zugriff auf Ressourcen dienen. Sie sind vergleichbar mit Passwörtern, Schlüsseln und anderen Zugangsdaten. Ein Geheimnis sollte niemals in einer ungesicherten Datei oder einem Code-Schnipsel erscheinen, da dies das Risiko eines unbefugten Zugriffs auf sensible Daten durch Dritte drastisch erhöht. Aus diesem Grund ist es wichtig, Geheimnisse regelmäßig zu erneuern und den Zugriff darauf zu kontrollieren.

2. Zugriffsverlust

Eine Authentifizierung mit einem abgelaufenen Geheimnis ist nicht möglich. Dies kann dazu führen, dass Anwendungen oder Benutzer nicht mehr auf die für sie bestimmten Ressourcen zugreifen können. Im schlimmsten Fall kann dies zu einem Totalausfall einer geschäftskritischen Anwendung führen.

3. Mangelnde Transparenz

Transparenz über die verwendeten Geheimnisse, ihre Verwendung und ihr Ablaufdatum ist für einen stabilen und reibungslosen Geschäftsbetrieb unerlässlich. Ohne diese Transparenz können Anwendungen ausfallen oder Daten gestohlen werden.

4. Wartungsaufwand

Die manuelle Verwaltung von Geheimnissen erfordert wiederkehrende Überprüfungen und eine permanente Dokumentation. Dies ist zeitaufwändig und mindert die Effizienz des IT-Teams, das die gleiche Zeit für andere wichtige Aufgaben nutzen könnte.

5. Regulatorische Anforderungen

Je nach Branche und geografischem Standort unterliegen Unternehmen verschiedenen regulatorischen Anforderungen hinsichtlich der Sicherheit und Verwaltung von Zugangsdaten. Die Nichteinhaltung dieser Vorschriften kann rechtliche Konsequenzen haben.

Video Tutorial: Überwachen Sie ablaufende Azure-App-Registrierungsgeheimnisse

Step-by-step guide

Erstellen der Ressourcengruppe

Zunächst wird eine neue Ressourcengruppe erstellt. Damit können Sie die verwendeten Ressourcen an einem zentralen Ort erstellen und verwalten:

  1. Melden Sie sich beim Azure-Portal an und navigieren Sie zur Startseite.
  2. Suchen Sie in der Suchleiste nach „Ressourcengruppen” und klicken Sie auf den dort aufgeführten Dienst „Ressourcengruppen”.
  3. Klicken Sie auf der linken Seite auf „Erstellen”, um eine neue Ressourcengruppe zu erstellen.
  4. Geben Sie die Projektdetails an:
  5. Abonnement: Wählen Sie das gewünschte Abonnement aus der Dropdown-Liste aus.
  6. Ressourcengruppe: Geben Sie einen aussagekräftigen Namen für Ihre Ressourcengruppe ein, zum Beispiel appsecret-check-rg.
  7. Region: Wählen Sie die Region aus, in der die Ressourcen bereitgestellt werden sollen.
  8. Klicken Sie auf „Überprüfen + erstellen“, um die eingegebenen Informationen überprüfen zu lassen.

Überprüfen der erforderlichen Voraussetzungen

Damit bei Ablauf eines Geheimnisses eine Benachrichtigung per E-Mail versendet werden kann, muss der empfangende Benutzer aktiviert sein und die hinterlegte E-Mail-Adresse muss verfügbar sein. Dies kann beispielsweise mit Entra ID überprüft werden:

  1. Öffnen Sie den Microsoft Entra ID-Dienst im Azure-Portal.
  2. Wechseln Sie unter „Verwalten” zum Menü „Benutzer”.
  3. Wählen Sie den gewünschten Benutzer aus und klicken Sie dann auf „Eigenschaften bearbeiten”, um weitere Informationen zu erhalten.
  4. Überprüfen Sie in diesem Menü die Parameter „Kontostatus“ und „E-Mail-Adresse“. Der Kontostatus sollte auf „Aktiv“ gesetzt sein und eine gültige E-Mail-Adresse sollte hinterlegt sein.

Bereitstellung der Vorlage

Verwenden Sie die Suchleiste im Azure-Portal, um nach „Aus einer benutzerdefinierten Vorlage bereitstellen“ zu suchen, und öffnen Sie den gefundenen Dienst.

Wählen Sie die Option „Benutzerdefinierte Vorlage bereitstellen“, was bedeutet, dass die bereits erstellte Vorlage nur importiert und an Ihre eigenen Daten angepasst werden muss. Dies erleichtert die Bereitstellung erheblich.

Fügen Sie den gesamten Inhalt der JSON-Vorlage in den Vorlageneditor ein und lassen Sie ihn mit der Schaltfläche „Speichern“ auf syntaktische Korrektheit überprüfen.

Wenn Anpassungen an der Vorlage erforderlich sind, können diese über die Schaltfläche „Vorlage bearbeiten“ vorgenommen werden. Hier sollte beispielsweise der Name der Ressourcengruppe angepasst werden.

Vergewissern Sie sich, dass Sie die Ressourcenkonfiguration in der Vorlage überprüft haben und dass sie Ihren Anforderungen entspricht. Fahren Sie dann mit „Überprüfen + erstellen“ fort.

Klicken Sie auf die Schaltfläche „Erstellen“, um die Bereitstellung zu starten.

Autorisieren der API-Verbindung

Jede Verbindung zwischen einer Logic App und einem SaaS-Dienst, wie beispielsweise Azure Key Vault, erfolgt über eine API-Verbindung. Diese wurde mit der zuvor bereitgestellten Vorlage erstellt, muss jedoch in einem separaten Schritt autorisiert werden. Dies geschieht wie folgt:

  1. Öffnen Sie die Ressourcengruppe, indem Sie beispielsweise in der zentralen Suchleiste des Azure-Portals nach ihrem Namen suchen. Die Übersicht der Ressourcengruppe wird geöffnet, in der die API-Verbindung als Ressource aufgeführt ist.
  2. Öffnen Sie die API-Verbindung, die den Namen der Logic App enthält, die Sie gerade mit der Vorlage erstellt haben. In diesem Beispiel ist dies „office365-AppRegistrationClientSecretNotification”.
  3. Wechseln Sie nun zum Menü zum Bearbeiten der API-Verbindung, indem Sie im Abschnitt „Allgemein” auf „API-Verbindung bearbeiten” klicken.
  4. Autorisieren Sie die API-Verbindung, indem Sie auf die Schaltfläche „Autorisieren” klicken und dann mit „Speichern” bestätigen.

Extrahieren der Objekt-ID (Prinzipal-ID) der Logic App

Logic Apps verwenden verwaltete Identitäten, um Zugriff auf Ressourcen zu erhalten, die durch Entra ID (ehemals Azure Active Directory) geschützt sind. In diesem Schritt exportieren wir die Objekt-ID (Prinzipal-ID), die als Nächstes für die eigentliche Zuweisung von Rechten benötigt wird:

  1. Öffnen Sie die Ressourcengruppe, indem Sie beispielsweise in der zentralen Suchleiste des Azure-Portals nach ihrem Namen suchen. Es öffnet sich die Übersicht der Ressourcengruppe, in der die Logic App neben der API-Verbindung als Ressource aufgeführt ist.
  2. Klicken Sie nun auf den Namen der mit Hilfe der Vorlage erstellten Logic App, um sie zu öffnen.
    In der Übersicht der Logic App sehen Sie später Informationen zu den Ausführungen, Triggern und Statistiken selbst. Logischerweise sind diese derzeit noch leer. Öffnen Sie nun das Menü „Identität” im Abschnitt „Einstellungen”.
  3. Es wird zwischen vom System zugewiesenen und vom Benutzer zugewiesenen Identitäten unterschieden. In diesem Beispiel wird eine vom System zugewiesene Identität verwendet. Durch das Hinzufügen der verwalteten Identität zur Ressource wird diese automatisch mit ihr gelöscht.
  4. Dadurch wird das Risiko von schwebenden Anmeldedaten minimiert, die zu potenziellen Sicherheitsproblemen führen könnten. Setzen Sie dazu den Status auf „Ein“ und notieren Sie sich die Objekt-ID (Prinzipal-ID). Diese wird im nächsten Schritt benötigt.

Zuweisen von Berechtigungen in Entra ID mit PowerShell

Es gibt mehrere Möglichkeiten, Berechtigungen in Entra ID zuzuweisen. Dies kann beispielsweise über ARM-Vorlagen, direkt über das Azure-Portal oder über PowerShell erfolgen.

Mieter-ID extrahieren

Die Mieter-ID wird benötigt, um sich mit PowerShell im Kontext des Mieters anzumelden und anschließend weitere Befehle ausführen zu können. Sie finden diese auf der Entra ID-Übersichtsseite im Azure-Portal:

  1. Öffnen Sie das Azure-Portal und gehen Sie zur Entra ID-Übersicht.
  2. Die Mieter-ID finden Sie auf der Übersichtsseite. Notieren Sie sich diese.

Herstellen der Verbindung

  1. Öffnen Sie die integrierte Skriptumgebung (ISE) von PowerShell auf Ihrem Computer, indem Sie „PowerShell ISE” in die Windows-Suchleiste eingeben und die Anwendung aus den Suchergebnissen auswählen.
  2. Kopieren Sie den folgenden Code und fügen Sie ihn in die PowerShell ISE ein, wobei Sie die <tenant ID> durch Ihre eigene ersetzen. Führen Sie das Skript dann mit „F5” oder der Schaltfläche „Ausführen” aus.
connect-azuread -TenantId <Tenant ID>

Erläuterung: Der Befehl connect-azuread -TenantId <Tenant ID> stellt eine Verbindung zu Entra ID unter Verwendung der angegebenen Mandanten-ID her. Dadurch ist es möglich, PowerShell-Befehle im Kontext dieses bestimmten Mandanten auszuführen.

 

Vorbereitung der Objekt-ID

Die Objekt-ID der Graph App und die zuzuweisende Rolle sind erforderlich, um die Berechtigung zuzuweisen. Diese Daten werden in diesem Schritt erfasst.

Die Graph-App ist auch unter der Anwendungs-ID „00000003-0000-0000-c000-000000000000“ oder dem Namen „GraphAggregatorService“ zu finden. Die Rolle ist in der Liste der AppRoles der Graph-App zu finden.

Extrahieren Sie die Objekt-ID und die Gruppenleseberechtigung mit dem folgenden Befehl:

$graph = Get-AzureADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
$groupReadPermission = $graph.AppRoles `
| where Value -Like "Application.Read.All" `
| Select-Object -First 1

Erläuterung: Diese Befehle rufen Informationen über den Azure AD-Dienstprinzipal der Graph-App ab und exportieren die App-Rolle „Application.Read.All”.

 

Lesen der Objekt-ID (Prinzipal-ID) der Logic App

Wir haben bereits die Objekt-ID (Prinzipal-ID) der Logic App extrahiert. Lesen Sie nun den Dienstprinzipal der Objekt-ID (Prinzipal-ID) der Logic App in die Variable „msi” ein:

$msi = Get-AzureADServicePrincipal -ObjectId <Object (principal) ID of the Logic App>

Erläuterung: Dieser Befehl ruft Informationen zu einem Azure AD-Dienstprinzipal anhand seiner Objekt-ID ab, die zuvor in den Code eingefügt wurde. Die Informationen werden dann der Variablen $msi zugewiesen, damit sie später im Skript verwendet werden können.

 

Zuweisen von Berechtigungen

Alle erforderlichen Informationen zum Zuweisen der Rolle „Application.Read.All” zur Logic App sind nun verfügbar. Weisen Sie die Berechtigung mit dem folgenden Befehl zu:

New-AzureADServiceAppRoleAssignment `
-Id $groupReadPermission.Id `
-ObjectId $msi.ObjectId `
-PrincipalId $msi.ObjectId `
-ResourceId $graph.ObjectId

Erläuterung: Eine Rolle wird mithilfe eines Cmdlets zugewiesen, das die folgenden Informationen enthält:

  • Id $groupReadPermission.Id: ID of the app role „Application.Read.All“
  • ObjectId $msi.ObjectId: Object ID of the service principal of the Logic app
  • PrincipalId $msi.ObjectId: Principal ID of the service principal of the Logic app
  • ResourceId $graph.ObjectId: Object ID of the service principal of the Graph App

Dieser Befehl weist die ausgewählte App-Rolle einem bestimmten Dienstprinzipal zu, wodurch bestimmte Berechtigungen und Zugriffsbereiche innerhalb des Azure AD-Systems aktiviert werden.

 

Das PowerShell-Skript

Das PowerShell-Skript, das in den verschiedenen Schritten erstellt wurde, sieht wie folgt aus. Sie können es verwenden, nachdem Sie die beiden Variablen „tenantid” und „objectprincipalid” durch ihre Daten ersetzt haben.

$tenantid = "<tenant ID>"
$objectprincipalid = "<Object (principal) ID of the Logic App>"
connect-azuread -TenantId $tenantid
$graph = Get-AzureADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
$groupReadPermission = $graph.AppRoles `
| where Value -Like "Application.Read.All" `
 Select-Object -First 1
$msi = Get-AzureADServicePrincipal -ObjectId $objectprincipalid
New-AzureADServiceAppRoleAssignment `
-Id $groupReadPermission.Id `
-ObjectId $msi.ObjectId `
-PrincipalId $msi.ObjectId `
-ResourceId $graph.ObjectI 

Ausführen der Logic-App

  1. Öffnen Sie das Azure-Portal und gehen Sie zur Übersicht über die Logic Apps.
  2. Wählen Sie dort die von Ihnen erstellte Logic-App aus und starten Sie sie, indem Sie auf „Run Trigger” (Auslöser ausführen) klicken.

Genutzte Services

Microsoft Security & Compliance

Cyber-Bedrohungen, neue gesetzliche Anforderungen wie NIS2 und hybride Arbeitsmodelle stellen Unternehmen vor komplexe Herausforderungen. Mit den Sicherheitslösungen von Microsoft und dem Fachwissen von PCG können Sie Ihre Daten, Systeme und Identitäten intelligent, skalierbar und konform schützen.

Kontakt