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-document-level-access-overview.md
+4-7Lines changed: 4 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,28 +20,25 @@ Azure AI Search supports document-level access control, enabling organizations t
20
20
| Approach | Description |
21
21
|----------|-------------|
22
22
| Security filters | String comparison. Your application passes in a user or group identity as a string, which populates a filter on a query, excluding any documents that don't match on the string. <br><br>Security filters are a technique for achieving document-level access control. This approach isn't bound to an API so you can use any version or package. |
23
-
| ACLs (preview) | Microsoft Entra ID security principal behind the query token is compared to the permission metadata of documents returned in search results, excluding any documents that don't match on permissions. |
24
-
25
-
> [!NOTE]
26
-
> Built-in access control list (ACL) support for principals is in preview, available in REST APIs and prerelease Azure SDK packages that provide the feature.
23
+
| ACLs (preview) | Microsoft Entra ID security principal behind the query token is compared to the permission metadata of documents returned in search results, excluding any documents that don't match on permissions. <br><br>Built-in access control list (ACL) support for principals is in preview, available in REST APIs and prerelease Azure SDK packages that provide the feature. |
27
24
28
25
## Pattern for security trimming using filters
29
26
30
-
For scenarios where native ACL integration isn't viable, we recommend security filters for trimming results based on exclusion criteria that includes identity tokens. The pattern includes the following components:
27
+
For scenarios where native ACL integration isn't viable, we recommend security filters for trimming results based on exclusion criteria. The pattern includes the following components:
31
28
32
29
- Create a string field in the index to store strings of user or group identities.
33
30
- Load the index with source documents that include a field containing the identities.
34
31
- Include a filter expression in your query logic for matching on the string.
35
32
- At query time, get the identity of the caller.
36
33
- Pass in the identity of the caller as the filter string.
37
34
38
-
You can use push or pull model APIs. Because this approach is API agnostic, you just need to ensure that the index and query have valid strings for the filtration step.
35
+
You can use push or pull model APIs. Because this approach is API agnostic, you just need to ensure that the index and query have valid strings (identities) for the filtration step.
39
36
40
37
This approach is useful for systems with custom access models or non-Microsoft security frameworks. For more information this approach, see [Security filters for trimming results in Azure AI Search](search-security-trimming-for-azure-search.md).
41
38
42
39
## Pattern for native support for POSIX-like ACL permissions (preview)
43
40
44
-
Native support is based on Microsoft Entra ID user and group access IDs affiliated with documents that you want to index. We recommend group access IDs for ease of management. The pattern includes the following components:
41
+
Native support is based on Microsoft Entra ID user and group access IDs affiliated with documents that you want to index and query. We recommend group access IDs for ease of management. The pattern includes the following components:
45
42
46
43
- Start with documents or files that have ACL assignments.
47
44
-[Enable permission filters](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2025-05-01-preview&preserve-view=true#searchindexpermissionfilteroption) in the index.
0 commit comments