我收到这个错误
com.microsoft.aad.msal4j.MsalInteractionRequiredException:
AADSTS70000:请求被拒绝,因为请求的一个或多个范围未经授权或已过期。用户必须首先登录并授予客户端应用程序对所请求范围的访问权限。
跟踪 ID:add5eedb-86d5-41bc-bad3-129298e3ca00
相关 ID:1d2ab508-8ec6-49d7-abaa-d1b8feaedda8
我在任何组织目录(任何 Azure AD 目录 - 多租户)和个人 Microsoft 帐户(例如 Skype、Xbox)azure 帐户中的帐户中注册应用程序
API权限:
委托:
- 日历.阅读
- 日历读写
- 离线访问
- openid
- profile
- 用户.阅读
- 用户.阅读.全部
- email
- 邮件阅读
应用:
我在天蓝色门户中提供了所需的权限和范围(公开 API),但仍然收到此错误。我尝试解决这个错误已经超过一天了,我不明白我做错了什么?
用户登录时未询问日历的权限。
我使用了 msal4j 版本 1.6.1 依赖项
我该如何解决这个错误?
我通过添加解决了这个问题Calendars.ReadWrite
AuthorizationRequestUrlParameters 中的范围
在下面的字符串中updatedScopes
我已经传递了 null,因此它被认为是 Microsoft 的默认范围,并且没有询问日历权限。
String updatedScopes = scope == null ? "Calendars.ReadWrite" : scope;
PublicClientApplication pca = PublicClientApplication.builder(clientId).authority(authority).build();
AuthorizationRequestUrlParameters parameters = AuthorizationRequestUrlParameters
.builder(redirectURL,Collections.singleton(updatedScopes))
.responseMode(ResponseMode.QUERY)
.prompt(Prompt.SELECT_ACCOUNT).state(state).nonce(nonce)
.claimsChallenge(claims).build();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)