У нас большая микро-сервисная архитектура.Все службы работают с JwtBearer с конечной точкой Azure AD 1.0.
Теперь мы хотим получить доступ к расширениям пользовательских схем Azure AD.В этом случае рекомендуется использовать Microsoft Graph.Но сейчас мы не хотим перемещать все сервисы и конечные точки авторизации на 2.0.
Но проблема в том, что токен Azure AD 1.0 недействителен для получения токена от имени для Azure AD 2.0:
Microsoft.Identity.Client.MsalUiRequiredException: AADSTS70002: Ошибка при проверке учетных данных.AADSTS50013: издатель токена не соответствует версии API: токен версии 1 не может использоваться с конечной точкой v2
Мы используем этот код, правильный ноу
// create instance to read cca with a user token cache
ConfidentialClientApplication cca =
new ConfidentialClientApplication(_azureOptions.ClientId, _azureOptions.RedirectUri,
new ClientCredential(_azureOptions.ClientSecret),
userTokenCache, null);
// try to get an on behalf token
AuthenticationResult result;
try
{
result = await cca.AcquireTokenOnBehalfOfAsync(
_graphOptions.GetScopesCollection(),
new UserAssertion(accessToken.RawData), _graphOptions.Authority);
}
catch (Exception exc)
{
// ...
throw;
}
В этомcase _azureOptions
работает на Azure AD 1.0 и _graphOptions
на 2.0 (конечная точка /v2.0)
Исключения случаются на AcquireTokenOnBehalfOfAsync
Спасибо, Бен