首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于IMAP.AccessAsUser.All范围ADSTS65001:用户或管理员尚未同意使用应用程序

对于IMAP.AccessAsUser.All范围ADSTS65001:用户或管理员尚未同意使用应用程序
EN

Stack Overflow用户
提问于 2022-06-08 04:04:01
回答 1查看 493关注 0票数 0

在我的java应用程序中,我希望通过使用jakarta访问用户邮箱。为此,我遵循了https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth的OAuth2授权代码流。

在Azure端口上,我设置了我的应用程序并添加了API权限,如下所示

现在,用户重定向到以下授权端点:

access%20https%3A%2F%2Fgraph.microsoft.com%2FIMAP.AccessAsUser.All%20https%3A%2F%2Fgraph.microsoft.com%2FSMTP.Send

输入凭据并接受同意后,redirect_uri会被auth代码击中。基于这段代码,我形成了令牌端点URL并从服务器访问它,令牌端点如下所示:

网址:https://login.microsoftonline.com/5426ee07-9b73-4a9e-8075-395ab439c6fa/oauth2/v2.0/token

表格数据:

代码语言:javascript
复制
client_id=b6067ad9-7195-430b-a35d-97b7aa7beb8f
scope=offline_access%20https%3A%2F%2Foutlook.office.com%2FIMAP.AccessAsUser.All
redirect_uri=http://localhost:8080/callback/microsoft
grant_type=authorization_code
client_secret=QUs8Q~aboLBiopTezMTKwzQjIwWsFFXjc2kCRaRs (I know I have shared the secret)
code={code received from authorize end point}

对这一职位请求的答复如下:

{“错误”:“invalid_grant”,"error_description":"AADSTS65001:用户或管理员未同意使用ID‘b 6067ad9-7195-430 b-a35d-97b7a7beb8f’命名为“电子邮件连接器”的应用程序。发送该用户和资源的交互式授权请求。\r\n跟踪ID: dc008ced-e23f-4919-bd45-b7ae7c68b000\r\nCorrelation ID: 9b6ede03-3c05-4a78-8975-036a3cb20773\r\nTimestamp: 2022-06-07 19:51:30 Z,"error_codes":65001,“时间戳”:“2022-06-07 19:51:30 Z”,"trace_id":"dc008ced-e23f-4919-bd45-b7ae7c68b000","correlation_id":"9b6ede03-3c05-4a78-8975-036a3cb20773",“子错误”:“consent_required”}

在这里,我不明白为什么错误说用户或管理员没有同意使用应用程序,用户在授权终结点输入凭据后接受了同意。如果我们查看上面的屏幕截图,管理员已经给出了访问目录的权限。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-08 09:42:21

我尝试在我的环境中复制相同的场景,并得到了如下相同的错误:

若要解决错误authorize endpoint,请检查用于获取代码的

  • 在获取代码时避免使用Microsoft图形API作用域。
  • 将其替换为用于获取访问令牌的作用域,如下所示:
代码语言:javascript
复制
https://login.microsoftonline.com/Your_TenantID/oauth2/v2.0/authorize?
client_id=Your_ClientID
&response_type=code
&redirect_uri=http://localhost:8080/callback/microsoft
&response_mode=query
&scope= offline_access https://outlook.office.com/IMAP.AccessAsUser.All 
&state=12345

从上面的授权端点获取code

我在修改端点之后成功地获得了访问令牌,如下所示:

验证访问令牌的在 https://jwt.io/ 中对其进行解码,并检查https://jwt.io/和声明,如下所示:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72539933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档