Я зарегистрировал собственное приложение в Azure Active Directory и получил все разрешения для API Graph и OneNote, успешно получая токены от имени пользователей с использованием учетных данных имени пользователя и пароля. Я смог создать и обновить блокноты и выполнить другие действия на графике с помощью этих токенов, но они неожиданно перестали работать, несмотря на то, что в коде, выполняющем эти запросы, не было никаких изменений.
Я все еще могу вносить другие изменения, такие как создание элементов списка в SharePoint, но любое действие в отношении записных книжек OneNote приводит к 401 со следующим ответом:
{
"error": {
"code": "40001",
"message": "The request does not contain a valid auth token.",
"innerError": {
"request-id": "472a74fd-c050-495a-9ec3-04d1ec3c4461",
"date": "2018-06-26T20:49:28"
}
}
}
Я подтвердил, что регистрация приложения имеет все права на API Graph и OneNote
Я подтвердил, что токены запрашиваются для правильного ресурса. Фактически я использовал Graph, переключился на OneNote API после того, как эта проблема появилась в Graph, и через некоторое время та же проблема произошла и с OneNote API.
Я пытался использовать .NET ADAL AuthenticationContext.AcquireTokenAsync(resource, ClientId, userCredential)
или сделать запрос непосредственно к https://login.windows.net/{tenantId}/oauth2/token
со следующим телом, и оба имели одинаковый результат
"resource=" + resource
+ "&client_id=" + ClientId
+ "&grant_type=password"
+ "&username=" + Username
+ "&password=" + Password
+ "&scope=openid";
Я попытался получить доступ к ноутбукам с сайта SharePoint, открытого для всех пользователей арендатора, и получил ту же проблему, я попытался создать OneNotes на личном onedrive пользователя и получил ту же проблему, так что это не проблема пользователь, не имеющий доступа к ноутбуку
Итак, я сделал несколько десятков тысяч вызовов в Graph API, затем эта проблема обнаружилась. Еще несколько десятков тысяч обращений к OneNote API, после чего появилась эта проблема. Есть идеи о том, что может происходить? Существует ли ограничение на количество действий в отношении OneNotes, которые можно выполнять в этих API?
РЕДАКТИРОВАТЬ : Есть еще две вещи, которые я обнаружил, которые стоит упомянуть.
Во-первых, Graph Explorer по-прежнему работал нормально, даже когда мои токены не работали. Я предполагаю, что проводник использует поток кода авторизации для получения токенов от имени пользователей, в то время как я использую имя пользователя / пароль, поэтому поток авторизации имени пользователя / пароля, вероятно, как-то связан с этой проблемой. Во-вторых, сегодня API-интерфейс Graph снова работает для конечных точек OneNote, а это означает, что мое приложение, вероятно, заблокировано для выполнения действий OneNote в течение определенного периода времени (возможно, 24 ч?)