Skip to content

[Bug] AadAuthority.IsCommonOrOrganizationsTenant should not compare against 'consumers' #5184

@ksaaf

Description

@ksaaf

Library version used

Latest

.NET version

NET 8

Scenario

ConfidentialClient - service to service (AcquireTokenForClient)

Is this a new or an existing app?

This is a new app or experiment

Issue description and reproduction steps

Currently, the AadAuthority.IsCommonOrOrganizationsTenant compares against /consumers as well when it should not.

Relevant code snippets

private static readonly ISet<string> s_tenantlessTenantNames = new HashSet<string>(
          new[]
          {
                Constants.CommonTenant,
                Constants.OrganizationsTenant,
                Constants.ConsumerTenant
          },
          StringComparer.OrdinalIgnoreCase);

        internal bool IsCommonOrOrganizationsTenant()
        {
            return IsCommonOrOrganizationsTenant(TenantId);
        }

        internal static bool IsCommonOrOrganizationsTenant(string tenantId)
        {
            return !string.IsNullOrEmpty(tenantId) && 
                s_tenantlessTenantNames.Contains(tenantId);
        }

Expected behavior

  • AadAuthority.IsCommonOrOrganizationsTenantshould not compare against/consumers`
  • Add unit tests

Identity provider

Microsoft Entra ID (Work and School accounts and Personal Microsoft accounts)

Regression

Yes
PR 3517 introduced it by removing the check for consumers.

Image

Solution and workarounds

No response

Metadata

Metadata

Assignees

Labels

P3bugconfidential-clientregressionBehavior that worked in a previous release that no longer works in a newer release

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions