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.js 或 MSAL.js 的情况下将我的 activiti 应用程序(版本 6)与 Azure Active Directory 端点 v2.0 集成
如何使用MSAL.js为Azure DevOps获取有效的AAD v2令牌