Skip to content

Commit a9113ba

Browse files
Merge pull request #273740 from HeidiSteen/heidist-bug
[azure search] RBAC doc updates
2 parents 586fae8 + 97a28bf commit a9113ba

File tree

2 files changed

+20
-32
lines changed

2 files changed

+20
-32
lines changed

articles/search/search-security-rbac.md

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,25 @@ author: HeidiSteen
88
ms.author: heidist
99
ms.service: cognitive-search
1010
ms.topic: how-to
11-
ms.date: 01/05/2024
11+
ms.date: 04/29/2024
1212
ms.custom:
1313
- subject-rbac-steps
1414
- references_regions
1515
- ignite-2023
1616
---
1717

18-
# Connect to Azure AI Search using Azure role-based access control (Azure RBAC)
18+
# Connect to Azure AI Search using Azure role-based access control
1919

2020
Azure provides a global [role-based access control authorization system](../role-based-access-control/role-assignments-portal.yml) for all services running on the platform. In Azure AI Search, you can use Azure roles for:
2121

2222
+ Control plane operations (service administration tasks through Azure Resource Manager).
2323

2424
+ Data plane operations, such as creating, loading, and querying indexes.
2525

26-
Per-user access over search results (sometimes referred to as row-level security or document-level security) isn't supported. As a workaround, [create security filters](search-security-trimming-for-azure-search.md) that trim results by user identity, removing documents for which the requestor shouldn't have access.
26+
Per-user access over search results (sometimes referred to as *row-level security* or *document-level security*) isn't supported. As a workaround, [create security filters](search-security-trimming-for-azure-search.md) that trim results by user identity, removing documents for which the requestor shouldn't have access.
2727

2828
> [!NOTE]
29-
> In Azure AI Search, "control plane" refers to operations supported in the [Management REST API](/rest/api/searchmanagement/) or equivalent client libraries. The "data plane" refers to operations against the search service endpoint, such as indexing or queries, or any other operation specified in the [Search REST API](/rest/api/searchservice/) or equivalent client libraries.
29+
> A quick note about terminology. *Control plane* refers to operations supported in the [Management REST API](/rest/api/searchmanagement/) or equivalent client libraries. *Data plane* refers to operations against the search service endpoint, such as indexing or queries, or any other operation specified in the [Search REST API](/rest/api/searchservice/) or equivalent client libraries.
3030
3131
## Built-in roles used in Search
3232

@@ -37,12 +37,12 @@ The following roles are built in. If these roles are insufficient, [create a cus
3737
| [Owner](../role-based-access-control/built-in-roles.md#owner) | Control & Data | Full access to the control plane of the search resource, including the ability to assign Azure roles. Only the Owner role can enable or disable authentication options or manage roles for other users. Subscription administrators are members by default. </br></br>On the data plane, this role has the same access as the Search Service Contributor role. It includes access to all data plane actions except the ability to query or index documents.|
3838
| [Contributor](../role-based-access-control/built-in-roles.md#contributor) | Control & Data | Same level of control plane access as Owner, minus the ability to assign roles or change authentication options. </br></br>On the data plane, this role has the same access as the Search Service Contributor role. It includes access to all data plane actions except the ability to query or index documents.|
3939
| [Reader](../role-based-access-control/built-in-roles.md#reader) | Control & Data | Read access across the entire service, including search metrics, content metrics (storage consumed, number of objects), and the object definitions of data plane resources (indexes, indexers, and so on). However, it can't read API keys or read content within indexes. |
40-
| [Search Service Contributor](../role-based-access-control/built-in-roles.md#search-service-contributor) | Control & Data | Read-write access to object definitions (indexes, synonym maps, indexers, data sources, and skillsets). See [`Microsoft.Search/searchServices/*`](../role-based-access-control/resource-provider-operations.md#microsoftsearch) for the permissions list. This role can't access content in an index, so no querying or indexing, but it can create, delete, and list indexes, return index definitions and statistics, and test analyzers. This role is for search service administrators who need to manage the search service and its objects, but without content access. |
41-
| [Search Index Data Contributor](../role-based-access-control/built-in-roles.md#search-index-data-contributor) | Data | Read-write access to content in all indexes on the search service. This role is for developers or index owners who need to import, refresh, or query the documents collection of an index. |
42-
| [Search Index Data Reader](../role-based-access-control/built-in-roles.md#search-index-data-reader) | Data | Read-only access to all search indexes on the search service. This role is for apps and users who run queries. |
40+
| [Search Service Contributor](../role-based-access-control/built-in-roles.md#search-service-contributor) | Control & Data | Read-write access to object definitions (indexes, aliases, synonym maps, indexers, data sources, and skillsets). This role is for developers who create objects, and for administrators who manage a search service and its objects, but without access to index content. Use this role to create, delete, and list indexes, get index definitions, get service information (statistics and quotas), test analyzers, create and manage synonym maps, indexers, data sources, and skillsets. See [`Microsoft.Search/searchServices/*`](../role-based-access-control/resource-provider-operations.md#microsoftsearch) for the permissions list. |
41+
| [Search Index Data Contributor](../role-based-access-control/built-in-roles.md#search-index-data-contributor) | Data | Read-write access to content in indexes. This role is for developers or index owners who need to import, refresh, or query the documents collection of an index. This role doesn't support index creation or management. By default, this role is for all indexes on a search service. See [Grant access to a single index](#grant-access-to-a-single-index) to narrow the scope. |
42+
| [Search Index Data Reader](../role-based-access-control/built-in-roles.md#search-index-data-reader) | Data | Read-only access for querying search indexes. This role is for apps and users who run queries. This role doesn't support read access to object definitions. For example, you can't read a search index definition or get search service statistics. By default, this role is for all indexes on a search service. See [Grant access to a single index](#grant-access-to-a-single-index) to narrow the scope. |
4343

4444
> [!NOTE]
45-
> If you disable Azure role-based access, built-in roles for the control plane (Owner, Contributor, Reader) continue to be available. Disabling Azure RBAC removes just the data-related permissions associated with those roles. In a disabled-RBAC scenario, Search Service Contributor is equivalent to control-plane Contributor.
45+
> If you disable Azure role-based access, built-in roles for the control plane (Owner, Contributor, Reader) continue to be available. Disabling role-based access removes just the data-related permissions associated with those roles. If data plane roles are disabled, Search Service Contributor is equivalent to control-plane Contributor.
4646
4747
## Limitations
4848

@@ -193,11 +193,11 @@ Make sure that you [register your client application with Microsoft Entra ID](se
193193

194194
1. On the Overview page, select the **Indexes** tab:
195195

196-
+ Contributors can view and create any object, but can't query an index using Search Explorer.
196+
+ Search Service Contributors can view and create any object, but can't load documents or query an index. To verify permissions, [create a search index](search-how-to-create-search-index.md#create-an-index).
197197

198-
+ Search Index Data Readers can use Search Explorer to query the index. You can use any API version to check for access. You should be able to send queries and view results, but you shouldn't be able to view the index definition.
198+
+ Search Index Data Contributors can load and query documents. To verify permissions, use [Search explorer](search-explorer.md) to query documents. There's no load documents option in the portal outside of Import data wizard. Because the wizard also creates objects, you would need Search Service Contributor, plus Search Index Data Contributor.
199199

200-
+ Search Service Contributors can select **New Index** to create a new index. Saving a new index verifies write access on the service.
200+
+ Search Index Data Readers can query the index. To verify permissions, use [Search explorer](search-explorer.md). You should be able to send queries and view results, but you shouldn't be able to view the index definition.
201201

202202
### [**REST API**](#tab/test-rest)
203203

@@ -253,10 +253,6 @@ For more information on how to acquire a token for a specific environment, see [
253253

254254
1. Use [Azure.Identity for .NET](/dotnet/api/overview/azure/identity-readme) for token authentication. Microsoft recommends [`DefaultAzureCredential()`](/dotnet/api/azure.identity.defaultazurecredential) for most scenarios.
255255

256-
+ When obtaining the OAuth token, the scope is "https://search.azure.com/.default". The SDK requires the audience to be "https://search.azure.com". The ".default" is a Microsoft Entra convention.
257-
258-
+ The SDK validates that the user has the "user_impersonation" scope, which must be granted by your app, but the SDK itself just asks for "https://search.azure.com/.default".
259-
260256
1. Here's an example of a client connection using `DefaultAzureCredential()`.
261257

262258
```csharp
@@ -362,7 +358,7 @@ The portal doesn't currently support role assignments at this level of granulari
362358

363359
In PowerShell, use [New-AzRoleAssignment](/powershell/module/az.resources/new-azroleassignment), providing the Azure user or group name, and the scope of the assignment.
364360

365-
1. Load the Azure and AzureAD modules and connect to your Azure account:
361+
1. Load the `Azure` and `AzureAD` modules and connect to your Azure account:
366362

367363
```powershell
368364
Import-Module -Name Az
@@ -419,7 +415,7 @@ These steps create a custom role that augments search query rights to include li
419415
"roleName": "search index data explorer",
420416
"description": "",
421417
"assignableScopes": [
422-
"/subscriptions/a5b1ca8b-bab3-4c26-aebe-4cf7ec4791a0/resourceGroups/heidist-free-search-svc/providers/Microsoft.Search/searchServices/demo-search-svc"
418+
"/subscriptions/0000000000000000000000000000000/resourceGroups/free-search-svc/providers/Microsoft.Search/searchServices/demo-search-svc"
423419
],
424420
"permissions": [
425421
{
@@ -548,17 +544,17 @@ To re-enable key authentication, rerun the last request, setting "disableLocalAu
548544

549545
## Conditional Access
550546

551-
[Conditional Access](../active-directory/conditional-access/overview.md) is a tool in Microsoft Entra ID used to enforce organizational policies. By using Conditional Access policies, you can apply the right access controls when needed to keep your organization secure. When accessing an Azure AI Search service using role-based access control, Conditional Access can enforce organizational policies.
547+
We recommend [Microsoft Entra Conditional Access](/entra/identity/conditional-access/overview) if you need to enforce organizational policies, such as multifactor authentication.
552548

553-
To enable a Conditional Access policy for Azure AI Search, follow the below steps:
549+
To enable a Conditional Access policy for Azure AI Search, follow these steps:
554550

555551
1. [Sign in](https://portal.azure.com) to the Azure portal.
556552
557553
1. Search for **Microsoft Entra Conditional Access**.
558554

559555
1. Select **Policies**.
560556

561-
1. Select **+ New policy**.
557+
1. Select **New policy**.
562558

563559
1. In the **Cloud apps or actions** section of the policy, add **Azure AI Search** as a cloud app depending on how you want to set up your policy.
564560

articles/search/search-what-is-azure-search.md

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Azure AI Search is well suited for the following application scenarios:
5555

5656
+ Use it for traditional full text search and next-generation vector similarity search. Back your generative AI apps with information retrieval that leverages the strength of keyword and similarity search. Use both modalities to retrieve the most relevant results.
5757

58-
+ Consolidate heterogeneous content into a user-defined and populated search index composed of vectors and text. You own and control what's searchable.
58+
+ Consolidate heterogeneous content into a user-defined and populated search index composed of vectors and text. You maintain ownership and control over what's searchable.
5959

6060
+ [Integrate data chunking and vectorization](vector-search-integrated-vectorization.md) for generative AI and RAG apps.
6161

@@ -109,18 +109,10 @@ Customers often ask how Azure AI Search compares with other search-related solut
109109

110110
Key strengths include:
111111

112-
+ Store, index, and search vector embeddings for sentences, images, graphs, and more.
113-
+ Find information that’s semantically similar to search queries, even if the search terms aren’t exact matches.
114-
+ Use hybrid search for the best of keyword and vector search.
115-
+ Relevance tuning through semantic ranking and scoring profiles.
116-
+ Data integration (crawlers) at the indexing layer.
112+
+ Support for vector and nonvector (text) indexing and queries. With vector similarity search, you can find information that’s semantically similar to search queries, even if the search terms aren’t exact matches. Use hybrid search for the best of keyword and vector search.
113+
+ Ranking and relevance tuning through semantic ranking and scoring profiles. Query syntax supports term boosting and field prioritization.
114+
+ Azure data integration (crawlers) at the indexing layer.
117115
+ Azure AI integration for transformations that make content text and vector searchable.
118116
+ Microsoft Entra security for trusted connections, and Azure Private Link for private connections in no-internet scenarios.
119117
+ [Full search experience](search-features-list.md): Linguistic and custom text analysis in 56 languages. Faceting, autocomplete queries and suggested results, and synonyms.
120118
+ Azure scale, reliability, and global reach.
121-
122-
<!-- ## Watch this video
123-
124-
In this 15-minute video, review the main capabilities of Azure AI Search.
125-
126-
>[!VIDEO https://www.youtube.com/embed/kOJU0YZodVk?version=3] -->

0 commit comments

Comments
 (0)