2016-09-29 2 views
0

Я загрузил образец кода Office 365 Connect ASP.NET MVC с http://dev.office.com/code-samples-detail/5985, зарегистрировал его как приложение в Azure Active Directory (у меня есть права глобального администратора), дал ему необходимый Разрешения - «Войдите и прочитайте профиль пользователя» и «Отправлять почту как пользователь» (нет других) и настроил web.config с «ClientID» и «ClientSecret». Приложение позволяет мне подключаться к Office 365, но при попытке отправить электронную почту возвращается «Запрещено».Отправка почты с Office365 и MicrosoftGraph с ошибкой «Запрещено»

С помощью отладчика VS2015 я захватил AccessToken, который я получил при входе в систему, и декодировал его с помощью http://jwt.calebb.net/. В нем говорится, что токен предоставляет разрешения «User.Read», и все. Я понимаю, что токен предоставляет разрешения, доступные как из приложения, так и для учетных данных пользователя, используемых для входа в Office 365. Но я проверил с помощью Outlook Web Access, что у учетных данных пользователя есть почтовый ящик и разрешено отправлять электронную почту.

Итак, любые мысли о том, почему я не получаю все разрешения, которые я настроил в AAD?

ответ

0

В следующий раз, прежде чем использовать приложение, вы можете добавить & запрос = согласие до конца URL-адреса? Это должно выглядеть примерно так:

https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&client_id=...&nonce=e231a375-6925-47d2-8704-9fce2d900620&prompt=consent

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

+1

Что сделал трюк - проблема решена. Благодарю. – Chuck

0

Я подозреваю, что вы настроили отправку почты как разрешение приложения (аутентифицируется как приложение с использованием учетных данных клиента, как правило, как фоновый процесс) вместо делегированного разрешения (аутентифицировать как определенный пользователь).

+0

Два разрешения, которые я установил - «Войти и прочитать профиль пользователя» и «Отправлять почту как пользователь» - это делегированные разрешения, не требующие доступа администратора. – Chuck

Смежные вопросы