使用 MSAL 进行应用注册时总是收到 AUTHORIZATION_NEEDED
Always receiving AUTHORIZATION_NEEDED when doing app enrollment using MSAL
在我们的 android 应用程序中,我无法注册应用程序以进行注册。一切都是根据这个示例“https://github.com/msintuneappsdk/Taskr-Sample-Intune-Android-App”设置的,但当我调用 registerAccountForMAM().[=12 时,我仍然总是收到“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:用户或管理员未同意使用 ID 为 'XXX' 且名为 'XXX' 的应用程序。为此用户和资源发送交互式授权请求。 “
我希望得到 ENROLLMENT_SUCCEEDED 而不是 AUTHORIZATION_NEEDED。
我也尝试过手动请求这个 url “https://login.microsoftonline.com/121025c7-d7d0-4cab-a42e-8994b36d1aac/oauth2/authorize?client_id=XXX
&response_type=代码&redirect_uri=“XXX”
&prompt=admin_consent" 按照其他文章的建议,但没有成功。
没关系,我可以通过授予对管理工具的权限来解决这个问题。
在我们的 android 应用程序中,我无法注册应用程序以进行注册。一切都是根据这个示例“https://github.com/msintuneappsdk/Taskr-Sample-Intune-Android-App”设置的,但当我调用 registerAccountForMAM().[=12 时,我仍然总是收到“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:用户或管理员未同意使用 ID 为 'XXX' 且名为 'XXX' 的应用程序。为此用户和资源发送交互式授权请求。 “
我希望得到 ENROLLMENT_SUCCEEDED 而不是 AUTHORIZATION_NEEDED。
我也尝试过手动请求这个 url “https://login.microsoftonline.com/121025c7-d7d0-4cab-a42e-8994b36d1aac/oauth2/authorize?client_id=XXX &response_type=代码&redirect_uri=“XXX” &prompt=admin_consent" 按照其他文章的建议,但没有成功。
没关系,我可以通过授予对管理工具的权限来解决这个问题。