How Should Apps Access Foundry and Select a Deployment?
Short answer
Use Microsoft Entra ID authentication with a managed identity for each app, and include the deployment name in the REST API URL to select the optimized GPT-3.5 deployment.
Question
You have a Microsoft Foundry resource named AI1 that hosts three deployments of the GPT 3.5 model. Each deployment is optimized for a unique workload.
You plan to deploy three apps. Each app will access AI1 by using the REST API and will use the deployment that was optimized for the app’s intended workload.
You need to provide each app with access to AI1 and the appropriate deployment. The solution must ensure that only the apps can access AI1.
What should you use to provide access to AI1, and what should each app use to connect to its appropriate deployment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.

Key Takeaways
Tests identity-based access versus a shared resource key and REST deployment routing; the trap is choosing an API key when the requirement is to restrict callers to the apps themselves.
This AI-103 hotspot asks how three REST API apps should authenticate to a Microsoft Foundry resource and route to separate GPT-3.5 deployments. The page establishes that per-app identity-based access plus the deployment name satisfies the 'only the apps' constraint.
Common mistake: Picking an API key because it is the familiar Azure OpenAI REST credential, but a resource-level key cannot ensure that only the three apps can access AI1.
Expert Analysis
Why the Answer Is Correct
The security constraint "only the apps can access AI1" is an identity requirement, not a key-sharing requirement. In Foundry and Azure AI services, each app can use its own managed identity or service principal, and you grant that identity the appropriate role on AI1, such as Cognitive Services OpenAI User. The REST call then uses the resource endpoint plus the deployment name; the deployment name is the path segment that selects one of the three GPT-3.5 deployments. This gives each app a distinct security principal while still letting all apps call the same Foundry resource.
Why Other Candidate Answers Are Wrong
An API key authenticates at the resource level and is shared by any caller that possesses it, so it cannot enforce "only the apps" if the key leaks or is copied into another app. The GPT-3.5 model name is identical for all three deployments, so it cannot route each app to its optimized deployment. The endpoint or API version identifies the service and contract, not the specific deployment. Only the deployment name distinguishes the three tuned deployments within AI1.
Community Comment Notes
Az301301X and rokoskycloud both lean toward an API key plus a deployment name; rokoskycloud correctly explains that "The deployment name is a path segment in the request URL." The routing half of that answer is right, and the note that multiple tuned deployments can share the same underlying model is useful. However, the access half conflicts with the "only the apps" security wording, which points to per-app identity rather than a shared resource key. A separate comment about a reflection pass belongs to a different scenario and does not address this Foundry access question.
Official Reference
- https://learn.microsoft.com/en-us/azure/ai-services/authentication
- https://learn.microsoft.com/en-us/azure/ai-services/openai/reference
These links open the official vendor documentation in a new tab.
Exam Strategy
Read the security constraint separately from the routing requirement: "only the apps" points to identity-based auth, while "appropriate deployment" points to the deployment name. In REST calls, remember the deployment name is part of the URL path, not the model display name.
Frequently Asked Questions
Why not use one API key for all three apps to access AI1?
How does each app reach its own GPT-3.5 deployment in Foundry?
Discussion 3 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 3
-
Az301301X 👍 3Provide access to AI1 by using: An API key Connect to the deployment by using: A deployment name
-
AngusSzarpidrut 👍 1Correct Answer: A — Add a reflection pass before the responses are returned. Why (from Microsoft Learn): • A reflection pass means having the application ask the model to re-check its own draft answer against the retrieved source material for gaps or missing points before the final response is sent back to the user — this is exactly an application-code-level check that can catch and fix incomplete summaries, matching "implemented in the logic of the application code." • Response streaming (B) only changes how the text is delivered to the client (in chunks vs. all at once); it doesn't make the content itself more complete. • Increasing presence_penalty (C) discourages the model from repeating the same tokens/topics, which can actually reduce coverage of a topic rather than improve completeness. • Decreasing max_tokens (D) directly caps how much the model is allowed to write, which would make responses shorter and less complete, the opposite of what's needed here.
-
rokoskycloud 👍 1Provide access to AI1 by using: An API key | It says three apps call a REST API. Connect to the deployment by using: A deployment name | The deployment name is a path segment in the request URL. That's what routes each app to its own tuned deployment of the same underlying model.
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.
Related Analysis
Practice All AI-103 Questions
Access 88 questions with complete answers and detailed explanations.
View Full AI-103 Practice Test →