MIRA: Managed Identity Permissions endlich per GUI verwalten


Warum Permissions an Managed Identities hängen sollten

Wer Automatisierung gegen Microsoft Graph, Defender oder andere APIs baut, steht vor der Frage: womit authentifiziert sich das Skript oder die Function? Die schlechteste Antwort ist nach wie vor weit verbreitet: App Registration mit Client Secret, irgendwo in einem Key Vault oder — schlimmer — im Code.

Managed Identities (MI) lösen genau dieses Problem. Keine Secrets die rotiert, gespeichert oder geleakt werden können. Azure verwaltet den Credential-Lifecycle vollständig selbst. Die Identität ist an eine konkrete Ressourceninstanz gebunden (Function App, Automation Account, VM) und verschwindet, wenn die Ressource gelöscht wird — kein verwaistes Secret das Jahre später noch gültig ist.

💡 Tip

Aus Security-Sicht ist das ein klarer Fall: Wo immer eine Azure-Ressource mit Microsoft Graph oder anderen APIs sprechen muss, sollte eine Managed Identity die erste Wahl sein — nicht ein Service Principal mit Secret.


Das Problem: Keine GUI für App Role Assignments

Soweit die Theorie. In der Praxis scheitert die Umsetzung oft an einem einfachen Umstand: App Role Assignments für Managed Identities lassen sich im Entra Admin Center nicht zuweisen. Es gibt keinen Button, keinen Wizard, keine Oberfläche dafür.

Der einzige Weg führt über die Microsoft Graph API oder PowerShell-Cmdlets wie New-MgServicePrincipalAppRoleAssignment. Das bedeutet:

  • Object IDs von Managed Identity, Resource Service Principal und App Role müssen manuell ermittelt werden
  • Keine Übersicht, welche Permissions eine MI bereits hat, bevor man etwas Neues zuweist
  • Keine Risikoeinstufung der Permission im Vorfeld — Mail.Read und RoleManagement.ReadWrite.Directory sehen im Skript gleich aus
  • Fehlerquelle für jeden Admin der nicht täglich mit Graph PowerShell arbeitet

Genau diese Lücke schließt MIRA.


MIRA — Managed Identity Role Assignments

MIRA ist ein kostenloses, browserbasiertes Tool zum Auditieren und Zuweisen von App Role Permissions für Managed Identities in Entra ID. Alles läuft client-seitig — kein Backend, keine gespeicherten Daten.

Inventory Dashboard

Nach dem Verbinden mit dem Tenant zeigt MIRA alle Managed Identities auf einen Blick: Gesamtanzahl, wie viele Rollen zugewiesen haben, Aufschlüsselung nach Risiko (Critical/Elevated) und nach System- vs. User-Assigned MIs. Filterbar nach Name und Kategorie.

Inventory Dashboard: Alle Managed Identities im Tenant mit Risiko-Klassifizierung der zugewiesenen Permissions.
Inventory Dashboard: Alle Managed Identities im Tenant mit Risiko-Klassifizierung der zugewiesenen Permissions.

Schritt 1: Managed Identity auswählen

Der Assignment Wizard startet mit der Auswahl der Ziel-MI. Bestehende Rollenanzahl wird direkt in der Liste angezeigt.

Schritt 1 — Managed Identity per Suche auswählen.
Schritt 1 — Managed Identity per Suche auswählen.

Schritt 2: Ziel-Ressource wählen

Danach wird die Resource Application gewählt, gegen die die Permission gelten soll — Microsoft Graph, Defender for Endpoint, Microsoft Threat Protection oder SharePoint Online sind als Quick-Select hinterlegt, zusätzlich frei durchsuchbar.

Schritt 2 — Resource Application auswählen (Microsoft Graph, Defender, SharePoint, ...).
Schritt 2 — Resource Application auswählen (Microsoft Graph, Defender, SharePoint, ...).

Schritt 3: Permissions zuweisen

Die Permission-Liste zeigt jede verfügbare App Role mit Risikoeinstufung (Normal / Elevated / Critical) und Kurzbeschreibung. Das macht den Unterschied zwischen einer harmlosen Read-Permission und einer kritischen Berechtigung wie AccessReview.ReadWrite.All sofort sichtbar — bevor man sie zuweist.

Schritt 3 — Permission-Auswahl mit Risiko-Tags direkt in der Liste.
Schritt 3 — Permission-Auswahl mit Risiko-Tags direkt in der Liste.

Bestätigung und Zuweisung

Vor dem tatsächlichen Assign zeigt MIRA eine Zusammenfassung: welche MI, welche Resource, welche Rollen — inklusive Risiko-Badge. Erst dann wird der Graph-Call ausgeführt.

Bestätigungsdialog vor der finalen Zuweisung.
Bestätigungsdialog vor der finalen Zuweisung.

Permissions entfernen

Genauso wichtig wie das Zuweisen: das Aufräumen. Im “Remove permissions”-Tab werden alle aktuell zugewiesenen Rollen der gewählten MI angezeigt — inklusive Risiko-Tag — und lassen sich gezielt selektieren und entfernen.

Bestehende Assignments einsehen und gezielt entfernen.
Bestehende Assignments einsehen und gezielt entfernen.

Fazit

MIRA macht etwas möglich, das im Entra Admin Center schlicht fehlt: App Role Assignments für Managed Identities sichtbar machen, mit Risikokontext versehen und ohne Graph-PowerShell-Kenntnisse zuweisen oder entfernen. Für Security Reviews und für den täglichen Betrieb gleichermaßen nützlich — und ein weiterer Grund, bei Automatisierung konsequent auf Managed Identities statt Secrets zu setzen.

👉 MIRA öffnen →


Fragen oder Feedback? LinkedIn oder E-Mail.

Why permissions belong on Managed Identities

Anyone building automation against Microsoft Graph, Defender, or other APIs faces the same question: what does the script or function authenticate with? The worst answer is still common: an App Registration with a client secret, stored somewhere in a Key Vault or — worse — in the code.

Managed Identities (MI) solve exactly this problem. No secrets to rotate, store, or leak. Azure manages the entire credential lifecycle itself. The identity is bound to a specific resource instance (Function App, Automation Account, VM) and disappears when the resource is deleted — no orphaned secret still valid years later.

💡 Tip

From a security standpoint this is a clear call: wherever an Azure resource needs to talk to Microsoft Graph or other APIs, a Managed Identity should be the default choice — not a Service Principal with a secret.


The Problem: No GUI for App Role Assignments

That’s the theory. In practice, implementation often fails on a simple fact: App role assignments for Managed Identities cannot be assigned in the Entra Admin Center. There’s no button, no wizard, no UI for it.

The only path runs through the Microsoft Graph API or PowerShell cmdlets like New-MgServicePrincipalAppRoleAssignment. That means:

  • Object IDs for the Managed Identity, resource service principal, and app role have to be looked up manually
  • No overview of what permissions an MI already has before assigning something new
  • No risk classification of the permission up front — Mail.Read and RoleManagement.ReadWrite.Directory look identical in a script
  • A source of errors for any admin who doesn’t work with Graph PowerShell daily

This is exactly the gap MIRA closes.


MIRA — Managed Identity Role Assignments

MIRA is a free, browser-based tool for auditing and assigning app role permissions for Managed Identities in Entra ID. Everything runs client-side — no backend, no stored data.

Inventory Dashboard

After connecting to the tenant, MIRA shows all Managed Identities at a glance: total count, how many have roles assigned, a breakdown by risk (Critical/Elevated), and by system- vs. user-assigned MIs. Filterable by name and category.

Inventory dashboard: all Managed Identities in the tenant with risk classification of assigned permissions.
Inventory dashboard: all Managed Identities in the tenant with risk classification of assigned permissions.

Step 1: Select Managed Identity

The assignment wizard starts by selecting the target MI. Existing role count is shown directly in the list.

Step 1 — select a Managed Identity via search.
Step 1 — select a Managed Identity via search.

Step 2: Choose Target Resource

Next, the resource application the permission should apply to is selected — Microsoft Graph, Defender for Endpoint, Microsoft Threat Protection, and SharePoint Online are available as quick-select options, with free search as well.

Step 2 — select the resource application (Microsoft Graph, Defender, SharePoint, ...).
Step 2 — select the resource application (Microsoft Graph, Defender, SharePoint, ...).

Step 3: Assign Permissions

The permission list shows every available app role with a risk rating (Normal / Elevated / Critical) and a short description. This makes the difference between a harmless read permission and a critical one like AccessReview.ReadWrite.All immediately visible — before you assign it.

Step 3 — permission selection with risk tags right in the list.
Step 3 — permission selection with risk tags right in the list.

Confirm and Assign

Before the actual assignment, MIRA shows a summary: which MI, which resource, which roles — including risk badge. Only then is the Graph call executed.

Confirmation dialog before the final assignment.
Confirmation dialog before the final assignment.

Removing Permissions

Just as important as assigning: cleaning up. The “Remove permissions” tab shows all roles currently assigned to the selected MI — including risk tag — and lets you select and remove them individually.

View existing assignments and remove them selectively.
View existing assignments and remove them selectively.

Conclusion

MIRA enables something the Entra Admin Center simply doesn’t offer: making app role assignments for Managed Identities visible, giving them risk context, and assigning or removing them without needing Graph PowerShell skills. Useful equally for security reviews and day-to-day operations — and one more reason to consistently use Managed Identities instead of secrets for automation.

👉 Open MIRA →


Questions or feedback? LinkedIn or E-Mail.