cordova 插件中的 Azure AD 身份验证问题

Azure AD authentication issue in cordova plugin

我正在按照示例在此处向 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 是空的。没有其他信息可以帮助我找出问题所在。

我将插件的源代码修改为 return 一些属性,包括 'errorLogInfo' 属性,即 return 以下消息:

ErrorCode: invalid_grant The user or administrator has not consented to use the application with ID 'myappid'. Send an interactive authorization request for this user and resource.

我正在 运行 从我的 MSDN Azure 帐户中获取此示例并使用 Azure 帐户的所有者登录。当我 运行 使用我在租户上创建的用户的相同示例时,它成功运行。

您的管理员是 Microsoft 帐户(例如 LiveID)吗?如果是这种情况,您将无法将它与 /common 端点一起使用。如果您在权限 URL 中使用您的租户域而不是 /common,您将看到您的管理员将能够成功获取令牌。