问题标签 [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 投票
0 回答
46 浏览

angular - 带有 MSAL V2.0 的 Angular - 更改密码后会话处于活动状态

我在 Angular SPA 中使用 @azure/msal-angular 进行 Azure AD 身份验证。我的后端是 .Net 5 API。我按照下面的文档来实现 AD 身份验证。

https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-angular-auth-code

在针对 Azure AD 成功进行身份验证后,我登录了应用程序。我保留了这个应用程序,并从 Azure 门户更改了我的密码。然后我回到我的应用程序,无需重新登录即可访问所有功能。

谁能指导我是否有任何方法可以将 Angular 应用程序重定向到登录屏幕,以在 Azure 门户中更新密码时强制用户提供凭据?或者有什么方法可以在 API 端(.Net 5)处理这个问题?

0 投票
0 回答
43 浏览

angular - 无法在应用注册重定向 URI Azure AD 中附加动态参数

已经在 Angular Routing 中实现了一个带参数的路由并声明为 { path: 'xyz-detail/:id', component: xyzDetailComponent, canActivate:[MsalGuard], canDeactivate: [CanDeactivateGuard] },

我正在使用 MSAL Angular 插件并在 Azure Ad 中添加重定向 URI,http://localhost:4200/xyx-detail/{id}但它的抛出错误,我也尝试添加*url 的后缀但抛出通配符错误,任何人都可以让我知道如何添加重定向Azuare AD 中带有动态参数的 URI。

0 投票
0 回答
50 浏览

angular - 带有 MSAL 的 Angular Web 应用程序会出现跨域令牌兑换错误

我正在将 MSAL 与 Angular Web 应用程序一起使用。Azure 门户中的应用程序类型是“Web”。

当我尝试使用单点登录登录时,出现以下错误。一旦用户登录到应用程序,我们必须显示当前用户的用户名。

AADSTS9002326:跨域令牌兑换仅允许用于“单页应用程序”客户端类型。

我不想将应用程序类型更改为“SPA”。

角度版本:11

0 投票
1 回答
18 浏览

angular - 进行 HTTP 调用时未设置 Bearear 令牌 @azure/angular

我已经在我的一个项目中实现了 Azure AD。登录后,我尝试对受保护的 web api 进行 Http 调用。实施了文档中提到的步骤。但是,一旦我进行 http 调用,就会获得 401 未经授权。尝试在 devtools 的网络选项卡中进行调试。请求标头中未设置授权。根据文档,msal 拦截器将设置令牌。但在我的情况下,令牌不是由 msal 设置的。令牌在本地存储中可用。 https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-angular-auth-code

0 投票
0 回答
11 浏览

angular - 我可以在一个应用程序中使用 2 个具有不同 clientID 和权限的 msal-angular 登录吗?

我可以在一个应用程序中使用 2 个具有不同 clientID 和权限的 msal-angular 登录吗?我可以使用 msal 登录到我的应用程序,我可以在没有 msal 的情况下登录。当我在应用程序中时,您必须使用 msal 登录某些功能,但要登录另一个 Azure 活动目录。

0 投票
0 回答
46 浏览

azure-active-directory - Angular 中的 MSAL - no_account_error:没有提供帐户对象来获取令牌静默

我在运行 Angular 11 和 .NET Core 2.2 的 Web 应用上使用 MSAL 库实现了 Azure AD 登录。登录似乎工作正常,但我找不到任何关于如何处理由于令牌过期而导致的 401(未经授权)HTTP 错误的可靠信息。显然,我必须在处理完交互式登录后调用 acquireTokenSilent,但是当我这样做时,我收到以下错误:

检索访问令牌时出错:BrowserAuthError:no_account_error:没有提供帐户对象来获取令牌Silent,也没有设置活动帐户。请致电 setActiveAccount 或根据请求提供帐户。

在哪里可以找到 setActiveAccount 方法?我在 MsalService 类的任何地方都看不到它。另外我相信图书馆应该在成功登录后将帐户设置为活动状态。

我正在通过在用户登录后从我的 API 返回 401 错误来测试这种情况,以触发 acquireTokenSilent 调用。

这是处理 401 错误的拦截器的代码:

msalAuthentication 对象包含初始登录的结果,包括令牌、用户信息和范围。我不认为每次令牌过期时用户都应该看到一个弹出窗口。帮助将不胜感激。

0 投票
0 回答
18 浏览

asp.net-core - 使用 msal-angular 通过 Angular SPA 向 Azure/Office365 验证 ASP.NET Core 后台服务

我正在构建一个 Web 应用程序;前端是使用 Angular8 的 SPA,后端是 ASP.NET Core 3.1 Web API。该应用程序已经有自己的身份验证方案,使用 JWT Bearer 令牌进行设置。

现在我需要为后端添加在用户的 Office365 日历上同步事件的功能。要求是:

  • 用户应在前端登录其 Microsoft Office365 帐户;
  • 前端应在后端“保存”身份验证结果,允许后端定期与 Micosoft Graph API 交互。
  • 在(极少数)情况下,由于某些原因必须更新身份验证(例如需要不同的权限/范围),后端将通知前端需要新的登录。

我目前能够使用 MSAL.NET 和 msal-angular 在示例应用程序中执行成功登录,但我不能做的是将我从 msal-angular 获得的身份验证结果传递给 .NET 并使用它继续进行进一步通话和令牌续订。

我正在考虑修改/扩展 msal-angular 库以支持 MSAL.NET 中使用的 MSALv3 缓存序列化方案并将缓存发送到我的 Web 应用程序,但它似乎非常复杂和脆弱(我看到这些库的内部结构是跨版本不稳定)。

那么,MSAL 是否以其他方式支持此用例?我应该使用一些不同的库吗?

0 投票
0 回答
12 浏览

angular - 注销时绕过帐户选择屏幕(注销)@azure/msal-angular V2

我正在使用@azure/msal-angular版本 2 和Angular版本 13。场景是当用户登录到应用程序时需要授权用户,如果他没有访问权限则需要从应用程序中注销用户。这将通过调用 msalService.logoutRedirect() 在后台发生。调用注销功能时,会显示 Microsoft 帐户选择屏幕以注销而不是自动注销。有什么方法可以跳过帐户选择屏幕以退出。