问题标签 [msal.js]

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 回答
501 浏览

angular - 如何让 MsalGuard 使用我的客户端 ID?

我正在尝试将我的 Angular 应用程序设置为使用 @azure/msal-angular。我已经像这样设置了 MsalModule:

这个模块是在我的 app.module.browser.ts 中导入的。控制台日志成功打印出我的客户端 ID。

然后在我的 app.routing.ts 中,我在需要身份验证的路由上添加了 MsalGuard。

我所看到的:这些路由按预期重定向到登录屏幕,但是当您进行身份验证时,它要求授予“myTrialApp”权限,这不是我的应用程序的名称。

仔细查看调试器中的 MsalGuard,我可以看到它使用的客户端 ID 是未定义的。我试图了解我需要更改什么以确保登录页面使用正确的客户端 ID。

0 投票
1 回答
1698 浏览

javascript - 如何在浏览器上注销用户已关闭。即清除存储在localStorage中的JWT令牌(不在页面刷新时)

我正在使用带有 msal 的 JWT 令牌进行用户身份验证。用户登录后,我们将 JWT 令牌存储在 localStorage 中,并在注销时清除 localStorage 以及 msal loguut。

但我想强制注销浏览器上的用户已关闭。因此,一旦浏览器关闭,我必须清除 localStorage。

我尝试为此使用 onbeforeunload 和 onunload 方法,但是在页面刷新时也会调用此方法。- 尝试使用 sessionStorage 但这会导致用户登录其选项卡特定范围的每个选项卡 cos。

我尝试了以下代码

注意:在 msal 登录重定向回应用程序后,由于使用了 HashRouter,我们会刷新页面

0 投票
0 回答
354 浏览

azure-active-directory - 忘记登录帐户 AzureAD MSAL

是否可以以编程方式forget登录 Azure AD 用户?

我在 office.com 中看到了这个功能。见下图。

笔记:

在此处输入图像描述

0 投票
1 回答
125 浏览

msal - MSAL stateMismatch 的目的是什么

的目的是msal:stateMismatch什么?应该如何处理?

msalmsal:stateMismatch从 login.microsoftonline.com 重定向回来后正在 广播该事件。

我能找到的唯一信息是 GitHub 网站上的 spec.ts:stateMismatch broadcast when state does not match

0 投票
1 回答
389 浏览

javascript - 从 azure ad 刷新访问令牌

我有一个场景,我的 API 通过 Graph API 更新活动目录中的一些声明。
在这种情况下,我通过响应标头通知客户端它需要刷新访问令牌,以便获取带有新声明的令牌。

问题是,当我调用acquireTokenSilent(in Msal.UserAgentApplication) 时,给了我旧令牌。我发现这是因为 Msal 将访问令牌保存在 sessionStorage/localStorage 中。

有没有办法让我在不直接删除缓存的情况下明确请求新的访问令牌?

0 投票
2 回答
302 浏览

angular - 如何在 Ngrx 效果中使用 MSAL 的 loginRedirect?

我想知道是否有办法在 Ngrx 效果中使用 Msal angular 的 loginRedirect(): void 函数而不是 loginPopup(): Promise。

我可以使用 loginPopup() 但由于 loginRedirect() 的 void 返回类型,它破坏了我的 ngrx 效果链。由于移动设备上的弹出窗口问题,我无法使用 loginPopup() 函数。

下面是适用于 loginPopup() 的代码: Promise

0 投票
1 回答
512 浏览

azure - 在 AAD 访问令牌的组声明中,为什么我得到的 GUID 不是 AAD 租户中任何组的 objectId?

使用适用于 node.js 的 Microsoft MSAL 快速入门的修改版本(此处为原始版本),我使用隐式流成功接收了 Azure 存储 API 的访问令牌。该令牌包含一个组声明,但声明中的一个 GUID 似乎与租户中的任何组都不相关。从每个组中删除用户后,声明仍然包含该 GUID(并且正如预期的那样,不再包含其他人):

对该 GUID 的谷歌搜索没有产生任何命中,所以我假设它不是某种众所周知的 GUID。

为什么我会在团体声明中得到这个“未知”的 GUID?

涉及的AAD租户是一个很小的租户,专门用于我学习AAD和认证。因此,它只包含一个组。涉及的用户不是该单个组的成员。

我查看了 Azure 门户中的用户页面,这确实表明该用户“不是任何组的成员”。Azure CLI 还显示用户不是任何组的成员:

此租户中组的完整列表仅包含一个组,并且您可以看到它的 ObjectID 与我在声明中获得的 GUID 不匹配:

我还创建了另一个应用程序注册并让它公开一个虚拟 API。当使用该虚拟 API 作为范围时,我再次成功接收到访问令牌,但这一次再次包含与单个组声明相同的未知 GUID。

这是代码中希望相关的部分。

如上所述,首先我检索了 Azure 存储的访问令牌:

...但是我使用虚拟 API 得到了完全相同的结果:

该位使用户登录:

令牌在此处获取。我知道callMSGraph考虑到令牌的范围,这在这里不起作用。我从浏览器控制台日志中获取令牌并使用 jwt.ms 对其进行解码。

0 投票
1 回答
61 浏览

javascript - MSAL js:- 如果会话不可用,如何每次都向用户询问登录详细信息

我在我的应用程序中使用 msal.js。我有几个身份提供者,例如 Yahoo、Google、AAD 等,以便用户可以使用其中任何一个帐户登录。但问题是每当我在 msal 服务中调用 loginpopup() 方法时,它都会自动获取登录的邮件帐户。

对此的任何解决方案。

谢谢您的帮助。

0 投票
1 回答
113 浏览

azure-ad-b2c - B2C OpenID 与 Azure AD 连接

我正在尝试通过开放 ID 连接将 Azure AD 连接到 B2C。使用 MSAL JS,我能够成功登录 Azure AD 和本地 B2C 用户。

但是,当在 B2C 门户(来自 Azure AD)中创建用户时,邮件字段会丢失,例如姓名和电子邮件

查看 Azure AD 中的 ID 令牌,没有返回电子邮件或姓名的值。

0 投票
4 回答
1280 浏览

angular - 调用 B2C 保护的 Function App API 的 Angular 应用程序收到 500,Function 收到 404