ADAL 到 MSAL 的迁移(HttpActionContext.ControllerContext.RequestContext.Principal.IsAuthenticated 变得错误)

Posted

技术标签:

【中文标题】ADAL 到 MSAL 的迁移(HttpActionContext.ControllerContext.RequestContext.Principal.IsAuthenticated 变得错误)【英文标题】:ADAL to MSAL migration (HttpActionContext.ControllerContext.RequestContext.Principal.IsAuthenticated getting false) 【发布时间】:2021-01-23 16:34:27 【问题描述】:

我们的应用程序是用 angularjs 和 C# 开发的。我使用 ADAL.js 进行 azure 广告登录。由于它正在弃用,我们正在迁移到 MSALjs 。我已经删除了 ADAL 的所有引用并用 MSAL 替换它,MSAL 配置如下

authority: "https://login.microsoftonline.com/common",
                clientID: AppClientId,
                redirectUri: "http://localhost:8080/#/home",
                postLogoutRedirectUri: logoutredirecURL,
                navigateToLoginRequestUrl: true,
                optionalParams: 
                    protectedResourceMap: GetEndPoints()
                ,
                tokenReceivedCallback: function (errorDesc, token, error, tokenType) 
                    console.log('token : ' + token);
                    localStorage.setItem('Authorization', 'Bearer ' + token);
                

我能够重定向到天蓝色的登录 URL,并且在输入凭据后 isAuthorized 也是正确的。 在将请求发送到服务器时,下面的代码

HttpActionContext.ControllerContext.RequestContext.Principal.IsAuthenticated

This isAuthenticated 变得错误,在 ADAL 中它变得真实。 我不知道我哪里错了。

PrincipalClaims 未获取用户。

请帮助并提前致谢

【问题讨论】:

你好 Hari,我使用了 MSAL.js 并在其中使用了上面的配置,我面临的错误是在身份验证中。 问题解决了吗,还在寻求帮助吗? 不,问题没有解决,但经过一些分析,例如 ADAL.js 配置类似于 MSAL.js (1.xx) 但 MSAL.js (2.xx) 有很多不同.有不同的配置和流程。 Msal 1.X.X – 这实现了 OAuth 的隐式流程并以 v2 端点为目标。它几乎与 Adal.js 相同。 Msal-browser 2.X.X – 该库使用 PKC 实现代码授权流程,这是 Msal 的最新版本,但没有 Angular.jsfound 示例 嗨@Jumbo,你可以找到MSAL.js的Pkce流程的实现here。 【参考方案1】:

您可以找到MSAL.js的Pkce流程的实现,它可以帮助您开发here。

【讨论】:

以上是关于ADAL 到 MSAL 的迁移(HttpActionContext.ControllerContext.RequestContext.Principal.IsAuthenticated 变得错误)的主要内容,如果未能解决你的问题,请参考以下文章

ADAL 和 MSAL 混淆

ADAL.js 和 MSAL.js 有啥区别?

如何在不使用 ADAL.js 或 MSAL.js 的情况下将我的 activiti 应用程序(版本 6)与 Azure Active Directory 端点 v2.0 集成

如何使用MSAL.js为Azure DevOps获取有效的AAD v2令牌

如何使用 MSAL.js 为 Azure DevOps 获取有效的 AAD v2 令牌

不记名令牌未添加到 HTTP 请求 - MSAL2 Angular