我正在关注示例,以便在此处向cordova应用添加身份验证: https://github.com/Azure-Samples/active-directory-cordova-multitarget
我已注册我的租户并设置了权限。我有以下行来检索访问令牌:
authContext.acquireTokenAsync('https://graph.windows.net', 'myappid', 'http://myappnamehere')
.then(function(authResult) {
// success handler
alert(authResult.userInfo);
});
当我运行应用程序时,我会被重定向到microsoft登录页面并成功进行身份验证。它会将我重定向回我的应用页面并在警报上显示为null。我检查了authResult,statusCode属性为'Failed',accessToken为null。没有其他信息可以帮助我找出问题所在。
我修改了插件的源代码以返回更多属性,包括'errorLogInfo'属性,该属性返回以下消息:
ErrorCode:invalid_grant用户或管理员未同意使用ID为“myappid”的应用程序。发送此用户和资源的交互式授权请求。
我从我的MSDN Azure帐户运行此示例并使用Azure帐户的所有者登录。当我使用我在租户上创建的用户运行相同的示例时,它可以成功运行。
答案 0 :(得分:1)
您的管理员是Microsoft帐户(例如LiveID)吗?如果是这种情况,则无法将其与/ common端点一起使用。如果您在权限网址中使用租户域而不是/ common,则会看到您的管理员能够成功获得令牌。