This tutorial series uses the 2026-05-01-preview REST API for agentic retrieval. The 2026-05-01-preview is licensed to you as part of your Azure subscription and is subject to the terms applicable to “Previews” in the Microsoft Product Terms, the Microsoft Products and Services Data Protection Addendum (“DPA”), and the Supplemental Terms of Use for Microsoft Azure Previews.
Prerequisites
- Completion of Set up private inbound connectivity.
-
Additional account access for part two actions:
-
ContributororOwneron the Azure AI Search service to create shared private links. -
ContributororOwneron the Azure Storage account and Foundry resource to approve target-side private endpoint connections. -
Owner,User Access Administrator, orRole Based Access Control Administratorat scopes where you create role assignments to grant runtime access to the search managed identity.
-
- Role-based access control and a system-assigned managed identity enabled on the Azure AI Search service.
Create shared private links
Create shared private links on Azure AI Search so the search service can initiate the required outbound access to each target. In part three of the tutorial, you create a knowledge source that reads blob content from the Azure Storage account and calls an embedding model deployment on the Foundry resource to vectorize that content. The blob read uses the Azure Storage shared private link. The Foundry shared private link is still required for the target resource relationship, but the ingestion-time embedding call described in part three currently also relies on the Foundry resource’s trusted-service bypass. To create the shared private links:-
Review existing shared private links.
-
Create the Azure Blob Storage shared private link.
-
Create the Foundry resource shared private link.
-
The
az search shared-private-link-resource createcommand can rejectopenai_account, even when the search service accepts the resource through the Search Management REST API. Use theaz restapproach shown here to avoid validation errors. -
This shared private link uses
openai_accountbecause Azure AI Search reaches model inference on the Foundry resource through the Azure OpenAI endpoint type.
Leave the Foundry resource’s Allow Azure services on the trusted services list setting enabled for this tutorial. The
openai_account shared private link doesn’t currently carry the ingestion-time embedding call from Azure AI Search to Foundry. If you disable the trusted-service bypass (networkAcls.bypass = AzureServices), knowledge source ingestion can fail with 403 Public access is disabled, even when the shared private link and private endpoints are approved.Approve private endpoint connections
Shared private links define intent, but target-side approvals establish the trust boundaries that allow traffic to flow. In this section, you approve each corresponding private endpoint connection on Azure Storage and Foundry to authorize outbound access. To approve the private endpoint connection for each target resource:-
List private endpoint connections on
<storage-account-name>, and then copy the name of thePendingconnection to use as<storage-connection-name>in the next step. -
Approve the Azure Blob Storage private endpoint connection.
-
List private endpoint connections on
<foundry-resource-name>, and then copy the name of thePendingconnection to use as<foundry-connection-name>in the next step. This connection can take a minute or two to appear after you create the shared private link, so if the list is empty, wait briefly, and then run the command again. -
Approve the Foundry resource private endpoint connection.
If the connection name is returned in the
<foundry-resource-name>/<connection-name>format, use only the portion after the slash as<foundry-connection-name>. -
Verify that the specific shared private links you created on Azure AI Search have an
Approvedstate.The rows forspl-blob-private-retrievalandspl-foundry-private-retrievalshould showApproved.
Assign managed identity roles
After you approve private links, assign RBAC roles to the Azure AI Search managed identity so runtime calls in part three of the tutorial can access blob content and model endpoints. Private networking controls path access, while RBAC controls data and model authorization. To assign roles to the Azure AI Search managed identity:-
Get the Azure AI Search managed identity’s object ID to use as
<search-mi-object-id>in the following commands. -
Assign the
Storage Blob Data Readerrole to the Azure AI Search managed identity at the storage account scope. This role is required so Azure AI Search can read blob content during ingestion and retrieval. -
Assign the
Cognitive Services Userrole to the Azure AI Search managed identity at the Foundry resource scope. This role is required so Azure AI Search can call model inference endpoints on the Foundry resource. -
Verify that both role assignments were created successfully.
You should see the
Storage Blob Data ReaderandCognitive Services Userroles listed.
Troubleshooting
Outbound private retrieval works only when shared private link creation, target approval, and RBAC authorization align. Use the following table to isolate which control layer is failing so you can correct the specific dependency boundary before end-to-end validation.Learn more
For more information about the topics covered in this part of the tutorial, see the following articles:- Make outbound connections through a shared private link
- Manage Azure private endpoints
- Configure a search service to use managed identities
- Connect to Azure AI Search using Azure roles
- Assign Azure roles using Azure CLI