问题描述
在我们的 android 应用程序中,我无法注册该应用程序以进行注册。一切都根据此示例“https://github.com/msintuneappsdk/Taskr-Sample-Intune-Android-App”进行设置,但当我调用 registeraccountForMAM() 时,我仍然总是收到“AUTHORIZATION_NEEDED”错误代码。
我将 MSAL 与 Intune SDK 结合使用,并且该应用已注册为多租户。
MAMServiceAuthenticationCallback 中的 Aacquiretoken() 代码
@Override
public String acquiretoken(@NonNull final String upn,@NonNull final String aadId,@NonNull final String resourceId) {
final String[] scopes = {resourceId + "/.default"};
final IAccount account = MSUtil.loadAccounts(MSUtil.getAaid());
if (account == null) {
try {
throw new MsalUirequiredException(MsalUirequiredException.NO_ACCOUNT_FOUND,"no account found for " + aadId);
} catch (MsalUirequiredException e) {
e.printstacktrace();
}
}
AcquiretokenSilentParameters params =
new AcquiretokenSilentParameters.Builder()
.forAccount(account)
.fromAuthority(account.getAuthority())
.withScopes(Arrays.asList(scopes))
.build();
final IAuthenticationResult iAuthenticationResult = mMultipleAccountApp.acquiretokenSilent(params);
iAuthenticationResult.getAccesstoken();
}
这里的acquiretokenSilent()调用总是因为以下错误而对我不利
"com.microsoft.identity.client.exception.MsalUirequiredException: AADSTS65001: 用户或管理员未同意使用名为“XXX”的 ID 为“XXX”的应用程序。为此用户和资源发送交互式授权请求。 "
我希望结果是 ENROLLMENT_SUCCEEDED 而不是 AUTHORIZATION_NEEDED。
我也尝试手动请求此网址“https://login.microsoftonline.com/121025c7-d7d0-4cab-a42e-8994b36d1aac/oauth2/authorize?client_id=XXX &response_type=code&redirect_uri=“XXX” &prompt=admin_consent" 与其他文章中的建议一致,但没有运气。
解决方法
没关系,我可以通过授予对管理工具权限的访问权限来解决此问题。