在我的java web应用程序中,我想通过使用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权限,如下所示
现在用户正在重定向到以下授权endpoint:
https://log in . Microsoft online . com/5426 ee07-9b 73-4a9e-8075-395 ab 439 c6fa/oauth 2/v 2.0/authorize?client _ id = b 6067 ad 9-7195-430 b-a35d-97b 7 aa 7 beb 8 f
输入凭据并接受同意后,redirect_uri会被身份验证代码击中。基于该身份验证代码,我形成了令牌endpointURL,并从服务器上点击它,令牌endpoint如下:
网址:https://login.microsoftonline.com/5426ee07-9b73-4a9e-8075-395ab439c6fa/oauth2/v2.0/token
表单数据:
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}
对此帖子请求的回复如下:
{“error”:“invalid_grant”,“error_description”:“AADSTS65001:用户或管理员不同意使用ID 为”b6067ad9-7195-430b-a35d-97b7aa7beb8f“的应用程序,名为”电子邮件连接器”。为此用户和资源发送交互式授权请求。\r\n跟踪 ID: dc008ced-e23f-4919-bd45-b7ae7c68b000\r\n相关 ID: 9b6ede03-3c05-4a78-8975-036a3cb20773\r\n时间戳: 2022-06-07 19:51:30Z“,”error_codes“:[65001],”时间戳“:”2022-06-07 19:51:30Z“,”trace_id“:”dc008ced-e23f-4919-bd45-b7ae7c68b000“,”correlation_id“:”9b6ede03-3c05-4a78-8975-036a3cb20773“,”子错误“:”consent_required“}
在这里,我不明白为什么错误说用户或管理员不同意使用该应用程序,用户在授权endpoint输入凭据后已接受同意。活动更多 如果我们查看上面的屏幕截图,管理员已经授予访问该目录的权限。
我试图在我的环境中重现相同的场景,得到了如下相同的错误:
要解决此错误,请检查用于获取代码的授权endpoint
。
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
从上述授权endpoint获取code
。
我在修改endpoint后成功获得访问令牌,如下所示:
要验证访问令牌,请在jwt.io中对其进行解码,并检查aud
和scp
声明,如下所示:
“AADSTS65001:用户或管理员未同意使用ID为<'My native client app ID'>的应用程序。请为此用户和资源发送交互式授权请求。 我们使用,是本机应用程序id,是Web API应用程序URI。 权限方面,已从客户端应用程序授予了访问api应用程序的委托权限,并尝试在清单中设置。
我们遵循Microsoft Code授权流的OAuth2的v2,如下所述, https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow 在Microsoft Azure下的应用程序注册中创建应用程序后,尝试从以下url获取代码 https://log in . Microsoft
我正在尝试使用 Postman 进行身份验证以获取 Azure AD 持有者令牌,然后将令牌发送到我的本地 WebApi .net Core 服务器,该服务器应验证令牌并将请求发送到图形 API。但是在过去的几个小时里,我被这个错误困住了。 Microsoft.Identity.Client.MsalUiRequiredException: AADSTS65001:用户或管理员不同意使用ID 为“
我们正在尝试使用官方文档请求获取Oauth的令牌: 但是当我们发出请求时,它会响应此错误: 问题是,即使在管理员同意的情况下,我们已经在Azure门户AD和应用注册上授予了他们此权限,但仍然: 那里缺少任何权限吗?,对此有任何线索吗?
我正在尝试使用 Postman 向 PowerBi API 发送请求以执行 sth,但我无法获取它的令牌并收到以下错误: 然后我试着回答这个问题,这个问题建议先授权。我得到的结果是一个HTML页面,而不是代码。 我已经提供了此操作所需的所有权限,但没有授予管理员权限,据我所知,这在这里是不必要的。 我还增加了邮差作为重定向URI。 张贴这些图像,因为我怀疑这里可能有问题。
我正在尝试将DocuSign集成到我们的系统中。我从文档中了解到,我们需要使用JWT身份验证,因为我们请求组织管理员的许可,然后,用户在请求签名时不需要登录。 这是我用来获得管理员同意的url: https://account-d.docusign.com/oauth/auth?response_type=code 回调URL被成功调用,返回的代码如下: ?state=esignature\u d