MS Graph - получение токена приложения (консольного приложения)

Tab спросил: 13 октября 2017 в 07:27 в: microsoft-graph
  • Консольное приложение - C # .Net 4.6
  • Выделенный пользователь-администратор - я не могу каждый раз запрашивать его для входа в систему - должен запускаться без присмотра как собственное приложение командной строки / консоли.

Я просто пытаюсь получить токен на предъявителя для отправки вместе с вызовами Graph SDK. Я получаю токен (один и тот же каждый раз) но мне сказали, что срок его действия истек. Вот сообщение:

Маркер доступа истек, используйте Access & Обновить токены для проверки

Поскольку это консольное приложение, я не знаю, как я могу получить / сохранить доступ и обновить токены для этого.

К вашему сведению: ранее я выполнил следующие действия: Получение доступа без пользователя: https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service. Я не смог получить мимо простого HTTP-запроса токена на этой странице: неавторизовано.

Это моя последняя попытка. Любая помощь будет приветствоваться:

using Microsoft.Graph;
using Microsoft.Identity.Client;public static async Task<string> GetTokenForAppAsync()
{
    if (TokenForApplication == null || TokenForApplicationExpiration <= DateTimeOffset.UtcNow.AddMinutes(5))
    {
        TokenCacheUser = null;
        TokenCacheApplication = null;        ConfidentialClientApplication cl = new ConfidentialClientApplication(Settings.AuthClientId,
            returnUrl,
            new ClientCredential(Settings.AuthClientSecret),
            TokenCacheUser,
            TokenCacheApplication);        AuthenticationResult authResult = cl.AcquireTokenForClientAsync(new string[] { "https://graph.microsoft.com/.default" }, true).Result;
        TokenForApplication = authResult.AccessToken;
        Console.WriteLine(authResult.AccessToken);
    }
    return TokenForApplication;
}

Я открыт для любых решений, использующих MS Graph и Identity Libs.

0 ответов