ADAL.js 无法在 Microsoft 个人帐户中使用

ADAL.js not working in Microsoft personal account

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

这是登录页面url:

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

它returns下面的错误:

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 a code sample that implements a JavaScript single page app using said library and endpoint. You can also find more documentation on v2.0 and MSAL here