Отказано в доступе при создании подписки на корневом диске группы - разрешения, установленные для документов - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь сделать следующее:

            var confidentialClientApplication = ConfidentialClientApplicationBuilder
                .Create(APP_ID)
                .WithTenantId(AzureConfiguration.TenantId)
                .WithClientSecret(APP_SECRET)
                .Build();

            var authProvider = new ClientCredentialProvider(confidentialClientApplication);
            var client = new GraphServiceClient(GRAPH_URL, authProvider);


            subscription = await client.Subscriptions.Request().AddAsync(new Subscription
                    {
                        ChangeType = "updated",
                        NotificationUrl = notificationUrl,
                        Resource = $"/groups/{CONTENT_GROUP_ID}/drive/root",
                        ExpirationDateTime = DateTimeOffset.UtcNow.AddMinutes(SubscriptionLength),
                        ClientState = Guid.NewGuid().ToString()
                    });

Группа содержимого является допустимой группой. Приложение имеет Files.ReadWrite.All и Group.ReadWrite.All на уровне приложения, и была нажата кнопка «Предоставить права администратора».

Используется для работы с HTTPClient и REST * 1011. * с таким логином:

var authContext = new AuthenticationContext($"https://login.microsoftonline.com/{AzureConfiguration.TenantId}");

        var creds = new ClientCredential(APP_ID, APP_SECRET);

        var authResult = await authContext.AcquireTokenAsync("https://graph.microsoft.com/", creds);

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

, а затем вызывая его так: с помощью вспомогательной функции, которая просто отправляет json :

var result = await Post<Subscription, Subscription>(client, $"{GRAPH_URL}/subscriptions", new Subscription
                {
                    ChangeType = "updated",
                    NotificationUrl = $"{apiUrl}/v1/SharepointNotifications/Notify",
                    Resource = $"/groups/{CONTENT_GROUP_ID}/drive/root",
                    ExpirationDateTime = DateTimeOffset.UtcNow.AddMinutes(SubscriptionLength),
                    ClientState = Guid.NewGuid().ToString()
                });

(Этот кодраньше работал, но не смог при этом обновлении подписки.)

Я в растерянности относительно того, что отличается и заставляет это не работать. Как мне это сделать?

...