Как настроить разрешения Azure AD для доступа к Microsoft Graph из консольного приложения WebJob? - PullRequest
0 голосов
/ 21 июня 2019

Я не могу получить доступ к Microsoft Graph внутри WebJob (в основном консольное приложение).Я получаю сообщение об ошибке «Недостаточно прав для завершения операции» при попытке выбрать пользователей из AD.

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

У меня есть идентификатор приложения и секретный ключ для подключения, но это былосозданный в прошлом для самого веб-приложения.Это должно работать в моем сценарии, или я должен сгенерировать отдельный Id / secret и настроить его по-другому.

Вот некоторый код:

var pages = activeDirectoryClient.Users.Where(adItem => adItem.Mail == o.Email).ExecuteAsync().Result;


var activeDirectoryClient = new ActiveDirectoryClient(serviceRoot, async () => await GetTokenAsync(authContext, azureAdParameters.UserObjectId, azureAdParameters.HostUrl));

ActiveDirectoryClient используется дляизвлекать данные пользователей, но они поступают из Microsoft.Azure.ActiveDirectory.GraphClient Нужны ли ему разрешения Microsoft Graph API или Azure AD Graph API?

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

WebJob не является публичным клиентом - это конфиденциальный клиент. Нет пользователя для аутентификации, когда ему нужно получить токены, и он знает, как защитить секреты (это определение конфиденциального клиента). Это должно подтвердить подлинность самостоятельно. Вам необходимо предоставить ему соответствующие Приложения Разрешения (User.Read.All - это делегированное разрешение - оно не будет работать), разрешить их при необходимости администратору и использовать метод AcquireToken, который использует ClientCredentials (идентификатор приложения и симметричный ключ или, что лучше, сертификат X509).

0 голосов
/ 21 июня 2019

Похоже, что для регистрации вашего старого веб-приложения отсутствуют необходимые разрешения.Поэтому я бы посоветовал:

  1. Зарегистрировать новое приложение в Azure AD;
  2. Предоставить ему разрешения Microsoft Graph API (Приложение): User.Read.All и Directory.Read.All;
  3. Создать новый секретный ключ клиента для регистрации нового приложения;
  4. Переконфигурировать ваш WebJob для использования нового идентификатора клиента приложения и секретного ключа.

Надеюсь, что это такпомогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...