Невозможно получить список подписок из Azure AD с помощью Microsoft Graph API - PullRequest
4 голосов
/ 24 мая 2019

Я пытаюсь получить список подписок на уведомления из Azure AD, используя Microsoft Graph API.

Я пытаюсь сделать это в приложении webjob.

Класс funtions в проекте Webjob имееткод типа

  public static void CreateAndUpdateSubcriptions()
    {
        var config= new ConfigurationSettings
        {
            AppId = "*****",
            AppSecret = "***",
            Ngrok = "****",
            TenantId = "*****"
        };

        var graphServiceClient = GetGraphClient(config);//creates the graph client using client credential flow

        var subscriptions = graphServiceClient.Subscriptions
            .Request()
            .GetAsync().Result;

        List<Subscription> subscription = new List<Subscription>();

        foreach (var subscrip in subscriptions)
        {
            if (subscrip.NotificationUrl == config.Ngrok + "/api/notifications")
            {
                subscription.Add(subscrip);
            }
        }

        if (subscription.Count == 0)
        {
            var s = new Subscription
            {
                ChangeType = "updated",
                NotificationUrl = config.Ngrok + "/api/notifications",
                Resource = "groups",
                ExpirationDateTime = DateTime.UtcNow.AddMinutes(10),
                ClientState = "****"
            };
            s = graphServiceClient
                    .Subscriptions
                    .Request()
                    .AddAsync(sub).Result;

        }
        else
        {
            CheckSubscriptions(subscription, config);
        }
    }

Я дал приложению делегированное разрешение (Subscription.Read.All).

Но я не получаю никаких подписок обратно из раздела кода, когда яя снова запускаю код (поэтому существует подписка, которая существует),

var subscriptions = graphServiceClient.Subscriptions
            .Request()
            .GetAsync().Result;

Я не уверен, что делаю неправильно.

Любая помощь?

1 Ответ

0 голосов
/ 26 мая 2019

Вы должны дать приложению разрешение приложения вместо делегированное разрешение .

См. https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-permissions-and-consent#types-of-permissions

Также помнитенажать кнопку «Предоставить согласие администратора».

Обновления: см. этот документ .enter image description here

...