Схемы аутентификации с несколькими носителями в ASP.NET Core с использованием Microsoft.Identity.WebC#

Место общения программистов C#
Гость
Схемы аутентификации с несколькими носителями в ASP.NET Core с использованием Microsoft.Identity.Web

Сообщение Гость »


Я понимаю, что с помощью пользовательских поставщиков JWT можно добавить несколько схем аутентификации в одном приложении. В следующей документации: https://github.com/AzureAD/microsoft-id ... on-Schemes указано, что «Microsoft Identity Web теперь поддерживает несколько схем аутентификации, начиная с v. 1.11.0."

Моя проблема заключается в следующем: я хотел бы использовать токен носителя в качестве метода аутентификации ресурса Azure AD в одном клиенте и ресурса Azure AD B2C в другом клиенте.

Я пробовал следующее:

builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddMicrosoftIdentityWebApi(параметры => { Configuration.Bind("AzureAdB2C", options); }, параметры => { Configuration.Bind("AzureAdB2C", options); }, Constants.Bearer, true); builder.Services.AddAuthentication() .AddMicrosoftIdentityWebApi(параметры => { Configuration.Bind("AzureAd", options); options.TokenValidationParameters.ValidAudiences = ["некоторое-действительное-значение-аудитории-я-скрываюсь-от-переполнения-стека"]; }, options => {configuration.Bind("AzureAd", options); }, Constants.Bearer, true ); При этом возникает следующее исключение:

System.InvalidOperationException: «Схема уже существует: носитель»

После этого я могу изменить имя Constants.Bearer на вторичное значение, чтобы избежать этого исключения: IE:" "Bearer2". Теперь работают только первые токены AzureAdB2C, а На данный момент вторичные рекламные токены Azure не работают.

Есть ли способ заставить AddMicrosoftIdentityWebApi попытаться декодировать два отдельных токена-носителя из двух отдельных ресурсов?

Вернуться в «C#»