使用Office365和&amp ;;发送邮件MicrosoftGraph以“Forbidden”失败

时间:2016-09-29 07:05:56

标签: office365 microsoft-graph

我从http://dev.office.com/code-samples-detail/5985下载了Office 365 Connect ASP.NET MVC示例代码,将其注册为Azure Active Directory中的应用程序(我拥有全局管理员权限),为其提供了所需的权限 - “登录并阅读用户配置文件'和'以用户身份发送邮件'(没有其他人),并使用'ClientID'和'ClientSecret'配置web.config。该应用程序允许我与Office 365连接,但在我尝试发送电子邮件时返回“禁止”。

使用VS2015调试器我捕获了登录时收到的AccessToken,并用http://jwt.calebb.net/对其进行了解码。它说令牌提供“User.Read”权限,就是这样。我了解该令牌仅提供应用程序和用于登录Office 365的用户凭据的权限。但我已使用Outlook Web Access验证用户凭据确实具有邮箱和发送电子邮件的权限。

那么,对于为什么我没有获得我在AAD中配置的所有权限的任何想法?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

下次在使用该应用前登录时,是否可以在网址末尾添加& prompt = consent ?看起来应该是这样的:

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

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