问题标签 [msal-angular]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
541 浏览

angular - Azure AD Msal 拦截器访问令牌

我正在使用 azure MSAL 来验证我的 API,但问题是我正在使用 DevExtreme 自定义存储进行服务器端分页。

Msal Interceptor 为 HttpClient 工作并自动生成令牌,但在这种情况下,我不通过 h​​ttp 发送请求。

如果我使用登录后获得的访问令牌,则会发生错误无效签名,如果使用 IdToken,那么 401 我该如何解决这个问题。

MSALInterceptorConfigFactory:

我正在获取 accessToken 和 IdToken 的登录响应

我在结果中都得到了 accessToken 和 IdTOken 但如果我向它们发送对 Bearer 的请求,这些都不起作用

0 投票
1 回答
26 浏览

angular - 无法在我的 Angular 应用程序中单击按钮以通过 microsoft 帐户重定向和连接

我构建了一个 Angular 应用程序,我想让用户仅通过 Microsoft 帐户使用 @azure/msal-angular 和 @azure/msal-browser 包连接到它。

我创建了一个组件来处理称为登录的连接

这是 login.component.ts

login.component.html

app.module.ts

app.component.html

最后是我的 app-routing.module.ts

当我点击那个按钮

登录,什么都没有发生。当我尝试在登录函数 (login.component.ts) 中使用 loginPopup() 执行此操作时,我会有一个弹出窗口在出现后立即消失。我以为是portal.azure.com的注册申请问题,所以我删除了以前的应用注册并创建了一个新的,并将id放在app.module中,但仍然没有。

任何帮助将不胜感激。

非常感谢 !

0 投票
1 回答
49 浏览

angular - 生产 SPA 上的 Angular 应用程序 Http 解析错误

我在同一目录中有角度和 dotnet 核心模板应用程序。

我必须在 azure 服务器上上传构建,但出现此错误。请指导我如何解决这个问题。

生产:

本地主机:

0 投票
1 回答
56 浏览

angular - MSAL profileEdit 在注销和登录之前不会将更改的配置文件数据返回到 Angular 应用程序

我有一个应用程序,它使用 MSAL 和 Azure 用户流在我的 Angular/Ionic 应用程序中提供登录、注册和配置文件编辑页面和功能,但由于某种原因,被编辑的配置文件会将未更改的数据返回到我的应用程序。如果我回到 Profile Edit 用户流程,我会看到正确的更改配置文件数据,但是当我返回应用程序时,它仍然显示旧数据。刷新页面也不起作用。

奇怪的行为是,只要我注销并登录,此配置文件数据更改就会显示在我的 Angular 应用程序中。

我尝试acquireTokenSilent()ssoSilent()传递旧配置文件信息的参数以希望获得新的东西,但我仍然会从 AuthenticationResults 收到旧的配置文件信息。

我尝试将一个添加iframeHashTimeout到 MSAL 配置,但没有奏效。

任何人都可以就如何解决这个问题提供煽动或新的想法,感觉就像我只是在黑暗中刺伤。

0 投票
1 回答
75 浏览

jwt - Azure AD B2C 一直提供 v1 令牌而不是 v2 令牌

即使在已注册的 SPA 应用的清单中配置了 v2 令牌,Azure 的 AD B2C 仍会继续发布 v1 令牌:

客户端使用@azure/msal-angular v2.0.5(连同@azure/msal-browser v2.19.0)通过普通的MSAL拦截器请求令牌:

这看起来不错,尤其是"accessTokenAcceptedVersion": 2.

令牌仍然是 v1 的根本原因可能是什么?

指针将不胜感激。

0 投票
0 回答
90 浏览

angular - 使用 MSAL 库 v2 的 Angular 应用程序在重新加载页面后显示登录页面

MSAL 配置符合以下代码片段:

我能够成功登录并使用该应用程序,但是当我刷新页面时,会出现登录提示以进行登录。此配置中缺少什么?

0 投票
0 回答
115 浏览

msal - 尝试注销时,MsalService / PublicClientApplication 为空

高层问题

我有一个成功连接到 Azure AD 应用程序进行身份验证的 Angular 应用程序。到目前为止,这完全没有问题。问题是当我尝试执行注销功能时。我认为这个问题源于我如何在我的 Angular 应用程序中实例化 MSAL 库。

背景和代码

下面是我的app.component.ts的部分代码。有一个配置服务可以读取本地 JSON 文件以获取 Azure clientID、applicationID 等信息。这是JsonConfigService的一部分。一旦 NgInit 运行,我们还会从CompanyApi获取信息,该信息提供登录用户的名称、他们的姓名等信息,并将其显示在整个应用程序中存在的标题上(因此,它位于app.component.ts文件)。这个标题有一个汉堡菜单,由下面的 JSON 填充,应该是直观的。

运行时的问题:

如果我在NgInit()上设置断点,我可以确认_msalAuthService实例属性中都有一个对象。伟大的。但是,当我单击 Logout() 的 Hamburger 链接时,this._securedApplication是未定义的。此类中没有其他代码可以删除this._securedApplication。同样,clientid 等都很好。有效令牌已通过,我可以看到网络流量。

我认为问题出在哪里

为了适应从配置文件中读取,MsalModule 和各种模块被加载到app.module.ts文件的Providers部分。它看起来像这样:

它似乎工作得很好,配置设置正确。我只是没有提到我认为是注入变量的东西。

我在这里做错了什么,有没有更好的方法来实现这一点?

0 投票
1 回答
67 浏览

asp.net-core - 将项目发布到 Azure VM 时不会弹出 MSAL

下面是我通过 MSAL 弹出和登录的代码。

上面的代码在我的本地机器上运行时有效。

下面是我在 Azure AD 中的设置。当我将它设置为 localhost:5000 时它工作 在此处输入图像描述

但是当我将 localhost 设置为托管在 Azure 虚拟机上的“myWebAppUrl”时。MSAL 不会弹出。它只会返回“操作已取消”。我在这里错过了什么? 在此处输入图像描述

0 投票
0 回答
89 浏览

angular - 在 Angular 8 中使用 hashlocationstrategy 时,不会调用 @azure/msal-angular 包的 handleRedirectCallback

目标 -我正在使用angular 8 中的 @azure/msal-angularmsal库实现 azureAD 身份验证。

问题 -使用 pathlocationstrategy 时一切正常,但使用 hashlocationstrategy 时,@azure/msal-angular 库的回调没有被调用。

代码流 - 用户单击 HomeComponent 中的登录按钮 -> 用户被重定向到微软的登录页面 -> 用户输入凭据 -> 成功登录后,用户被重定向到msalLandingComponent主组件(在 appcomponent 的 routeroutlet 中呈现),其中回调(this._msalService .handleRedirectCallback) 应该执行。

代码

环境.ts

还尝试将 redirectUrl 作为 http://localhost:4200/

应用程序路由.module.ts

{ 路径:'msal-landing',组件:MsalLandingComponent }

HomeComponent - 用户单击调用 onButtonClick() 的登录按钮

home.component.html

home.component.ts

MsalLandingComponent - 用户在成功登录时被重定向到该组件

msal-landing.component.ts

问题描述

用于将用户重定向到微软的登录页面

被调用,登录后用户被重定向到重定向 url,在 ngOnInit 下面的代码应该执行

但是在使用 hashlocationstrategy 时不会调用此回调。

附加信息 我认为在应用注册期间无法在天蓝色中设置 redirectUrl。

因此,我们没有将重定向 url 设置为“http://localhost:4200/#/msal-landing”,而是将其设置为“http://localhost:4200/”。这样就调用了 home 组件。

我已经通过将 msal-landing.component.ts 的 ngOnInIt 移动到 home.component.ts 来更新上述代码,并删除了 MsalLandingComponent。

但在这种情况下,也不会调用 handleRedirectCallback。仅当将此代码放入 app.compnent.ts 的 ngOnInIt() 时才会调用它。无法理解为什么它在根组件中被调用,它是 appComponent 而不是在 homeComponent 中。

0 投票
0 回答
12 浏览

msal - 如何从重定向到登录工作流中排除特定的 http 动词

我想在调用时将令牌传递给我的 api http.post('http://localhost/api/spaceships')。但是,我想排除http.get('http://localhost/api/spaceships'). 我正在使用 asp.net-core 并且存在一个[AllowAnonymous]以及一个[Authorize]属性。但是,我必须添加.../api/spaceshipsprotectedResourceMap,以便在发布期间使其超过授权属性。如何排除http.get?我正在使用 msal-angular v2。角度 v11。