Получите неверный токен доступа из Graph API C# - PullRequest
0 голосов
/ 06 августа 2020

В настоящее время я программирую API-интерфейс для подключения к OneDrive (он же Graph). Я создал приложение под Azure Active Directory, получил свой ClientId и установил URI перенаправления на https://login.microsoftonline.com/common/oauth2/nativeclient (потому что это не веб-приложение). Пока все хорошо.

Теперь я пытаюсь получить токен доступа для текущего пользователя (который использует приложение).

AuthenticationResult authResult = await app.AcquireTokenInteractive(scopes)
                    .WithPrompt(Microsoft.Identity.Client.Prompt.SelectAccount)
                    .ExecuteAsync();

После ввода имени пользователя и пароля программа выполняет следующий строк кода и получаю ожидаемый результат (я получаю имя пользователя данной учетной записи).

Console.WriteLine(authResult.Account.Username);

На следующем шаге я создаю GraphServiceClient с созданным токеном на предыдущем шаге .

GraphServiceClient client = new GraphServiceClient(
                new DelegateAuthenticationProvider(
                    async request => {
                        request.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
                    })
            );

        return client;

Теперь, если я попытаюсь выполнить какие-либо действия (в зависимости от области действия), ничего не произойдет. Ни ошибок, ни результатов. Но если я использую токен, сгенерированный https://developer.microsoft.com/de-de/graph/graph-explorer, все работает нормально.

Итак, на мой вопрос. Что я сделал не так?

...