У меня проблемы с настройкой веб-сайта AspNet Core 2.1 для использования Azure AD B2C для проверки подлинности.У меня этот пример для работы, но когда я пытаюсь адаптировать его к своему собственному клиенту AD B2C, я получаю исключение недопустимой операции в следующем коде:
private async Task OnAuthorizationCodeReceived(AuthorizationCodeReceivedContext context)
{
var clientCredential = new ClientCredential(context.Options.ClientSecret);
var userId = context.Principal.FindFirst(ClaimTypes.NameIdentifier).Value;
var tokenCache = new SessionTokenCache(context.HttpContext, userId);
var confidentialClientApplication = new ConfidentialClientApplication(
context.Options.ClientId,
context.Options.Authority,
_options.RedirectUri,
clientCredential,
tokenCache.GetInstance(),
null);
try
{
// this next line throws the exception
var authenticationResult = await confidentialClientApplication.AcquireTokenByAuthorizationCodeAsync(context.ProtocolMessage.Code, _options.ApiScopes.Split(' '));
context.HandleCodeRedemption(authenticationResult.AccessToken, authenticationResult.IdToken);
}
catch (Exception ex)
{
// TODO: Handle
throw;
}
}
Исключениеподробности:
Microsoft.Identity.Client.MsalServiceException HResult = 0x80131500
Сообщение = AADSTS50049: неизвестный или недопустимый экземпляр.Идентификатор трассировки: 1391c6be-c8f7-4c05-a575-b4998f79d800 Идентификатор корреляции: 8b83a695-000f-44c2-99c1-d779725342da Отметка времени: 2018-09-27 02: 05: 02Z
Источник = Microsoft.Identity.Client StackTrace: at.Identity.Client.Internal.OAuth2.OAuth2Client.CreateErrorResponse (ответ HttpResponse, RequestContext requestContext) в МайкрософтMicrosoft.
Изучив аргументы, переданные функции, которая выдает исключение, я заметил, что _options.ApiScopes имеет значение:
https://ridemonitor.onmicrosoft.com/api/user.read
что я и настроил в приложении.В конфигурации приложения-арендатора указан URL-адрес api для «папки» этого URL-адреса (т. Е. Всего, кроме user.read) ... но я не уверен, какую другую конфигурацию мне следует делать в приложении-арендаторе.Как он узнает, что означает user.read?
Если кто-то может подсказать мне какой-нибудь вводный материал о том, как настроить AD B2C, это было бы полезно.То, что я нашел до сих пор, предполагает уровень знаний, которого у меня явно нет.