Azure中同时获取用户头像及使用IMAPS的正确OAuth 2.0权限范围
解决方案:同时实现Outlook IMAP/SMTP权限与用户头像访问
你遇到的问题核心是.default范围不能跨资源混用——https://graph.microsoft.com/.default属于Microsoft Graph资源,而https://outlook.office.com/开头的是Outlook资源,OAuth 2.0不允许在同一个scope参数中混合不同资源的范围。
解决方法如下:
替换权限范围:移除
https://graph.microsoft.com/.default,改用Microsoft Graph的具体委托权限User.Read。最终的权限范围应为:https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access openid profile User.ReadUser.Read权限足够让你调用https://graph.microsoft.com/v1.0/me/photo/$value获取用户头像,同时该权限可与Outlook的IMAP/SMTP权限共存。配置应用权限:确保你的Azure AD应用已添加Microsoft Graph的
User.Read委托权限(在应用的「API权限」页面中添加,个人应用可由用户自行同意,企业应用需管理员同意)。验证功能:使用新权限范围获取的访问令牌,既能正常调用Outlook的IMAP/SMTP服务,也能成功请求用户头像API。
内容的提问来源于stack exchange,提问作者Eshy
相关产品推荐
相关产品推荐

