Question 942 of 997
Implement Azure securityhardMultiple ChoiceObjective-mapped

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?

Question 1hardmultiple choice
Full question →

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.

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.

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 →

How Courseiva writes practice questions · Editorial policy

Last reviewed: Jun 11, 2026

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.

Loading comments…

Sign in to join the discussion.

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.