Как настроить Microsoft.График для ASP.NET основной веб-API, использующий поток учетных данных клиента

#asp.net #asp.net-web-api #microsoft-graph-api #microsoft-graph-sdks

#asp.net #asp.net-web-api #microsoft-graph-api #microsoft-graph-sdks

Вопрос:

У меня есть ASP.NET Основной веб-API, который должен получить доступ к microsoft graph API, прошедшему проверку подлинности как он сам. Не «от имени» пользователя, вошедшего в систему. (т. Е. с использованием потока учетных данных клиента)

В обработчике HTTP-запроса мне нужно использовать объект GraphServiceClient от Microsoft.Пакет графического NuGet.

В настоящее время я настроил его так, что у меня есть одноэлементная служба «MsGraphClient». В конструкторе этой службы я создаю экземпляр своего GraphServiceClient, используя TenantId, ClientID и clientSecret .

     public MsGraphClient(IOptions<AppConfig> config)
    {
        ...

        var clientSecretCredential = new ClientSecretCredential(this.tenantId, this.clientId, this.clientSecret);
        this.graphClient = new GraphServiceClient(clientSecretCredential, scopes);
    }
 

Затем я использую this.graphClient в своих обработчиках запросов для взаимодействия с microsoft graph.

Я основал свою настройку GraphServiceClient на этом примере от Microsoft. Однако этот пример является консольным приложением. Меня беспокоит то, что, поскольку у меня есть API, который создает экземпляр GraphServiceClient в конструкторе одноэлементной службы, токен доступа в какой-то момент истечет, и this.graphClient больше не будет работать.

Заботится ли GraphServiceClient об обновлении токенов доступа? Есть ли лучший способ, которым я мог бы это настроить?

Комментарии:

1. Я изложил свою идею в вашем другом вопросе. Если вы чувствуете, что это полезно для вас, не могли бы вы принять это как ответ, чтобы закончить это дело?