# Workload Identities Workload Identities

Dienstprinzipale, Managed Identities, OIDC-Föderation, Premium-Schutz, Monitoring und Graph-API-Referenz für nicht-menschliche Identitäten. Service principals, managed identities, OIDC federation, premium protection, monitoring, and Graph API reference for non-human identities.

Identität ohne Secret Identity without secrets

Managed Identities und Federation reduzieren statische Geheimnisse, Rotationsaufwand und Secret-Sprawl. Managed identities and federation reduce static secrets, rotation effort, and secret sprawl.

Service Principal als Sicherheitsobjekt Service principal as security object

Jede Arbeitslast identifiziert sich gegenüber Entra ID als Dienstprinzipal oder verwaltete Identität. Every workload identifies to Entra ID as a service principal or managed identity.

OIDC-Föderation OIDC federation

GitHub Actions, AKS, Terraform Cloud, AWS und andere OIDC-Issuer können Tokens ohne gespeicherte Secrets tauschen. GitHub Actions, AKS, Terraform Cloud, AWS, and other OIDC issuers can exchange tokens without stored secrets.

Premium-Steuerung Premium control

Conditional Access, Risikosignale und Governance-Funktionen schützen nicht nur Benutzer-, sondern auch Arbeitslastidentitäten. Conditional Access, risk signals, and governance features protect not only user identities but also workload identities.

## Grundlagen und Identitätstypen Fundamentals and identity types

Workload Identities sind nicht-menschliche Identitäten für Anwendungen, Automatisierung, Skripte, Container, Pipelines und Plattformdienste. In Microsoft Entra ID erscheinen sie als Anwendungsobjekte, Dienstprinzipale, verwaltete Identitäten oder föderierte Identitäten. Workload identities are non-human identities for applications, automation, scripts, containers, pipelines, and platform services. In Microsoft Entra ID they surface as application objects, service principals, managed identities, or federated identities.

Typ Type | Objektmodell Object model | Wann verwenden When to use
--- | --- | ---
App Registration App registration | Mandantenübergreifende oder mandantenspezifische Definition einer Anwendung. Tenant-wide or tenant-specific application definition. | Wenn du ein logisches App-Objekt, Berechtigungen und Credentials verwalten willst. When you need a logical app object, permissions, and credentials.
Service Principal Service principal | Instanz der App in einem Tenant mit Rollen, Zustimmungen und Richtlinien. Instance of the app in a tenant with roles, consent, and policies. | Für tatsächliche Zugriffe in einem konkreten Tenant. For actual access in a concrete tenant.
System-assigned Managed Identity System-assigned managed identity | Lebt und stirbt mit der Azure-Ressource. Lives and dies with the Azure resource. | Wenn nur genau eine Ressource die Identität braucht. When only one resource needs the identity.
User-assigned Managed Identity User-assigned managed identity | Eigenständige Identität, die mehreren Ressourcen zugewiesen werden kann. Standalone identity assignable to multiple resources. | Für gemeinsame Automatisierung, Blast-Radius-Trennung und Lebenszyklussteuerung. For shared automation, blast-radius isolation, and lifecycle control.
Federated Identity Credential Federated identity credential | Verknüpft externen OIDC-Issuer mit einer App oder verwalteten Identität. Binds an external OIDC issuer to an app or managed identity. | Wenn keine Secrets oder Zertifikate in Fremdplattformen gespeichert werden sollen. When no secrets or certificates should be stored in external platforms.

💡 Designempfehlung 💡 Design recommendation

Nutze system-assigned Managed Identities für eng gekoppelte Einzelressourcen und user-assigned Identities für geteilte Plattformfunktionen oder Blue/Green-Deployments. Use system-assigned managed identities for tightly coupled single resources and user-assigned identities for shared platform functions or blue/green deployments.

## Managed Identities vollständig betrachtet Managed identities in depth

Merkmal Characteristic | System-assigned System-assigned | User-assigned User-assigned
--- | --- | ---
Lebenszyklus Lifecycle | Wird mit der Azure-Ressource erstellt und gelöscht. Created and deleted with the Azure resource. | Lebt unabhängig von den konsumierenden Ressourcen. Lives independently of consuming resources.
Wiederverwendung Reuse | Eine Ressource, eine Identität. One resource, one identity. | Eine Identität für viele Ressourcen. One identity for many resources.
Rollenzuweisung Role assignment | Einfach für klare Verantwortlichkeit. Simple for clear ownership. | Gut für zentrale Plattformrollen und abgestufte Berechtigungen. Good for central platform roles and tiered permissions.
Rotation Rotation | Plattform rotiert zugrunde liegende Anmeldeinformationen. Platform rotates underlying credentials. | Plattform rotiert ebenfalls; Zuweisungen bleiben stabil. Platform rotates as well; assignments remain stable.
Disaster Recovery Disaster recovery | Wiederherstellung an Ressourcenlebenszyklus gebunden. Recovery is tied to resource lifecycle. | Kann vorab in Zielumgebungen bereitgestellt werden. Can be pre-provisioned in target environments.
Blast Radius Blast radius | Kompromittierung betrifft einzelne Ressource. Compromise affects a single resource. | Falsche Wiederverwendung kann viele Ressourcen betreffen. Incorrect reuse can affect many resources.

### Unterstützte Azure-Dienste (Auszug 60+) Supported Azure services (60+ sample)

Die folgende Matrix deckt die gängigen Azure-Dienste mit Unterstützung für Managed Identities ab. Prüfe vor jeder Implementierung, ob dein konkreter Dienst, Region und Hosting-Modus system-assigned, user-assigned oder beide Varianten unterstützt. The matrix below covers common Azure services that support managed identities. Before implementation, verify whether your exact service, region, and hosting mode supports system-assigned, user-assigned, or both.

Azure-Dienst Azure service | Identitätstyp Identity type | Häufiger Einsatzzweck Common use | Hinweis Note
--- | --- | --- | ---
Virtual Machines Virtual Machines | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Virtual Machine Scale Sets Virtual Machine Scale Sets | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
App Service Web Apps App Service Web Apps | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
App Service API Apps App Service API Apps | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
App Service Functions App Service Functions | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Functions Premium Azure Functions Premium | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Container Apps Azure Container Apps | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Container Instances Azure Container Instances | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
AKS control plane AKS control plane | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
AKS workload identity AKS workload identity | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Kubernetes Fleet Azure Kubernetes Fleet | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Automation Azure Automation | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Batch Azure Batch | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Spring Apps Azure Spring Apps | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Service Fabric Azure Service Fabric | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure API Management Azure API Management | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Logic Apps Standard Azure Logic Apps Standard | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Data Factory Azure Data Factory | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Synapse Workspace Azure Synapse Workspace | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Synapse Spark Azure Synapse Spark | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Databricks Azure Databricks | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Machine Learning Azure Machine Learning | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure AI Services Azure AI Services | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure OpenAI Azure OpenAI | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Search Azure Search | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Event Grid Azure Event Grid | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Event Hubs Azure Event Hubs | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Service Bus Azure Service Bus | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Relay Azure Relay | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Storage Azure Storage | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Key Vault Azure Key Vault | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure SQL Database Azure SQL Database | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure SQL Managed Instance Azure SQL Managed Instance | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Cosmos DB Azure Cosmos DB | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure PostgreSQL Flexible Server Azure PostgreSQL Flexible Server | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure MySQL Flexible Server Azure MySQL Flexible Server | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Redis Azure Redis | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Cache for Redis Enterprise Azure Cache for Redis Enterprise | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Media Services Azure Media Services | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure IoT Hub Azure IoT Hub | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Digital Twins Azure Digital Twins | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Maps Azure Maps | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Automation Hybrid Worker Azure Automation Hybrid Worker | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Arc-enabled servers Azure Arc-enabled servers | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Container Registry Tasks Azure Container Registry Tasks | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure DevOps self-hosted agents Azure DevOps self-hosted agents | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Lab Services Azure Lab Services | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Health Data Services Azure Health Data Services | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Backup vaults Azure Backup vaults | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Recovery Services vaults Azure Recovery Services vaults | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Logic Apps Integration Service Environment Azure Logic Apps Integration Service Environment | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Web PubSub Azure Web PubSub | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure SignalR Service Azure SignalR Service | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Video Indexer Azure Video Indexer | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Chaos Studio Azure Chaos Studio | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Managed Grafana Azure Managed Grafana | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Monitor Workspace Azure Monitor Workspace | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Load Testing Azure Load Testing | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure Managed Lustre Azure Managed Lustre | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure NetApp Files automation Azure NetApp Files automation | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Azure VMware Solution integrations Azure VMware Solution integrations | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Fabric data workloads Fabric data workloads | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Power Platform managed connections Power Platform managed connections | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Cloud Shell Cloud Shell | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.
Windows 365 provisioning Windows 365 provisioning | Ja, je nach Ressourcentyp system- oder benutzerzugewiesen. Yes, depending on the resource type, system- or user-assigned. | Zugriff auf Key Vault, Storage, Graph oder ARM ohne Secret. Access Key Vault, Storage, Graph, or ARM without a secret. | Regionale Unterschiede und Feature-Flags immer im Zielservice prüfen. Always verify regional differences and feature flags in the target service.

## Tokenabruf, Caching und Workload Identity Federation Token acquisition, caching, and workload identity federation

Thema Topic | Praxis Practice | Wichtiger Punkt Key point
--- | --- | ---
IMDS IMDS | Azure-Ressourcen beziehen Tokens über den Instance Metadata Service unter 169.254.169.254. Azure resources obtain tokens from the Instance Metadata Service at 169.254.169.254. | Nur aus Azure-Umgebungen erreichbar; niemals per Reverse Proxy freigeben. Reachable only from Azure environments; never expose it through a reverse proxy.
DefaultAzureCredential DefaultAzureCredential | Verkettet Entwicklungs- und Laufzeitquellen wie Visual Studio, Azure CLI, Managed Identity und Federation. Chains development and runtime sources such as Visual Studio, Azure CLI, Managed Identity, and federation. | In Produktion Reihenfolge kennen, um Überraschungen zu vermeiden. Know the order in production to avoid surprises.
Token-Lebensdauer Token lifetime | Typischerweise 1 Stunde für Access Tokens, je nach Ressource und Richtlinie. Typically 1 hour for access tokens, depending on resource and policy. | Clients sollen Tokens cachen und kurz vor Ablauf erneuern. Clients should cache tokens and renew shortly before expiry.
MSAL Cache MSAL cache | SDKs cachen Tokens im Prozess oder persistent, wenn konfiguriert. SDKs cache tokens in memory or persistently when configured. | Keine parallelen Token-Stürme bei Scale-Out erzeugen. Avoid parallel token storms during scale-out.
OIDC Federation OIDC federation | Externer Issuer liefert signiertes Token; Entra ID prüft Issuer, Audience und Subject. External issuer provides a signed token; Entra ID validates issuer, audience, and subject. | Saubere Subject-Muster sind zentral für Least Privilege. Clean subject patterns are central to least privilege.

Issuer-Szenario Issuer scenario | Issuer Issuer | Typischer Subject-Claim Typical subject claim | Hinweis Note
--- | --- | --- | ---
GitHub Actions GitHub Actions | https://token.actions.githubusercontent.com https://token.actions.githubusercontent.com | repo:org/repo:ref:refs/heads/main repo:org/repo:ref:refs/heads/main | Branch-, Tag- oder Environment-basierte Trennung möglich. Branch, tag, or environment-based separation is possible.
AKS Workload Identity AKS Workload Identity | OIDC-Issuer des AKS-Clusters. OIDC issuer of the AKS cluster. | system:serviceaccount:namespace:serviceaccount system:serviceaccount:namespace:serviceaccount | ServiceAccount-Namen nicht recyceln ohne Governance. Do not recycle service account names without governance.
Terraform Cloud Terraform Cloud | app.terraform.io oder TFC-EU Issuer. app.terraform.io or TFC-EU issuer. | organization:project:workspace:run_phase organization:project:workspace:run_phase | Workspace und Phase strikt einschränken. Strictly constrain workspace and phase.
AWS AWS | AWS OIDC- oder STS-basierter Issuer je Architektur. AWS OIDC or STS-based issuer depending on design. | Rollen- oder Workload-bezogene Subjects. Role or workload specific subjects. | Cross-cloud Trust schriftlich dokumentieren. Document cross-cloud trust explicitly.
Google Cloud Google Cloud | accounts.google.com oder dedizierter Workload-Pool-Issuer. accounts.google.com or a dedicated workload pool issuer. | Pool-, Provider- oder Principal-basiert. Pool, provider, or principal based. | Audience immer minimal halten. Keep audience minimal.
Generic OIDC Generic OIDC | Beliebiger standardkonformer OIDC-Issuer. Any standards-compliant OIDC issuer. | Beliebiges, aber kontrolliertes Subject-Format. Any controlled subject format. | JWK-Rollover und Uhrzeitsynchronisierung testen. Test JWK rollover and time synchronization.

PowerShell PowerShell

    $resource = "https://graph.microsoft.com/"
    $token = Invoke-RestMethod -Headers @{Metadata="true"} `
        -Method GET `
        -Uri "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=$([uri]::EscapeDataString($resource))"
    $token.access_token

JSON JSON

    {
      "name": "github-main-branch",
      "issuer": "https://token.actions.githubusercontent.com",
      "subject": "repo:contoso/platform-infra:ref:refs/heads/main",
      "audiences": [
        "api://AzureADTokenExchange"
      ]
    }

## GitHub Actions, AKS, Terraform Cloud und Zertifikate GitHub Actions, AKS, Terraform Cloud, and certificates

YAML YAML

    permissions:
      id-token: write
      contents: read
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: azure/login@v2
            with:
              client-id: ${{ secrets.AZURE_CLIENT_ID }}
              tenant-id: ${{ secrets.AZURE_TENANT_ID }}
              subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
          - run: az account show

PowerShell PowerShell

    Connect-MgGraph -Scopes "Application.ReadWrite.All","AppRoleAssignment.ReadWrite.All"

    $body = @{
        displayName = "spn-platform-github"
        signInAudience = "AzureADMyOrg"
    } | ConvertTo-Json

    $app = Invoke-MgGraphRequest -Method POST -Uri "https://graph.microsoft.com/v1.0/applications" -Body $body -ContentType "application/json"

Muster Pattern | Empfehlung Recommendation | Begründung Reason
--- | --- | ---
GitHub Environments GitHub environments | Pro Environment eigene federated credential oder restriktives Subject. Use a dedicated federated credential per environment or a restrictive subject. | Verhindert versehentliche Produktionstoken aus Feature-Branches. Prevents accidental production tokens from feature branches.
AKS Namespaces AKS namespaces | Subject nach Namespace und ServiceAccount trennen. Separate the subject by namespace and service account. | Minimiert Blast Radius im Cluster. Minimizes cluster blast radius.
Terraform Run Phase Terraform run phase | Plan und Apply mit getrennten Identitäten absichern. Secure plan and apply with separate identities. | Least privilege für genehmigte Deployments. Least privilege for approved deployments.
Zertifikatsbasierte Authentifizierung Certificate-based authentication | Nur wenn Federation oder Managed Identity nicht möglich sind. Use only when federation or managed identity is not possible. | Zertifikate sind besser als Secrets, aber nicht so elegant wie secretless Federation. Certificates are better than secrets but not as clean as secretless federation.
Rotation Rotation | Überlappende Gültigkeit und automatisierte Erneuerung einplanen. Plan overlapping validity and automated renewal. | Verhindert Ausfälle bei stillem Zertifikatsablauf. Prevents outages from silent certificate expiry.

## Workload Identity Premium, Monitoring und Graph API Workload Identity Premium, monitoring, and Graph API

Premium-Funktion Premium feature | Nutzen Benefit | Einsatz Usage
--- | --- | ---
Conditional Access für Workload Identities Conditional Access for workload identities | Steuert Zugriffe nach Risiko, Netzwerk und Zielressource. Controls access by risk, network, and target resource. | Für hochprivilegierte Automatisierungsidentitäten und Produktionspipelines. For highly privileged automation identities and production pipelines.
Risk Detections Risk detections | Erkennt verdächtige Tokenverwendung oder verdächtige Service-Principal-Aktivität. Detects suspicious token use or suspicious service principal activity. | SOC-Integration und automatisierte Reaktion empfehlenswert. SOC integration and automated response are recommended.
Access Reviews Access reviews | Regelmäßige Überprüfung von Rollen und App-Zugriffen für nicht-menschliche Identitäten. Periodic review of roles and app access for non-human identities. | Vermeidet dauerhaft überprivilegierte Workloads. Prevents permanently over-privileged workloads.

Graph-API Graph API | Pfad Path | Beispiel Example
--- | --- | ---
Anwendungen Applications | /applications /applications | App-Objekte, Zertifikate und federatedIdentityCredentials verwalten. Manage app objects, certificates, and federatedIdentityCredentials.
Dienstprinzipale Service principals | /servicePrincipals /servicePrincipals | Sign-in-Aktivität, Rollen und Zuweisungen prüfen. Inspect sign-in activity, roles, and assignments.
Federated Credentials Federated credentials | /applications/{id}/federatedIdentityCredentials /applications/{id}/federatedIdentityCredentials | OIDC-Bindungen für GitHub, AKS oder generische Issuer anlegen. Create OIDC bindings for GitHub, AKS, or generic issuers.
Audit / Sign-ins Audit / sign-ins | /auditLogs/signIns /auditLogs/signIns | Service-Principal-Anmeldungen und Fehlermuster analysieren. Analyze service principal sign-ins and failure patterns.
App-Role Assignments App role assignments | /servicePrincipals/{id}/appRoleAssignments /servicePrincipals/{id}/appRoleAssignments | Applikationsberechtigungen und Dienst-zu-Dienst-Zugriffe prüfen. Review application permissions and service-to-service access.

PowerShell PowerShell

    Connect-MgGraph -Scopes "Application.Read.All","AuditLog.Read.All"
    Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=appId eq '11111111-1111-1111-1111-111111111111'"

Best Practice Best practice | Empfehlung Recommendation | Ziel Goal
--- | --- | ---
Least Privilege Least privilege | Jede Arbeitslast mit eigener Identität und minimalen Rollen. Give each workload its own identity and minimal roles. | Kleine Blast Radius pro Anwendung. Small blast radius per application.
Credential Hygiene Credential hygiene | Secrets vermeiden; Zertifikate nur ausnahmsweise; Federation bevorzugen. Avoid secrets; use certificates only when necessary; prefer federation. | Weniger Exfiltrationsrisiko. Lower exfiltration risk.
Rotation Schedule Rotation schedule | Wenn Zertifikate nötig sind, 90- oder 180-Tage-Zyklen plus Monitoring. If certificates are required, use 90- or 180-day cycles plus monitoring. | Keine ungeplanten Ausfälle. No unplanned outages.
Log Review Log review | Fehlgeschlagene Tokenanforderungen und neue Ressourcenberechtigungen überwachen. Monitor failed token requests and new resource permissions. | Früherkennung von Missbrauch. Early detection of abuse.
Separation of Duties Separation of duties | Erstellung, Rollenvergabe und Genehmigung trennen. Separate creation, role assignment, and approval. | Starke Governance für Plattformteams. Strong governance for platform teams.

## Betriebscheckliste Operational checklist

Checkpunkt Checkpoint | Erwarteter Zustand Expected state | Bewertung Assessment
--- | --- | ---
Identität pro Workload Identity per workload | Keine geteilten Global-Admin-Apps. No shared Global Admin apps. | Ja/Nein Yes/No
Secrets eliminiert Secrets eliminated | Managed Identity oder Federation bevorzugt. Managed identity or federation preferred. | Ja/Nein Yes/No
Rollen minimal Roles minimal | Nur notwendige Azure- und Graph-Berechtigungen. Only necessary Azure and Graph permissions. | Ja/Nein Yes/No
Subject restriktiv Subject restrictive | OIDC-Subjects trennen Branch, Namespace oder Workspace. OIDC subjects separate branch, namespace, or workspace. | Ja/Nein Yes/No
Logs geprüft Logs reviewed | Service Principal sign-ins überwacht. Service principal sign-ins monitored. | Ja/Nein Yes/No
CA für kritische Workloads CA for critical workloads | Premium-Funktionen für Hochrisiko-Identitäten bewertet. Premium features assessed for high-risk identities. | Ja/Nein Yes/No
Rotation dokumentiert Rotation documented | Falls Zertifikate nötig sind: Ablauf und Erneuerung klar. If certificates are needed: expiry and renewal are clear. | Ja/Nein Yes/No
Owner gesetzt Owner set | Business- und Technik-Owner auf App/Service Principal gepflegt. Business and technical owners maintained on app/service principal. | Ja/Nein Yes/No

## Glossar & Schnellreferenz Glossary & quick reference

Begriff Term | Definition Definition
--- | ---
Service Principal Service Principal | Sicherheitsinstanz einer App im Tenant. Security instance of an app in the tenant.
Managed Identity Managed Identity | Von Azure verwaltete Workload-Identität. Azure-managed workload identity.
OIDC Issuer OIDC Issuer | Vertrauensanker für föderierte Tokens. Trust anchor for federated tokens.
Audience Audience | Ziel des Tokenaustauschs. Target of the token exchange.
Subject Subject | Workload-spezifischer Identifikator im Issuer-Token. Workload-specific identifier in the issuer token.
IMDS IMDS | Metadata endpoint for managed identity tokens. Metadata-Endpunkt für Managed-Identity-Tokens.
DefaultAzureCredential DefaultAzureCredential | SDK-Kette für Tokenquellen. SDK chain for token sources.
Risk Detection Risk Detection | Signal für verdächtige Workload-Anmeldung. Signal for suspicious workload sign-in.