Skip to content

Commit f50033b

Browse files
committed
Reduce H2s
1 parent a61ecac commit f50033b

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

articles/search/search-security-rbac.md

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ author: HeidiSteen
88
ms.author: heidist
99
ms.service: cognitive-search
1010
ms.topic: how-to
11-
ms.date: 05/21/2024
11+
ms.date: 05/22/2024
1212
ms.custom:
1313
- subject-rbac-steps
1414
- references_regions
@@ -22,7 +22,7 @@ Azure provides a global [role-based access control authorization system](../role
2222
> + [Service administration](#assign-roles-for-service-administration)
2323
> + [Development or write-access to a search service](#assign-roles-for-development)
2424
> + [Read-only access for queries](#assign-roles-for-read-only-queries)
25-
> + [Custom access to a single index](#grant-access-to-a-single-index)
25+
> + [Scoped access to a single index](#grant-access-to-a-single-index)
2626
2727
Per-user access over search results (sometimes referred to as *row-level security* or *document-level security*) isn't supported through role assignments. 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. See this [Enterprise chat sample using RAG](/azure/developer/python/get-started-app-chat-template) for a demonstration.
2828

@@ -38,13 +38,13 @@ Role-based access is optional, but recommended. The alternative is [key-based au
3838

3939
## Limitations
4040

41-
+ Role-based access control can increase the latency of some requests. Each unique combination of service resource (index, indexer, etc.) and service principal used on a request triggers an authorization check. These authorization checks can add up to 200 milliseconds of latency to a request.
41+
+ Role-based access control can increase the latency of some requests. Each unique combination of service resource (index, indexer, etc.) and service principal triggers an authorization check. These authorization checks can add up to 200 milliseconds of latency per request.
4242

4343
+ In rare cases where requests originate from a high number of different service principals, all targeting different service resources (indexes, indexers, etc.), it's possible for the authorization checks to result in throttling. Throttling would only happen if hundreds of unique combinations of search service resource and service principal were used within a second.
4444

4545
## Enable role-based access for data plane operations
4646

47-
Role-based access control for service administration (control plane) is mandatory. Roles for data plane operations are optional. You must enable role-based access before you can assign Search Service Contributor, Search Index Data Contributor, or Search Index Data Reader roles.
47+
Roles for service administration (control plane) is mandatory. Roles for data plane operations are optional. You must enable role-based access before you can assign Search Service Contributor, Search Index Data Contributor, or Search Index Data Reader roles for data operations.
4848

4949
In this step, configure your search service to recognize an **authorization** header on data plane requests that provide an OAuth2 access token.
5050

@@ -110,7 +110,7 @@ When you enable role-based access control, the failure mode is "http401WithBeare
110110
111111
<a name = "built-in-roles-used-in-search"></a>
112112
113-
## Built-in role reference
113+
## Built-in roles used in Azure AI Search
114114
115115
The following roles are built in. If these roles are insufficient, [create a custom role](#create-a-custom-role).
116116
@@ -126,11 +126,19 @@ The following roles are built in. If these roles are insufficient, [create a cus
126126
> [!NOTE]
127127
> 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.
128128
129-
## Assign roles for service administration
129+
## Assign roles
130+
131+
In this section, assign roles for:
132+
133+
+ [Service administration](#assign-roles-for-service-administration)
134+
+ [Development or write-access to a search service](#assign-roles-for-development)
135+
+ [Read-only access for queries](#assign-roles-for-read-only-queries)
136+
137+
### Assign roles for service administration
130138
131139
As a service administrator, you can create and configure a search service, and perform all control plane operations described in the [Management REST API](/rest/api/searchmanagement/) or equivalent client libraries. Depending on the role, you can also perform most data plane [Search REST API](/rest/api/searchservice/) tasks.
132140
133-
### [**Azure portal**](#tab/roles-portal-admin)
141+
#### [**Azure portal**](#tab/roles-portal-admin)
134142
135143
1. Sign in to the [Azure portal](https://portal.azure.com).
136144
@@ -150,7 +158,7 @@ As a service administrator, you can create and configure a search service, and p
150158
151159
1. On the **Review + assign** tab, select **Review + assign** to assign the role.
152160
153-
### [**PowerShell**](#tab/roles-powershell-admin)
161+
#### [**PowerShell**](#tab/roles-powershell-admin)
154162
155163
When you [use PowerShell to assign roles](../role-based-access-control/role-assignments-powershell.md), call [New-AzRoleAssignment](/powershell/module/az.resources/new-azroleassignment), providing the Azure user or group name, and the scope of the assignment.
156164
@@ -164,14 +172,14 @@ New-AzRoleAssignment -SignInName <email> `
164172

165173
---
166174

167-
## Assign roles for development
175+
### Assign roles for development
168176

169177
Role assignments are global across the search service. To [scope permissions to a single index](#rbac-single-index), use PowerShell or the Azure CLI to create a custom role.
170178

171179
> [!IMPORTANT]
172180
> If you configure role-based access for a service or index and you also provide an API key on the request, the search service uses the API key to authenticate.
173181
174-
### [**Azure portal**](#tab/roles-portal)
182+
#### [**Azure portal**](#tab/roles-portal)
175183

176184
1. Sign in to the [Azure portal](https://portal.azure.com).
177185

@@ -195,7 +203,7 @@ Role assignments are global across the search service. To [scope permissions to
195203

196204
1. Repeat for the other roles. Most developers need all three.
197205

198-
### [**PowerShell**](#tab/roles-powershell)
206+
#### [**PowerShell**](#tab/roles-powershell)
199207

200208
When you [use PowerShell to assign roles](../role-based-access-control/role-assignments-powershell.md), call [New-AzRoleAssignment](/powershell/module/az.resources/new-azroleassignment), providing the Azure user or group name, and the scope of the assignment.
201209

@@ -217,13 +225,13 @@ New-AzRoleAssignment -SignInName <email> `
217225

218226
---
219227

220-
## Assign roles for read-only queries
228+
### Assign roles for read-only queries
221229

222230
Use the Search Index Data Reader role for apps and processes that only need read-access to an index. This is a very specific role. It grants [GET or POST access](/rest/api/searchservice/documents) to the *documents collection of a search index* for search, autocomplete, and suggestions.
223231

224232
It doesn't support GET or LIST operations on an index or other top-level objects, or GET service statistics.
225233

226-
### [**Azure portal**](#tab/roles-portal-query)
234+
#### [**Azure portal**](#tab/roles-portal-query)
227235

228236
1. Sign in to the [Azure portal](https://portal.azure.com).
229237

@@ -239,7 +247,7 @@ It doesn't support GET or LIST operations on an index or other top-level objects
239247

240248
1. On the **Review + assign** tab, select **Review + assign** to assign the role.
241249

242-
### [**PowerShell**](#tab/roles-powershell-query)
250+
#### [**PowerShell**](#tab/roles-powershell-query)
243251

244252
When [using PowerShell to assign roles](../role-based-access-control/role-assignments-powershell.md), call [New-AzRoleAssignment](/powershell/module/az.resources/new-azroleassignment), providing the Azure user or group name, and the scope of the assignment.
245253

@@ -275,7 +283,7 @@ When [using PowerShell to assign roles](../role-based-access-control/role-assign
275283
276284
## Test role assignments
277285
278-
Use a client to test role assignments. Remember that roles are cumulative and inherited roles that are scoped to the subscription or resource group can't be deleted or denied at the resource (search service) level.
286+
Use a client to test role assignments. Remember that roles are cumulative and inherited roles that are scoped to the subscription or resource group level can't be deleted or denied at the resource (search service) level.
279287
280288
Make sure that you [register your client application with Microsoft Entra ID](search-howto-aad.md) and have role assignments in place before testing access.
281289
@@ -590,7 +598,7 @@ The PowerShell example shows the JSON syntax for creating a custom role that's a
590598

591599
## Disable API key authentication
592600

593-
Key access, or local authentication, can be disabled on your service if you're using the Search Service Contributor, Search Index Data Contributor, and Search Index Data Reader roles and Microsoft Entra authentication. Disabling API keys causes the search service to refuse all data-related requests that pass an API key in the header.
601+
Key access, or local authentication, can be disabled on your service if you're using the built-in roles and Microsoft Entra authentication. Disabling API keys causes the search service to refuse all data-related requests that pass an API key in the header.
594602

595603
> [!NOTE]
596604
> Admin API keys can only be disabled, not deleted. Query API keys can be deleted.

0 commit comments

Comments
 (0)