Skip to content

NullReferenceException is thrown when using DefaultTokenAcquisitionHost and trying to acquire a token #2394

@MZOLN

Description

@MZOLN

Microsoft.Identity.Web Library

Microsoft.Identity.Web

Microsoft.Identity.Web version

2.13.3

Web app

Sign-in users

Web API

Protected web APIs (validating tokens)

Token cache serialization

In-memory caches

Description

NRE thrown in the pasted stack.
The issue is that the defaultokenacquisitionhost returns a null redirecturi but msal assumes that it`s not null

Reproduction steps

Create console app
Call downstream api

Error message

System.NullReferenceException

HResult=0x80004003

Message=Object reference not set to an instance of an object.

Source=Microsoft.Identity.Web.TokenAcquisition

StackTrace:

at Microsoft.Identity.Web.MergedOptions.PrepareAuthorityInstanceForMsal() in /_/src/Microsoft.Identity.Web.TokenAcquisition/MergedOptions.cs:line 452

at Microsoft.Identity.Web.TokenAcquisition.BuildConfidentialClientApplication(MergedOptions mergedOptions) in /_/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs:line 580

at Microsoft.Identity.Web.TokenAcquisition.GetOrBuildConfidentialClientApplication(MergedOptions mergedOptions) in /_/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs:line 566

at Microsoft.Identity.Web.TokenAcquisition.d__14.MoveNext() in /_/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs:line 235

This exception was originally thrown at this call stack:

Microsoft.Identity.Web.MergedOptions.PrepareAuthorityInstanceForMsal() in MergedOptions.cs

Microsoft.Identity.Web.TokenAcquisition.BuildConfidentialClientApplication(Microsoft.Identity.Web.MergedOptions) in TokenAcquisition.cs

Microsoft.Identity.Web.TokenAcquisition.GetOrBuildConfidentialClientApplication(Microsoft.Identity.Web.MergedOptions) in TokenAcquisition.cs

Microsoft.Identity.Web.TokenAcquisition.GetAuthenticationResultForUserAsync(System.Collections.Generic.IEnumerable<string>, string, string, string, System.Security.Claims.ClaimsPrincipal, Microsoft.Identity.Web.TokenAcquisitionOptions) in TokenAcquisition.cs

Id Web logs

No response

Relevant code snippets

Run ConsoleApp2 on MISE repo

Regression

Id Web 2.13.3

Expected behavior

Token is acquired.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions