【发布时间】: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