Я пытаюсь создать консольное приложение C # для подключения к графическому API и получения списка пользователей из AzureAD от арендатора. Я зарегистрировал приложение, и админ дал мне следующее
- Имя арендатора и ID арендатора
- идентификатор клиента (также иногда называемый идентификатором приложения)
- Секрет клиента
Используя SDK код C #, который мне нужно использовать, выглядит следующим образом (https://docs.microsoft.com/en-us/graph/api/user-list?view=graph-rest-1.0&tabs=cs):
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var users = await graphClient.Users
.Request()
.GetAsync();
Однако консольное приложение будет запускаться как пакетный процесс, поэтому взаимодействие с пользователем вообще не будет. Поэтому, чтобы предоставить authProvider, я следовал этой статье на сайте MS Docs: https://docs.microsoft.com/en-us/graph/sdks/choose-authentication-providers?tabs=CS
И я думаю, что для своих целей мне нужно перейти к «Потоку OAuth учетных данных клиента». Код, который показан на этом URL. Но и здесь тоже.
IConfidentialClientApplication clientApplication = ClientCredentialProvider.CreateClientApplication(clientId, clientCredential);
ClientCredentialProvider authProvider = new ClientCredentialProvider(clientApplication);
Проблема в том, что Visual Studio не распознает класс ClientCredentialProvider. Я не уверен, какую сборку импортировать. Я использую следующее использование в верхней части.
using Microsoft.Identity.Client;
using Microsoft.IdentityModel.Clients;
using Microsoft.IdentityModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Я не очень разбираюсь в репозиториях GitHub и использую Visual Studio 2015. Мне был бы интересен пример кода; Я посмотрел, но не могу найти ни одного. У MS есть несколько лекций, но они используют другого типа провайдера аутентификации, который аутентифицируется в интерактивном режиме, а это не то, что я ищу. Я хочу получить токен, используя TenantId / ClientId и Client Secret.