You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/search/search-query-access-control-rbac-enforcement.md
+25-4Lines changed: 25 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,15 +43,36 @@ Azure AI Search dynamically constructs security filters based on the user permis
43
43
44
44
For Azure RBAC, permissions are list of resource ID strings, and there must an Azure role assignment (Storage Blob Data Reader) on the data the source that grants access to the security principal token in the authorization header. The filter excludes documents if there's no role assignment for the principal behind the access token on the request.
45
45
46
-
### 3. Results filtering
46
+
### 3. Results filtering
47
+
47
48
The security filter efficiently matches the userIds, groupIds, and rbacScope from the user against each list of ACLs in every document in the search index to limit the results returned to ones the user has access to. It's important to note that each filter is applied independently and a document is considered authorized if any filter succeeds. For example, if a user has access to a document through userIds but not through groupIds, the document is still considered valid and returned to the user.
48
49
49
50
## Limitations
51
+
50
52
- If ACL evaluation fails (for example, Graph API is unavailable), the service returns **5xx** and does **not** return a partially filtered result set.
51
53
- Document visibility requires both:
52
54
- the calling application’s RBAC role (Authorization header), and
53
55
- the user identity carried by **x-ms-query-source-authorization**.
54
56
55
-
## Next steps
56
-
*[How to Index Permission Information](tutorial-adls-gen2-indexer-acls.md) provides a detailed walkthrough of how to set up an index with ACLs using Azure Search indexers.
57
-
*[Indexing ACLs and RBAC using Push API in Azure AI Search](search-index-access-control-lists-and-rbac-push-api.md) provides a walkthrough of how to set up an index with ACLs using the push API.
57
+
## Query example
58
+
59
+
Here's an example of a query request. The query token is passed in the request header.
60
+
61
+
```http
62
+
POST {{endpoint}}/indexes/stateparks/docs/search?api-version=2025-05-01-preview
63
+
Authorization: Bearer {{search-token}}
64
+
x-ms-query-source-authorization: {{search-token}}
65
+
Content-Type: application/json
66
+
67
+
{
68
+
"search": "*",
69
+
"select": "name,description,location,GroupIds",
70
+
"orderby": "name asc"
71
+
}
72
+
```
73
+
74
+
## Related content
75
+
76
+
-[Tutorial: Index ADLS Gen2 permission metadata](tutorial-adls-gen2-indexer-acls.md) provides a detailed walkthrough of how to set up an index with ACLs using Azure Search indexers.
77
+
78
+
-[Indexing ACLs and RBAC using Push API in Azure AI Search](search-index-access-control-lists-and-rbac-push-api.md) provides a walkthrough of how to set up an index with ACLs using the push indexing approach with the REST APIs.
Copy file name to clipboardExpand all lines: articles/search/service-configure-firewall.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -127,7 +127,7 @@ For ping, the request times out, but the IP address is visible in the response.
127
127
128
128
A banner informs you that IP rules affect the Azure portal experience. This banner remains visible even after you add the Azure portal's IP address. Remember to wait several minutes for network rules to take effect before testing.
129
129
130
-
:::image type="content" source="media/service-configure-firewall/restricted-access.png" alt-text="Screenshot showing the restricted access banner.":::
Copy file name to clipboardExpand all lines: articles/search/tutorial-adls-gen2-indexer-acls.md
+25-2Lines changed: 25 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ titleSuffix: Azure AI Search
4
4
description: Learn how to index Access Control Lists (ACLs) and Azure Role-Based Access Control (RBAC) scope from ADLS Gen2 and query with permission-filtered results in Azure AI Search.
5
5
ms.service: azure-ai-search
6
6
ms.topic: tutorial
7
-
ms.date: 05/08/2025
7
+
ms.date: 05/20/2025
8
8
author: wlifuture
9
9
ms.author: wli
10
10
---
@@ -26,7 +26,7 @@ In this tutorial, you learn how to:
26
26
> + Create and run an indexer to ingest permission information into an index from a data source
27
27
> + Search the index you just created
28
28
29
-
You need a REST client to complete this tutorial. There's no currently no support for ACL indexing in the Azure portal.
29
+
Use a REST client to complete this tutorial and the [2025-05-01-preview](/rest/api/searchservice/operation-groups?view=rest-searchservice-2025-05-01-preview&preserve-view=true) REST API. There's no currently no support for ACL indexing in the Azure portal.
30
30
31
31
## Prerequisites
32
32
@@ -181,3 +181,26 @@ Indexer configuration for permission ingestion is primarily about defining `fiel
181
181
```
182
182
183
183
After indexer creation and immediate run, the file content along with permission metadata information are indexed into the index.
184
+
185
+
## Run a query to check results
186
+
187
+
Now that documents are loaded, you can issue queries against them by using [Documents - Search Post (REST)](/rest/api/searchservice/documents/search-post).
188
+
189
+
The URI is extended to include a query input, which is specified by using the `/docs/search` operator. The query token is passed in the request header. For more information, see [Query-Time ACL and RBAC enforcement](search-query-access-control-rbac-enforcement.md).
190
+
191
+
```http
192
+
POST {{endpoint}}/indexes/stateparks/docs/search?api-version=2025-05-01-preview
0 commit comments