Настройка Azure AD B2C ApiScopes и ApiUrl - PullRequest
0 голосов
/ 27 сентября 2018

У меня проблемы с настройкой веб-сайта 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, это было бы полезно.То, что я нашел до сих пор, предполагает уровень знаний, которого у меня явно нет.

1 Ответ

0 голосов
/ 13 октября 2018

Если вы используете домен your-tenant-name.b2clogin.com с MSAL, то (на момент написания этой статьи) вы должны:

  1. Гарантировать Authority содержит /tfp путь , поскольку выводит, что MSAL взаимодействует с клиентом Azure AD B2C .
  2. Set ValidateAuthority до false.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...