Skip to content

Commit a292935

Browse files
committed
Correct user-assigned managed identity
1 parent a4f64e1 commit a292935

6 files changed

+40
-26
lines changed

articles/search/search-how-to-create-search-index.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.author: heidist
88
ms.service: azure-ai-search
99
ms.update-cycle: 180-days
1010
ms.topic: how-to
11-
ms.date: 05/19/2025
11+
ms.date: 08/07/2025
1212
---
1313

1414
# Create an index in Azure AI Search
@@ -53,7 +53,7 @@ Use this checklist to assist the design decisions for your search index.
5353

5454
1. Review [supported data types](/rest/api/searchservice/supported-data-types). The data type affects how the field is used. For example, numeric content is filterable but not full text searchable. The most common data type is `Edm.String` for searchable text, which is tokenized and queried using the full text search engine. The most common data type for a vector field is `Edm.Single` but you can use other types as well.
5555

56-
1. Provide a description of the index (preview), 4,000 character maximum. This human-readable text is invaluable when a system must access several indexes and make a decision based on the description. Consider a Model Context Protocol (MCP) server that must pick the correct index at run time. The decision can be based on the description rather than on index name alone. An index Description field is available in the [2025-05-01-preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2025-05-01-preview&preserve-view=true), the Azure portal, or a prerelease package of an Azure SDK that provides the feature. For more information, see [Add an index description](search-howto-reindex.md#add-an-index-description-preview).
56+
1. Provide a description of the index (preview), 4,000 character maximum. This human-readable text is invaluable when a system must access several indexes and make a decision based on the description. Consider a Model Context Protocol (MCP) server that must pick the correct index at run time. The decision can be based on the description rather than on index name alone. An index Description field is available in the [2025-05-01-preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2025-05-01-preview&preserve-view=true), the Azure portal, or a preview package of an Azure SDK that provides the feature. For more information, see [Add an index description](search-howto-reindex.md#add-an-index-description-preview).
5757

5858
1. Identify a [document key](#document-keys). A document key is an index requirement. It's a single string field populated from a source data field that contains unique values. For example, if you're indexing from Blob Storage, the metadata storage path is often used as the document key because it uniquely identifies each blob in the container.
5959

@@ -277,12 +277,12 @@ To minimize churn in the design process, the following table describes which ele
277277
| Field attribute (retrievable) | Yes |
278278
| Stored (applies to vectors) | No |
279279
| [Analyzer](search-analyzers.md) | You can add and modify custom analyzers in the index. Regarding analyzer assignments on string fields, you can only modify `searchAnalyzer`. All other assignments and modifications require a rebuild. |
280-
| [Scoring profiles](index-add-scoring-profiles.md) | Yes |
280+
| [Scoring profiles](index-add-scoring-profiles.md) | Yes, you can create and edit scoring profiles with no rebuild. |
281281
| [Suggesters](index-add-suggesters.md) | No |
282282
| [cross-origin resource sharing (CORS)](#corsoptions) | Yes |
283-
| [Encryption](search-security-manage-encryption-keys.md) | Yes |
284-
| [Synonym maps](search-synonyms.md) | Yes |
285-
| [Semantic configuration](semantic-how-to-configure.md) | Yes |
283+
| [Encryption](search-security-manage-encryption-keys.md) | Yes, you can update all parts of an *existing* encryption definition. |
284+
| [Synonym maps](search-synonyms.md) | Yes, you can create and edit synonym maps with no rebuild. |
285+
| [Semantic configuration](semantic-how-to-configure.md) | Yes, you can create and edit semantic configurations with no rebuild. |
286286

287287
## Next steps
288288

articles/search/search-howto-managed-identities-cosmos-db.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: arv100kri
66
ms.author: arjagann
77
ms.service: azure-ai-search
88
ms.topic: how-to
9-
ms.date: 01/06/2025
9+
ms.date: 08/07/2025
1010
ms.custom:
1111
- subject-rbac-steps
1212
- ignite-2023
@@ -31,7 +31,7 @@ Azure AI Search supports two mechanisms to connect to Azure Cosmos DB using mana
3131

3232
* The _modern_ approach requires configuring the managed identity appropriate roles on the control and data plane of the target Azure Cosmos DB account. Azure AI Search will then request an access token to access the data in the Cosmos DB account. This approach works even if the Cosmos DB account has `"disableLocalAuth": true`.
3333

34-
Indexers that connect to Azure Cosmos DB for NoSQL support both the _legacy_ and the _modern_ approach - the _modern_ approach is highly recommended.
34+
Indexers that connect to Azure Cosmos DB for NoSQL support both the _legacy_ and the _modern_ approach - the _modern_ approach is recommended.
3535

3636
## Limitations
3737

@@ -104,7 +104,7 @@ When you're connecting with a system-assigned managed identity, the only change
104104
Here's an example using the [Create Data Source](/rest/api/searchservice/data-sources/create) REST API that exercises the _modern_ approach.
105105

106106
```http
107-
POST https://[service name].search.windows.net/datasources?api-version=2024-11-01-preview
107+
POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
108108
{
109109
"name": "my-cosmosdb-ds",
110110
"type": "cosmosdb",
@@ -118,14 +118,14 @@ POST https://[service name].search.windows.net/datasources?api-version=2024-11-0
118118
>[!NOTE]
119119
> If the `IdentityAuthType` property isn't part of the connection string, then Azure AI Search defaults to the _legacy_ approach to ensure backward compatibility.
120120
121-
#### Connect through user-assigned identity
121+
#### Connect through user-assigned identity (preview)
122122

123123
You need to add an "identity" property to the data source definition, where you specify the specific identity (out of several that can be assigned to the search service), that will be used to connect to the Azure Cosmos DB account.
124124

125125
Here's an example using user-assigned identity via the _modern_ approach.
126126

127127
```http
128-
POST https://[service name].search.windows.net/datasources?api-version=2024-11-01-preview
128+
POST https://[service name].search.windows.net/datasources?api-version=2025-05-01-preview
129129
{
130130
"name": "[my-cosmosdb-ds]",
131131
"type": "cosmosdb",
@@ -157,7 +157,7 @@ Follow the same steps as before to assign the appropriate roles on the control p
157157
Here's an example to connect to MongoDB collections using system-assigned identity via the REST API
158158

159159
```http
160-
POST https://[service name].search.windows.net/datasources?api-version=2024-11-01-preview
160+
POST https://[service name].search.windows.net/datasources?api-version=2025-05-01-preview
161161
{
162162
"name": "my-cosmosdb-ds",
163163
"type": "cosmosdb",
@@ -172,7 +172,7 @@ POST https://[service name].search.windows.net/datasources?api-version=2024-11-0
172172
Here's an example to connect to Gremlin graphs using user-assigned identity.
173173

174174
```http
175-
POST https://[service name].search.windows.net/datasources?api-version=2024-11-01-preview
175+
POST https://[service name].search.windows.net/datasources?api-version=2025-05-01-preview
176176
{
177177
"name": "[my-cosmosdb-ds]",
178178
"type": "cosmosdb",

articles/search/search-howto-managed-identities-data-sources.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: HeidiSteen
77
ms.author: heidist
88
ms.service: azure-ai-search
99
ms.topic: how-to
10-
ms.date: 07/31/2025
10+
ms.date: 08/07/2025
1111
ms.custom:
1212
- ignite-2023
1313
- build-2024
@@ -32,9 +32,9 @@ Azure AI Search can connect to other Azure resources under its system-assigned m
3232

3333
+ Search service configuration of a managed identity, whether system-assigned or user-assigned, is generally available.
3434

35-
+ Data plane usage of a managed identity, whether system-assigned or user-assigned, is generally available. For example, if you want a user-assigned managed identity on an indexer data source connection, key vault, debug session, or enrichment cache, you can use a generally available REST API version to create the connection, assuming the feature you're using is also generally available.
35+
+ Data plane usage of a managed identity, whether system-assigned or user-assigned, is generally available for role assignments.
3636

37-
A system managed identity is indicated when a connection string is the unique resource ID of a Microsoft Entra ID-aware service or application. A user-assigned managed identity is specified through an "identity" property.
37+
+ Data plane connections via indexer data sources, such as to Azure Storage or Cosmos DB, can use either a system-assigned or user-assigned managed identity, but only system-assigned is generally available. A user identity is defined using the [SearchIndexerDataUserAssignedIdentity](/rest/api/searchservice/data-sources/create-or-update?view=rest-searchservice-2025-05-01-preview&preserve-view=true#searchindexerdatauserassignedidentity) API, which is currently in preview.
3838

3939
A search service uses Azure Storage as an indexer data source and as a data sink for debug sessions, enrichment caching, and knowledge store. For search features that write back to storage, the managed identity needs a contributor role assignment as described in the ["Assign a role"](#assign-a-role) section.
4040

@@ -129,15 +129,17 @@ A user-assigned managed identity is an Azure resource that can be scoped to subs
129129

130130
The steps are as follows:
131131

132-
1. In your Azure subscription, create a user-assigned managed identity.
132+
+ In your Azure subscription, create a user-assigned managed identity.
133133

134-
1. On your search service, update the service definition to enable the user-assigned managed identity.
134+
+ On your search service, update the service definition to enable the user-assigned managed identity.
135135

136-
1. On other Azure services you want to connect to, create a role assignment for the identity.
136+
+ On other Azure services you want to connect to, create a role assignment for the identity.
137137

138-
1. In data source connections on Azure AI Search, such as an indexer data source, reference the user-managed identity in the connection details. This step is generally available if support for the feature is generally available.
138+
Associating a user-assigned managed identity with an Azure AI Search service is supported in the Azure portal, Search Management REST APIs, and SDK packages that provide the feature.
139139

140-
Associating a user-assigned managed identity is supported in the Azure portal, Search Management REST APIs, and SDK packages that provide the feature.
140+
> [!NOTE]
141+
> User-assigned managed identities can also be used in indexer data source connection strings. Currently, only the newer preview REST APIs and preview packages support a user-assigned managed identity in a data source connection string. Be sure to switch to a preview version if you call the
142+
[SearchIndexerDataUserAssignedIdentity](/rest/api/searchservice/data-sources/create-or-update?view=rest-searchservice-2025-05-01-preview&preserve-view=true#searchindexerdatauserassignedidentity) API.
141143

142144
### [**Azure portal**](#tab/portal-user)
143145

@@ -224,9 +226,14 @@ The following steps illustrate the role assignment workflow. This example is for
224226
225227
## Connection string examples
226228
229+
A system managed identity is indicated when a connection string is the unique resource ID of a Microsoft Entra ID-aware service or application. A user-assigned managed identity is specified through an "identity" property.
230+
227231
Once a managed identity is defined for the search service and given a role assignment, outbound connections can be modified to use the unique resource ID of the other Azure resource. Here are some examples of connection strings for various scenarios.
228232
229-
You can use generally available REST API versions and Azure SDK packages for these connections.
233+
You can use generally available REST API versions and Azure SDK packages for connections using a system-assigned managed identity.
234+
235+
User-assigned managed identities can also be used in indexer data source connection strings. Currently, only the newer preview REST APIs and preview packages support a user-assigned managed identity in a data source connection string. Be sure to switch to a preview version if you call the
236+
[SearchIndexerDataUserAssignedIdentity](/rest/api/searchservice/data-sources/create-or-update?view=rest-searchservice-2025-05-01-preview&preserve-view=true#searchindexerdatauserassignedidentity) API.
230237
231238
> [!TIP]
232239
> You can create most of these objects in the Azure portal, specifying either a system or user-assigned managed identity, and then view the JSON definition to get the connection string.

articles/search/search-security-manage-encryption-keys.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ ms.custom:
1818

1919
Azure AI Search automatically encrypts data at rest with [Microsoft-managed keys](/azure/security/fundamentals/encryption-atrest#azure-encryption-at-rest-components). If you need another layer of encryption or the ability to revoke keys and shut down access to content, you can use keys that you create and manage in Azure Key Vault. This article explains how to set up customer-managed key (CMK) encryption.
2020

21-
You can store keys using either Azure Key Vault or Azure Key Vault Managed HSM (Hardware Security Module). An Azure Key Vault Managed HSM is an FIPS 140-2 Level 3 validated HSM. HSM support is new in Azure AI Search. To migrate to HSM, [rotate your keys](#rotate-or-update-encryption-keys) and choose Managed HSM for storage.
21+
You can store keys using either:
22+
23+
+ Azure Key Vault
24+
25+
+ Azure Key Vault Managed HSM (Hardware Security Module). An Azure Key Vault Managed HSM is an FIPS 140-2 Level 3 validated HSM. HSM support is new in Azure AI Search. To migrate from Azure Key Vault to HSM, [rotate your keys](#rotate-or-update-encryption-keys) and choose Managed HSM for storage.
2226

2327
> [!IMPORTANT]
2428
> CMK encryption is irreversible. You can rotate keys and change CMK configuration, but index encryption lasts for the lifetime of the index. Post-CMK encryption, an index is only accessible if the search service has access to the key. If you revoke access to the key by deleting or changing role assignment, the index is unusable and the service can't be scaled until the index is deleted or access to the key is restored. If you delete or rotate keys, the most recent key is cached for up to 60 minutes.
@@ -37,6 +41,8 @@ Encryption is performed over the following content:
3741

3842
If you require CMK across your search service, [set an enforcement policy](#set-up-a-policy-to-enforce-cmk-compliance).
3943

44+
Although you can't add encryption to an existing object, once an object is configured for encryption, you can change all parts of its encryption definition, including switching to a different key vault or HMS storage as long as the resource is in the same tenant.
45+
4046
## Prerequisites
4147

4248
+ [Azure AI Search](search-create-service-portal.md) on a [billable tier](search-sku-tier.md#tier-descriptions) (Basic or higher, in any region).

articles/search/tutorial-document-layout-image-verbalization.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ The following instructions apply to Azure Storage which provides the sample data
7373
}
7474
```
7575

76-
1. For connections made using a user-assigned managed identity, get a connection string that contains a ResourceId, with no account key or password. The ResourceId must include the subscription ID of the storage account, the resource group of the storage account, and the storage account name. Provide an identity using the syntax shown in the following example. Set userAssignedIdentity to the user-assigned managed identity. The connection string is similar to the following example:
76+
1. For connections made using a user-assigned managed identity, get a connection string that contains a ResourceId, with no account key or password. The ResourceId must include the subscription ID of the storage account, the resource group of the storage account, and the storage account name. Provide an identity using the syntax shown in the following example. Set userAssignedIdentity to the user-assigned managed identity The connection string is similar to the following example:
7777

7878
```json
7979
"credentials" : {
@@ -131,6 +131,7 @@ For authenticated connections that occur during indexer and skillset processing,
131131
@searchUrl = PUT-YOUR-SEARCH-SERVICE-ENDPOINT-HERE
132132
@searchApiKey = PUT-YOUR-ADMIN-API-KEY-HERE
133133
@storageConnection = PUT-YOUR-STORAGE-CONNECTION-STRING-HERE
134+
@cognitiveServicesUrl = PUT-YOUR-AZURE-AI-MULTI-SERVICE-ENDPOINT-HERE
134135
@openAIResourceUri = PUT-YOUR-OPENAI-URI-HERE
135136
@openAIKey = PUT-YOUR-OPENAI-KEY-HERE
136137
@chatCompletionResourceUri = PUT-YOUR-CHAT-COMPLETION-URI-HERE

articles/search/whats-new.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Announcements of new and enhanced features, including a service ren
44
author: HeidiSteen
55
ms.author: heidist
66
manager: nitinme
7-
ms.date: 08/01/2025
7+
ms.date: 08/07/2025
88
ms.service: azure-ai-search
99
ms.topic: overview
1010
ms.custom:
@@ -27,7 +27,7 @@ Learn about the latest updates to Azure AI Search functionality, docs, and sampl
2727
| [Search Management 2025-05-01](/rest/api/searchmanagement/operation-groups?view=rest-searchmanagement-2025-05-01&preserve-view=true) | REST | Stable release of the REST APIs for the control plane operations described in this table. For migration guidance, see [Upgrade to the latest REST API in Azure AI Search](search-api-migration.md). |
2828
| [Service upgrade](search-how-to-upgrade.md) | Service | Now generally available through [Upgrade Service (REST API)](/rest/api/searchmanagement/services/upgrade?view=rest-searchmanagement-2025-05-01&preserve-view=true) and the Azure portal. |
2929
| [Pricing tier change](search-capacity-planning.md#change-your-pricing-tier) | Service | Now generally available through the `sku` property in [Update Service (REST API)](/rest/api/searchmanagement/services/update?view=rest-searchmanagement-2025-05-01&preserve-view=true) and the Azure portal. |
30-
| [User-assigned managed identity](search-howto-managed-identities-data-sources.md) | Security | Now generally available through the `identity` property in [Update Service (REST API)](/rest/api/searchmanagement/services/update?view=rest-searchmanagement-2025-05-01&preserve-view=true) and the Azure portal. |
30+
| [User-assigned managed identity](search-howto-managed-identities-data-sources.md) | Security | Now generally available through the `identity` property that associates a user-assigned managed identity to a search service. User-assigned managed identities can be used for search service authentication in Azure-to-Azure connections. Configure the association using the [Update Service (REST API)](/rest/api/searchmanagement/services/update?view=rest-searchmanagement-2025-05-01&preserve-view=true) or the Azure portal. |
3131

3232
## May 2025
3333

0 commit comments

Comments
 (0)