|
| 1 | +--- |
| 2 | +title: Managed identities in Microsoft Discovery |
| 3 | +description: Understand how Microsoft Discovery uses user-assigned managed identities (UAMI) for authentication across workspaces, supercomputers, and bookshelves. |
| 4 | +author: umamm |
| 5 | +ms.author: umamm |
| 6 | +ms.service: azure |
| 7 | +ms.topic: concept-article |
| 8 | +ms.date: 04/17/2026 |
| 9 | +--- |
| 10 | + |
| 11 | +# Managed identities in Microsoft Discovery |
| 12 | + |
| 13 | +Microsoft Discovery uses **user-assigned managed identities (UAMI)** to authenticate against Azure resources on your behalf. Rather than managing secrets or connection strings, you create a managed identity, grant it the necessary Azure roles, and provide its resource ID when you create Discovery resources. The Discovery platform then uses that identity to access storage accounts, container registries, AI services, and managed resource group resources. |
| 14 | + |
| 15 | +## Why user-assigned managed identities |
| 16 | + |
| 17 | +Microsoft Discovery requires user-assigned (not system-assigned) managed identities for the following reasons: |
| 18 | + |
| 19 | +| Reason | Explanation | |
| 20 | +|--------|------------| |
| 21 | +| **Customer ownership** | You create, manage, and control the lifecycle of the identity in your own subscription. | |
| 22 | +| **Shared across resources** | A single UAMI can be reused across a workspace, supercomputer, and storage operations, reducing management overhead. | |
| 23 | +| **Pre-provisioned role assignments** | You assign roles before resource creation, so the Discovery service has the permissions it needs from the start. | |
| 24 | +| **Immutable binding** | The workspace identity and supercomputer cluster identity are bound at creation time and can't be changed later, ensuring a consistent security posture. The supercomputer's kubelet and workload identities can be updated after creation. | |
| 25 | + |
| 26 | +> [!IMPORTANT] |
| 27 | +> The workspace identity and supercomputer cluster identity are **immutable** after creation - you can't change them once provisioned. The supercomputer's kubelet and workload identities can be updated. Plan your identity strategy before creating resources. |
| 28 | +
|
| 29 | +## How Discovery uses your identity |
| 30 | + |
| 31 | +When a workspace or supercomputer is created, the Discovery control plane: |
| 32 | + |
| 33 | +1. **Reads your UAMI** - Validates the identity exists and the service can operate on it. |
| 34 | +2. **Assigns itself Managed Identity Operator** - The Discovery service principal gets the Managed Identity Operator role on your UAMI so it can use the identity for managed resource operations. |
| 35 | +3. **Uses the UAMI at runtime** - Tool runs on the supercomputer use the identity to pull container images and access blob storage. Agents use it to interact with Azure OpenAI and storage. |
| 36 | + |
| 37 | +## Identity slots per resource type |
| 38 | + |
| 39 | +Different Discovery resources use managed identities in different ways. |
| 40 | + |
| 41 | +### Workspace |
| 42 | + |
| 43 | +A workspace requires a single UAMI provided through the `workspaceIdentity` property. The Discovery service uses your UAMI to: |
| 44 | + |
| 45 | +- **Identify your workspace** - the UAMI is the security principal that binds the workspace to your subscription's resources. |
| 46 | +- **Read and write data** in your Azure Blob Storage accounts through storage containers. |
| 47 | +- **Pull container images** from Azure Container Registry when running tools on a supercomputer. |
| 48 | + |
| 49 | +The Discovery service provisions and operates the managed resource group (Cosmos DB, AI services, search indexes, Azure OpenAI) using its own service principals - not your UAMI. Your UAMI doesn't need roles on the managed resource group. |
| 50 | + |
| 51 | +### Supercomputer |
| 52 | + |
| 53 | +A supercomputer uses three identity slots, all of which can reference the same UAMI for simplicity, or separate UAMIs for least-privilege: |
| 54 | + |
| 55 | +| Slot | Purpose | |
| 56 | +|------|---------| |
| 57 | +| **Cluster identity** | Used by the AKS control plane to manage cluster-level resources such as networking and load balancers. | |
| 58 | +| **Kubelet identity** | Used at the node level to pull container images from Azure Container Registry and access Azure resources. | |
| 59 | +| **Workload identity** | Used as federated credentials by pods running tools and agents on the supercomputer. | |
| 60 | + |
| 61 | +### Bookshelf |
| 62 | + |
| 63 | +A bookshelf references your UAMI through its `workloadIdentities` property. The Discovery service uses its own service principals to provision and operate the bookshelf managed resource group (AI Search, SQL, AI Services). The service also creates a system-managed identity inside the bookshelf MRG for internal resource-to-resource authentication. |
| 64 | + |
| 65 | +## Required role assignments |
| 66 | + |
| 67 | +You must assign the following built-in roles to your UAMI **before** creating Discovery resources. Assign these at the **resource group** scope. |
| 68 | + |
| 69 | +| Role | Role definition ID | Purpose | |
| 70 | +|------|-------------------|---------| |
| 71 | +| Microsoft Discovery Platform Contributor (Preview) | `01288891-85ee-45a7-b367-9db3b752fc65` | Manage Discovery resources (workspaces, projects, agents, tools). | |
| 72 | +| Storage Blob Data Contributor | `ba92f5b4-2d11-453d-a403-e96b0029c9fe` | Read and write blobs in Azure Storage accounts. | |
| 73 | +| AcrPull | `7f951dda-4ed3-4680-a7ca-43fe172d538d` | Pull container images from Azure Container Registry. | |
| 74 | + |
| 75 | +For additional roles needed in specialized scenarios, see [Configure managed identities](how-to-configure-managed-identity.md#additional-roles-for-specific-scenarios). |
| 76 | + |
| 77 | +## End-to-end identity flow across Discovery resources |
| 78 | + |
| 79 | +When you deploy a complete Discovery stack, the platform creates three managed resource groups (workspace MRG, bookshelf MRG, supercomputer MRG), each containing Azure resources managed by the service. |
| 80 | + |
| 81 | +### What the service manages automatically |
| 82 | + |
| 83 | +When you create a workspace, bookshelf, or supercomputer, the Discovery service automatically: |
| 84 | + |
| 85 | +- Creates role assignments on the managed resource group so that the service can provision and operate MRG resources (AI Foundry, Cosmos DB, AI Search, Storage, Key Vault, AKS). |
| 86 | +- Assigns **Managed Identity Operator** on your UAMI so the service can use it for MRG deployments. |
| 87 | +- Creates a **system-managed identity** inside each workspace and bookshelf MRG for internal resource-to-resource authentication (Container Apps, Foundry, SQL). |
| 88 | + |
| 89 | +You don't need to create or manage any of these identities or role assignments - they're fully lifecycle-managed by the service. |
| 90 | + |
| 91 | +### What you're responsible for |
| 92 | + |
| 93 | +You're responsible for: |
| 94 | + |
| 95 | +- **Creating your UAMI** and assigning the three core roles (Discovery Platform Contributor, Storage Blob Data Contributor, AcrPull) before creating Discovery resources. |
| 96 | +- **Providing the UAMI resource ID** when creating a workspace or supercomputer. |
| 97 | + |
| 98 | + |
| 99 | +### Your UAMI at runtime |
| 100 | + |
| 101 | +Your UAMI is the identity that agents and tools use at runtime: |
| 102 | + |
| 103 | +| Operation | Azure resource accessed | Required role | |
| 104 | +|-----------|----------------------|---------------| |
| 105 | +| Read/write data in storage containers | Azure Blob Storage | Storage Blob Data Contributor | |
| 106 | +| Pull tool container images | Azure Container Registry | AcrPull | |
| 107 | +| Manage Discovery resources | Discovery RP | Microsoft Discovery Platform Contributor (Preview) | |
| 108 | +| Operate AKS cluster networking | Virtual Network subnets | Network Contributor (supercomputer cluster identity) | |
| 109 | + |
| 110 | +For the supercomputer, your UAMI is used in three slots: |
| 111 | + |
| 112 | +- **Cluster identity** - AKS control plane uses it to manage load balancers and networking. |
| 113 | +- **Kubelet identity** - Node-level agent uses it to pull images from ACR and access Azure resources. |
| 114 | +- **Workload identity** - Federated credentials used by pods running tools and agents. |
| 115 | + |
| 116 | +For guidance on choosing between a single shared UAMI and separate identities per function, see [Managed identity best practice recommendations](/entra/identity/managed-identities-azure-resources/managed-identity-best-practice-recommendations). |
| 117 | + |
| 118 | +## Limitations |
| 119 | + |
| 120 | +- The UAMI must be in the **same region** as the Discovery resource that uses it. |
| 121 | +- The workspace identity and supercomputer cluster identity can't be changed after resource creation - you must delete and recreate the resource. The supercomputer's kubelet and workload identities can be updated via PATCH. |
| 122 | +- Role assignment propagation can take up to 10 minutes. Create role assignments before creating Discovery resources. |
| 123 | +- The Discovery service requires **Managed Identity Operator** on your UAMI. If this role assignment fails during resource creation (for example, due to Azure Policy restrictions), the workspace provisioning fails. |
| 124 | + |
| 125 | +## Related content |
| 126 | + |
| 127 | +- [Configure managed identities for Microsoft Discovery](how-to-configure-managed-identity.md) - Step-by-step instructions for creating a UAMI and assigning roles. |
| 128 | +- [Role assignments in Microsoft Discovery](concept-role-assignments.md) - Built-in Discovery roles and persona-based assignment guidance. |
| 129 | +- [Azure Blob Storage in Microsoft Discovery](concept-storage-account.md) - Storage account requirements including identity access. |
| 130 | +- [Quickstart: Deploy infrastructure using Azure portal](quickstart-infrastructure-portal.md) — End-to-end setup including UAMI creation. |
| 131 | +- [What are managed identities for Azure resources?](/entra/identity/managed-identities-azure-resources/overview) — Azure platform documentation on managed identities. |
0 commit comments