Я создал веб-API в Azure.Этот веб-API выполняет некоторые вызовы в SharePoint Online.Некоторые вызовы API выполняются от имени.
Этот веб-API работает нормально до 01.05.2018 и прекрасно работает со старыми службами приложений, которые были созданы до 01.05.2018.
Сотрудник Microsoft сказал:
В рамках наших усилий по усилению безопасности мы не разрешаем выкуп id_token для любого приложения, созданного после 2018-05-01 00: 00: 00.
Во время входа в систему adal я получил id_token.Id_token имеет то же значение, что и access_token:
Когда я вызываю веб-интерфейс API, я отправлю этот токен в качестве токена носителя.Веб-API берет этот токен (строка accessToken) и запускает метод AcquireTokenAsync:
var clientID = ConfigurationManager.AppSettings["ClientID"];
var clientSecret = ConfigurationManager.AppSettings["ClientSecret"];
var tenant = ConfigurationManager.AppSettings["Tenant"];
var appCred = new ClientCredential(clientID, clientSecret);
var authContext = new AuthenticationContext(
"https://login.microsoftonline.com/" + tenant);
var resource = new Uri(sharePointUrl).GetLeftPart(UriPartial.Authority);
var authResult = await authContext.AcquireTokenAsync(resource, appCred,
new UserAssertion(accessToken));
return authResult.AccessToken;
Но в строке, которая вызывает AcquireTokenAsync, у меня появляется сообщение об ошибке:
AADSTS240002: Input id_token cannot be used as 'urn:ietf:params:oauth:grant-type:jwt-bearer' grant
а в чем проблема?