【问题标题】:graph url scopes not supported for smtp and imapsmtp 和 imap 不支持图形 url 范围
【发布时间】:2021-03-20 12:35:06
【问题描述】:

对于身份验证,我们使用文档中提到的以下范围 https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth

offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send 我们能够成功获取access_token和refresh_token

我们想要获取 userPrincipalName 但https://outlook.office.com/api/v2.0/me/ api 不返回 userPrincipalName。 我们尝试使用图形 api https://graph.microsoft.com/v1.0/me 来获取 userPrincipalName 但是我们遇到了错误,看起来对于点击图形 api 只有图形范围才有效。

我们尝试使用图形范围 url,

https://graph.microsoft.com/IMAP.AccessAsUser.All , https://graph.microsoft.com/SMTP.Send 并且能够点击 graph api ,但是 smtp 和 imap 身份验证不适用于这些范围。

因为微软正在弃用 Outlook Rest api 并要求迁移到图形 api 那么为什么 SMTP 和 IMAP 不支持图形范围 url?

有什么方法可以获取 userPricipalName 吗?

【问题讨论】:

  • 使用https://outlook.office.com/api/v2.0/me/获取登录用户信息时,发生了什么错误?
  • @CarlZhao 没有错误出现,我们能够成功获取用户详细信息,但是在响应中,我们需要的 userPrincipalName 不存在。 userPrincipalName 在图形 api graph.microsoft.com/v1.0/me 中,但这会产生错误,因为范围是前景范围而不是图形范围
  • 嗨,你有机会研究我的答案吗?对你有用吗?

标签: email azure-active-directory smtp microsoft-graph-api


【解决方案1】:

您需要将IMAP.AccessAsUser.AllSMTP.Send 添加到MS graph api,然后授予管理员同意。

然后使用auth code flow 获取访问令牌。

调用/me 端点。

【讨论】:

猜你喜欢
  • 2012-10-30
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-26
相关资源
最近更新 更多