javascript - ADAL.js 无法在 Microsoft 个人帐户中运行

标签 javascript azure azure-active-directory adal.js

我有一个使用 ADAL.js 框架的 JavaScript 身份验证功能,它将用户重定向到 microsftonline 登录页面。之前我们可以使用 Microsoft 个人帐户和在 Azure AD 中创建的帐户成功进行身份验证,但现在它无法在 Microsoft 个人帐户中运行。

这是登录页面网址:

https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&client_id=f69fde41-bc12-4a24-9833-10bef9704107&redirect_uri=http%3A%2F%2Flocalhost%3A1508%2F&state=5ec319b7-15e9-4e91-bd4d-72a06e963794&client-request-id=fa9e15f8-1210-4a61-96bc-2430b0c1a6a1&x-client-SKU=Js&x-client-Ver=1.0.13&nonce=a38d23bb-22f0-4053-b15f-ed15dfef6a41

它返回以下错误:

AADSTS50020: We are unable to issue tokens from this api version for a Microsoft account. 
Please contact the application vendor as they need to use version 2.0 of the protocol to support this.

这是我使用的代码:

var conf = {
                instance: 'https://login.microsoftonline.com/',
                tenant: 'common',
                clientId: 'f69fde41-bc12-4a24-9833-10bef9704107',
                postLogoutRedirectUri: 'http://localhost:1508/',
                cacheLocation: 'localStorage',
                callback: userSignedIn,
                redirectUri: null
            };

var authContext = new AuthenticationContext(conf);

最佳答案

ADAL 使用不支持个人 Microsoft 帐户的 Azure AD v1.0 终结点。如果要同时登录 Azure AD 和个人 Microsoft 帐户,可以使用 Azure AD v2.0 终结点 + Microsoft 身份验证库 (MSAL)。您还需要使用 application registration portal 重新注册应用程序。

Here's使用所述库和端点实现 JavaScript 单页应用程序的代码示例。您还可以找到有关 v2.0 和 MSAL 的更多文档 here

关于javascript - ADAL.js 无法在 Microsoft 个人帐户中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48555331/

相关文章:

Azure Web 作业、Azure 服务总线队列触发器防止消息被删除

Java - DocumentDB未经授权的访问

Azure AD 审核

azure - 如何以编程方式删除或重命名 Azure Active Directory?

javascript - 在 Google Charts Javascript 中循环

javascript - Express.js、mysql、通过一个属性分隔数据项

javascript - 将类应用于动态放置的矩形

javascript - 如何初始化两个Firebase应用程序

c# - 将 guest 用户添加到 Azure AD 组失败且权限设置正确

python - 如何在不使用 Flask 的情况下将 Python Telegram Bot 部署到 Azure?