1

Я разрабатываю приложение-демон, которое взаимодействует с Microsoft 365 Office Planner для управления задачами Microsoft Graph. Когда я вызываю API-интерфейс Microsoft для получения задач, связанных с моим арендатором, я получаю исключение Unauthorized request.Доступ к арендаторам Microsoft Graph from daemon app

Я зарегистрировал свое приложение в Azure Active Directory и также дал ему разрешения на использование Microsoft Graph.

я запросить маркер доступа, основанный на процессе здесь: https://graph.microsoft.io/en-us/docs/authorization/app_only

Я могу получить маркер от Azure v2.0 Active Directory конечной точки. Код запроса заключается в следующем:

new KeyValuePair<string, string>("grant_type", "client_credentials"), 
     new KeyValuePair<string, string>("client_id", "<clent id>"), 
     new KeyValuePair<string, string>("client_secret", "<client secret>"), 
     new KeyValuePair<string, string>("resource", @"https://graph.microsoft.com") 
    var content = new FormUrlEncodedContent(pairs); 

    var response = client.PostAsync("https://login.microsoftonline.com/<tenant id>/oauth2/token", content).Result; 

Когда я использую этот маркер доступа, чтобы выполнить запрос следующим образом:

 client.DefaultRequestHeaders.Authorization= new AuthenticationHeaderValue("Bearer", token); 

    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded")); 

    var response = client.GetAsync(@"https://graph.microsoft.com/beta/tasks").Result;   

я получаю код состояния 401 Несанкционированный со следующим сообщением ответа:

Unauthorized: Access is denied due to invalid credentials. 
You do not have permission to view this directory or page using the credentials that you supplied. 

Есть ли какой-либо процесс авторизации, который я не выполнял для предоставления доступа к моему приложению. Пожалуйста помоги!!!!

Спасибо заранее!

ответ

0

Основанный на тесте, кажется, что Microsoft Graph не поддерживает список задач с токеном для приложения. После того, как я дать разрешение на Group.ReadAll приложение к приложению, я получил ошибку, как показано ниже с просьбой:

GET:https://graph.microsoft.com/beta/tasks?$filter=createdBy+eq+'[email protected]' 

enter image description here

Однако запрос был успешно вызывается с делегатом-токен с таким же разрешением: enter image description here

В качестве обходного пути вы можете проверить, полезен ли ваш сценарий OAuth2 Code Grant flow.

Другие пользователи подняли отзыв о перечислении задач, используя токен для приложения, вы можете проголосовать за эту обратную связь от here, если вы также хотите эту функцию.

Смежные вопросы