MS-Graph задачи чтения с согласия администратора - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь прочитать задание Планировщик для пользователей моего арендатора. Поэтому я настроил согласие администратора для «Tasks.Read», «Tasks.Read.Shared», «Groups.Read.All», «Groups.ReadWrite.All» для приложения, которое делает это. Как упомянуто здесь: https://docs.microsoft.com/de-de/graph/api/planneruser-list-tasks?view=graph-rest-1.0&tabs=http Я определил свой код, чтобы получить токен, как упомянуто здесь: https://briantjackett.com/2018/12/13/introduction-to-calling-microsoft-graph-from-a-c-net-core-application/ Я вернул токен, и он действителен. (Проверено с помощью инструмента проверки токенов baerer.) Я подумал, что могу получить доступ к задачам из API Graph, например '/v1.0/users/ndomuserId‹/planner/tasks', но я вернул HTTP 401. Кто-нибудь может дать мне недостающую ссылку? Большое спасибо.

_appId = configuration.GetValue<string>("AppId");
_tenantId = configuration.GetValue<string>("TenantId");
_clientSecret = configuration.GetValue<string>("ClientSecret");
_clientApplication = ConfidentialClientApplicationBuilder
     .Create(_appId)
     .WithTenantId(_tenantId)
     .WithClientSecret(_clientSecret)
     .Build();
var graphClient = GraphClientFactory.Create(new DelegateAuthenticationProvider(Authenticate));
var result = await graphClient.GetAsync($"/v1.0/users/{userId}/planner/tasks")

public async Task<string> GetTokenAsync()
{
    AuthenticationResult authResult = await _clientApplication.AcquireTokenForClient(_scopes)
        .ExecuteAsync();
    return authResult.AccessToken;
}

private async Task Authenticate(HttpRequestMessage request)
{
    var token = await GetTokenAsync();
    request.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
}

Ответы [ 2 ]

1 голос
/ 15 января 2020

Чтение заданий для других пользователей в настоящее время не допускается. Пользователь может только читать свои назначенные задачи. В качестве альтернативы вы можете прочитать задачи в указанных c планах и отсортировать пользователей по этим данным, если вы хотите собирать назначения из набора планов. Вы можете оставить отзыв об этом поведении в Planner UserVoice с описанием того, что вы пытаетесь выполнить sh.

0 голосов
/ 15 января 2020

/v1.0/users/{userId}/planner/tasks предназначен для получения задач через получение пользователя , и вам потребуются разрешения пользователя (User.Read.All) для получения задач через этот вызов.

(Также вы действительно нужно Groups.ReadWrite.All? Вы вносите изменения в группы? - это не в вашем первоначальном описании)

...