.net ADAL Получить токен для приложения без пользователя - PullRequest
0 голосов
/ 13 февраля 2019

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

e.Message = "Не удалось получить токен в автоматическом режиме, так как токен не был найден в кэше. Вызовите метод AcquireToken"

Ниже приведен код, который я используючтобы получить токен.

ClientCredential clientcred = new ClientCredential(clientId, appKey);
AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance + tenantId);
AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenSilentAsync(graphResourceID, clientId);

return authenticationResult.AccessToken;

Моя версия:

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

Настройка безопасности при регистрации моего приложения для Microsoft Graph "Приложение - Отправить электронную почтуот любого пользователя "Но я не думаю, что это когда-либо заходит так далеко.Безопасность в Windows Azure AD делегирована - войдите и прочитайте профиль пользователя.

Спасибо

1 Ответ

0 голосов
/ 14 февраля 2019

Я разобрался с токеновой частью.Так что для всех, кто ищет этот гугл, создающий сертификат X509 и добавляющий его в свой манифест Azure.Затем вы можете использовать сертификат x509 для создания ClientAssertionCertificate.Затем используйте подтверждение клиента при вызове AuthenticationContext.AcquireTokenAsync.Это похоже на работу.Я могу создать graphServiceClient.Однако, когда я пытаюсь отправить электронное письмо, я получаю сообщение об ошибке разрешения:

Учетная запись пользователя, которая использовалась для отправки этого запроса, не имеет права отправлять почту от имени указанной отправляющей учетной записи., Невозможно отправить сообщение.

Несмотря на наличие заявки на получение разрешения - отправляйте почту как любой пользователь.У кого-нибудь есть идеи?

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