使用 Office365 和 MicrosoftGraph 发送邮件失败,并显示"Forbidden"



我下载了Office 365 Connect ASP。. NET MVC示例代码从http://dev.office.com/code-samples-detail/5985,注册它作为一个应用程序在Azure Active Directory(我有全局管理员的权利),给了它所需的权限-"登录和阅读用户配置文件"one_answers"发送邮件作为一个用户"(没有其他),并配置web。配置'ClientID'和'ClientSecret'。这个应用程序允许我连接Office 365,但是当我试图发送电子邮件时返回"Forbidden"。

使用VS2015调试器,我捕获了登录时收到的AccessToken,并使用http://jwt.calebb.net/对其进行解码。它说令牌提供"用户"。阅读"权限",仅此而已。我理解令牌只提供从应用程序和用于登录到Office 365的用户凭据中可用的权限。但我已经使用Outlook Web Access验证了用户凭据确实有邮箱和发送电子邮件的权限。

那么,关于为什么我没有得到我在AAD中配置的所有权限,有什么想法吗?

下次你在使用应用程序之前登录时,你能在url的末尾添加&prompt=consent吗?它应该看起来像这样:

https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_token& client_id =…,nonce = e231a375 - 6925 - 47 - d2 - 8704 - 9 - fce2d900620&提示=同意

这将提示重新同意,以便向用户显示对您所做的权限的更新,他们可以同意,并且这些权限将包含在返回的令牌中。

我怀疑您已经将Send Mail设置为应用程序权限(使用客户端凭证验证应用程序-通常作为后台进程)而不是委托权限(验证为特定用户)。

相关内容

最新更新