- A
Use ADAL.NET's `AcquireTokenOnBehalfOf` method
Why wrong: ADAL.NET is deprecated in favor of MSAL.NET and Microsoft.Identity.Web. While it can technically work, the modern and recommended approach is to use Microsoft.Identity.Web.
- B
Inject `ITokenAcquisition` and call `GetAccessTokenForUserAsync` with the scopes for the downstream API
`ITokenAcquisition` from Microsoft.Identity.Web wraps MSAL.NET. `GetAccessTokenForUserAsync` performs the On-Behalf-Of flow, exchanging the user's token for a token to call the downstream API.
- C
Use the `Azure.Identity` library with `DefaultAzureCredential` to acquire a token
Why wrong: `DefaultAzureCredential` supports managed identity, Azure CLI, etc., but does not support the On-Behalf-Of flow to act on behalf of a user. It is used for service principal authentication.
- D
Manually construct an HTTP POST to the Microsoft Entra ID token endpoint with the user access token and client credentials
Why wrong: While possible, this approach requires handling token caching, errors, and validation manually. Microsoft.Identity.Web abstracts all this complexity and is the recommended method.
Quick Answer
The correct answer is to inject `ITokenAcquisition` and call `GetAccessTokenForUserAsync` with the scopes for the downstream API. This is because Microsoft.Identity.Web handles the entire on-behalf-of flow implementation in ASP.NET Core by automatically exchanging the incoming user token for a new token targeting the downstream API, using the client credentials you have already configured. On the AZ-204 exam, this scenario tests your understanding of how to securely chain API calls while preserving the original user’s identity—a common requirement in multi-tier Azure architectures. A frequent trap is trying to manually craft the token exchange with raw HTTP calls or using `AcquireTokenOnBehalfOf` from MSAL directly, which adds unnecessary complexity and breaks the seamless integration Microsoft.Identity.Web provides. Remember the pattern: for downstream calls, always reach for `ITokenAcquisition` and `GetAccessTokenForUserAsync`—think of it as the “OBO shortcut” that keeps your code clean and your tokens fresh.
AZ-204 Implement Azure security Practice Question
This AZ-204 practice question tests your understanding of implement azure security. This is a configuration task: choose the command set that satisfies every stated requirement. Small differences — like 'secret' vs 'password' or 'transport input ssh' vs 'all' — change whether the answer is correct. A key principle to apply: iTokenAcquisition is part of Microsoft.Identity.Web for token acquisition.. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
You are developing an ASP.NET Core web API that authenticates users via Microsoft Entra ID. The API needs to call a downstream API (also secured by Microsoft Entra ID) on behalf of the signed-in user (On-Behalf-Of flow). You have already configured the web API to authenticate users with Microsoft.Identity.Web. How should you implement the token acquisition for the downstream API?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
Inject `ITokenAcquisition` and call `GetAccessTokenForUserAsync` with the scopes for the downstream API
Option B is correct because Microsoft.Identity.Web provides the `ITokenAcquisition` service specifically for ASP.NET Core applications to acquire tokens for downstream APIs using the OAuth 2.0 On-Behalf-Of flow. Calling `GetAccessTokenForUserAsync` with the required scopes handles the token exchange automatically, leveraging the incoming user token and client credentials configured in the app. This is the recommended approach when using Microsoft.Identity.Web, as it abstracts the complexity of the OBO flow and integrates seamlessly with the ASP.NET Core authentication pipeline.
Key principle: ITokenAcquisition is part of Microsoft.Identity.Web for token acquisition.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Use ADAL.NET's `AcquireTokenOnBehalfOf` method
Why it's wrong here
ADAL.NET is deprecated in favor of MSAL.NET and Microsoft.Identity.Web. While it can technically work, the modern and recommended approach is to use Microsoft.Identity.Web.
- ✓
Inject `ITokenAcquisition` and call `GetAccessTokenForUserAsync` with the scopes for the downstream API
Why this is correct
`ITokenAcquisition` from Microsoft.Identity.Web wraps MSAL.NET. `GetAccessTokenForUserAsync` performs the On-Behalf-Of flow, exchanging the user's token for a token to call the downstream API.
Related concept
ITokenAcquisition is part of Microsoft.Identity.Web for token acquisition.
- ✗
Use the `Azure.Identity` library with `DefaultAzureCredential` to acquire a token
Why it's wrong here
`DefaultAzureCredential` supports managed identity, Azure CLI, etc., but does not support the On-Behalf-Of flow to act on behalf of a user. It is used for service principal authentication.
- ✗
Manually construct an HTTP POST to the Microsoft Entra ID token endpoint with the user access token and client credentials
Why it's wrong here
While possible, this approach requires handling token caching, errors, and validation manually. Microsoft.Identity.Web abstracts all this complexity and is the recommended method.
Common exam traps
Common exam trap: answer the scenario, not the keyword
The trap here is that candidates may confuse the On-Behalf-Of flow with client credentials flow or app-only authentication, leading them to choose `DefaultAzureCredential` (Option C) or manual token endpoint calls (Option D), while forgetting that ADAL.NET (Option A) is deprecated and not part of the modern Microsoft.Identity.Web stack.
Detailed technical explanation
How to think about this question
The On-Behalf-Of flow uses the OAuth 2.0 token exchange grant (RFC 8693), where the web API receives a user token and exchanges it for a new token scoped to the downstream API. Under the hood, `GetAccessTokenForUserAsync` calls MSAL.NET's `AcquireTokenOnBehalfOf`, which caches tokens per user and handles token refresh automatically. A real-world scenario where this matters is in multi-tier applications, such as an API gateway calling a backend service, where the user's identity must be preserved for authorization decisions.
KKey Concepts to Remember
- ITokenAcquisition is part of Microsoft.Identity.Web for token acquisition.
- GetAccessTokenForUserAsync performs the On-Behalf-Of (OBO) flow.
- OBO flow exchanges a user's token for a downstream API token.
- Microsoft.Identity.Web abstracts MSAL.NET for simplified token management.
TExam Day Tips
- Watch for words such as best, first, most likely and least administrative effort.
- Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
ITokenAcquisition is part of Microsoft.Identity.Web for token acquisition.
Real-world example
How this comes up in practice
A company's IT admin needs to give a contractor read-only access to production logs without sharing account credentials. Using role-based access control (RBAC) and temporary scoped permissions — not a permanent shared password — is the correct pattern. Questions like this test whether you can apply least-privilege access across cloud identity services.
What to study next
Got this wrong? Here's your next step.
Review iTokenAcquisition is part of Microsoft.Identity.Web for token acquisition., then practise related AZ-204 questions on the same topic to reinforce the concept.
- →
Implement Azure security — study guide chapter
Learn the concepts, then practise the questions
- →
Implement Azure security practice questions
Targeted practice on this topic area only
- →
All AZ-204 questions
997 questions across all exam domains
- →
Microsoft Azure Developer Associate AZ-204 study guide
Full concept coverage aligned to exam objectives
- →
AZ-204 practice test guide
How to use practice tests most effectively before exam day
Related practice questions
Related AZ-204 practice-question pages
Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.
Develop Azure compute solutions practice questions
Practise AZ-204 questions linked to Develop Azure compute solutions.
Develop for Azure storage practice questions
Practise AZ-204 questions linked to Develop for Azure storage.
Implement Azure security practice questions
Practise AZ-204 questions linked to Implement Azure security.
Connect to and consume Azure services and third-party services practice questions
Practise AZ-204 questions linked to Connect to and consume Azure services and third-party services.
Monitor, troubleshoot, and optimize Azure solutions practice questions
Practise AZ-204 questions linked to Monitor, troubleshoot, and optimize Azure solutions.
AZ-204 fundamentals practice questions
Practise AZ-204 questions linked to AZ-204 fundamentals.
AZ-204 scenario practice questions
Practise AZ-204 questions linked to AZ-204 scenario.
AZ-204 troubleshooting practice questions
Practise AZ-204 questions linked to AZ-204 troubleshooting.
Practice this exam
Start a free AZ-204 practice session
Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.
FAQ
Questions learners often ask
What does this AZ-204 question test?
Implement Azure security — This question tests Implement Azure security — ITokenAcquisition is part of Microsoft.Identity.Web for token acquisition..
What is the correct answer to this question?
The correct answer is: Inject `ITokenAcquisition` and call `GetAccessTokenForUserAsync` with the scopes for the downstream API — Option B is correct because Microsoft.Identity.Web provides the `ITokenAcquisition` service specifically for ASP.NET Core applications to acquire tokens for downstream APIs using the OAuth 2.0 On-Behalf-Of flow. Calling `GetAccessTokenForUserAsync` with the required scopes handles the token exchange automatically, leveraging the incoming user token and client credentials configured in the app. This is the recommended approach when using Microsoft.Identity.Web, as it abstracts the complexity of the OBO flow and integrates seamlessly with the ASP.NET Core authentication pipeline.
What should I do if I get this AZ-204 question wrong?
Review iTokenAcquisition is part of Microsoft.Identity.Web for token acquisition., then practise related AZ-204 questions on the same topic to reinforce the concept.
What is the key concept behind this question?
ITokenAcquisition is part of Microsoft.Identity.Web for token acquisition.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
Keep practising
More AZ-204 practice questions
- An app must store relational state and perform transactions across multiple tables with T-SQL support. Which Azure data…
- You are monitoring an Azure App Service using Application Insights. You notice that the server response time is high for…
- Which TWO services can be used to implement a publish-subscribe messaging pattern in Azure?
- You need to monitor the CPU utilization of an Azure VM in real-time and set up an alert when it exceeds 90%. Which Azure…
- You are monitoring an Azure web application with Application Insights. You notice a sudden increase in the number of fai…
- You are monitoring an Azure web app using Application Insights. You need to create a query that returns the average dura…
Last reviewed: Jun 11, 2026
This AZ-204 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the AZ-204 exam.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.