Azure AD B2C: AcquireTokenSilentAsync возвращает пустой токен доступа.

Я выполнил действия, описанные в Создайте веб-приложение ASP.NET с помощью регистрации, входа в систему, изменения профиля и сброса пароля в Azure Active Directory B2C и используйте образец кода для создания прототипа Azure AD B2C для нашей компании.

  • Единственное изменение заключается в том, что я использовал свое доменное имя вместо образца домена и изменил файл web.config.
  • Я определил область действия и идентификатор приложения для приложения API
  • Я получаю токен Id, но не токен доступа

Любое предложение по поводу того, в чем может быть проблема?

введите здесь описание изображения


person frosty    schedule 13.12.2017    source источник
comment
Идентификатор приложения для приложения API: https: //*****.onmicrosoft.com/tasks/. Имена областей видны для чтения и записи   -  person frosty    schedule 13.12.2017
comment
На портале есть предупреждение. С этим клиентом B2C не связана подписка ... Имеет ли это какое-либо отношение к тому, что токен доступа не возвращается?   -  person frosty    schedule 14.12.2017


Ответы (2)


Один из шагов отсутствует в Создайте веб-приложение ASP.NET с помощью документации для регистрации, входа, изменения профиля и сброса пароля в Azure Active Directory B2C.

Маркер доступа возвращается, когда вы предоставляете API-доступ к веб-приложению, следуя шаги, описанные здесь.

person frosty    schedule 14.12.2017
comment
@spottedmahn, почему вы связываете docs.microsoft.com/en-us/azure/active-directory-b2c/ повсюду в предложенных вами изменениях? - person jontro; 15.12.2017
comment
Привет, @jontro - тебе не легче читать заголовки, чем URL-адреса? И еще самодокументирующий ... - person spottedmahn; 15.12.2017

У меня была эта проблема, когда все в моем запросе было правильным кроме области, которую я запрашивал. Я бы получил возвращенный id_token, но не access_token. Я использовал образец отсюда: https://dzimchuk.net/setting-up-your-asp-net-core-2-0-apps-and-services-for-azure-ad-b2c/ (кстати, превосходная статья). Я запустил приложение, но не определил область read_values ​​в областях опубликованных приложений в моем клиенте Azure B2C. Проблема, которую вы описываете, проявилась в этих строках кода из этого примера.

var result = await client.AcquireTokenByAuthorizationCodeAsync(context.TokenEndpointRequest.Code, new[] { $"{authOptions.ApiIdentifier}/read_values" });

context.HandleCodeRedemption(result.AccessToken, result.IdToken); 

result.IdToken в порядке, result.AccessToken был пустым, пока я правильно не определил область read_values ​​в моем клиенте azure b2c.

person ubienewbie    schedule 15.03.2018