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

ionic-framework - 离子和 MSAL 身份验证

我有一个需要在 Azure 中进行身份验证的 Ionic 应用程序,因此我按照本教程安装了 MSAL: https ://docs.microsoft.com/en-us/graph/tutorials/angular

它就像“离子服务”的魅力,但是当我在设备中运行它时,当我尝试登录 Azure 时它会崩溃。我认为这是因为在 Ionic 中不允许弹出窗口 MSAL 显示用于登录。

所以我的第一次尝试是将 loginPopup() 调用更改为 loginRedirect()。所以我删除了这段代码:

我添加了这个新的(基于https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/errors.md):

但是这种方式,用户信息没有保存,因为我没有“结果”来处理或调用 setActiveAccount(result)。它甚至在“离子服务”中也不起作用,所以我放弃了这种方法。

第二种方法,在寻找可能的解决方案两天后,是在 InAppBrowser (https://ionicframework.com/docs/native/in-app-browser)中显示弹出窗口,所以我将代码更改为:

但它只是打开一个新窗口,什么都不做,它不执行loginPopup(),所以我也放弃了第二种方法。

任何人都知道如何避免 Ionic 中的弹出问题?

谢谢

0 投票
1 回答
54 浏览

angular - 无法使用 Msal Angular 9 获取自定义 API

我正在尝试将 MSAL 与 angular9 一起使用,这样我就可以访问自定义的“dynamics.com”api 我能够获得登录 API 的有效访问令牌

但由于某种原因,我无法访问此令牌来为自定义 api 发出 GET 请求

这是我的 app.module.ts

这是我的 app.component.ts

这是 app.component.html

谁能告诉这里有什么问题以及为什么我无法访问生成的令牌并在 API 中使用它?以及为什么每当我按下“获取”按钮时都会得到“获取https://xxxxxxxxx.xxxxxxxx.dynamics.com/api/data/v9.1 401”?

0 投票
1 回答
143 浏览

msal - 有什么方法可以在 MSAL 中处理 AADSTS50105?

当在 Azure AD 中为应用程序打开“需要用户分配”并且未在分配的组中直接分配用户时,登录过程会卡在 Azure AD 错误消息中并且不会返回到 Angular 代码.

MSAL 中是否有任何设置允许处理此错误并显示“未登录”类型的屏幕,可以提供有关如何访问的说明?

0 投票
0 回答
115 浏览

office-js - 在 Angular Office.js 插件中使用 Microsoft Access 令牌真的不可能吗?

我们希望为 Word 和 Outlook 的 Office 插件使用 Microsoft 身份验证。

  1. 微软关于 SSO 的文档说:使用 Office.auth.getAccessToken。我了解到它不再处于预览状态,但我无法使用它,因为我的 vscode/angular 编辑器无法识别 Office.auth.getAccessToken (intellisense/typescript) 导致编译错误。
  2. 如果我们使用 MSALv2 并尝试使用 acquireTokenSilent /acquireTokenRedirect 功能获取令牌,我们会收到一条错误消息,指出您无法在 IFrame 中运行它(使用 Office.js 就是这种情况)
  3. 如果我们将 MSALv2 与 acquireTokenPopup 一起使用,它(目前)在 Chrome 和 Edge 中运行。Word AddIn 不会在较新的 Safari 版本中运行。此外,此代码无法在桌面版 Office 中运行,出现弹出错误
  4. 然后是 Microsoft 的这篇文章,关于使用 displayDialogAsync 在 IFrame 之外托管身份验证。这看起来很有希望,直到我们了解到 Safari 中较新的安全功能会阻止从外部窗口返回 IFrame 的任何响应。

所以......没有运气。它确实让我们在街上呆了一段时间。从 Microsoft Office.js 插件中使用 Microsoft 身份验证似乎是不可能的。

有没有人可以为我们挽救这一天?

0 投票
0 回答
118 浏览

safari - 操作系统中出现密码模式时 Azure AD 登录弹出窗口未关闭

我正在使用带有 Angular 的 msal 库,我在 msal 服务中调用 loginPopup。除了使用 Safari(版本 15)的 iOS 之外,所有浏览器都可以正常工作。系统询问我是否要保存密码(见下面的截图)。无论我点击什么登录弹出窗口都不会关闭。如果我再次执行此操作并点击“保存密码”,然后再次尝试按预期登录所有工作。iOS 中的模式会阻止弹出窗口的关闭,因此用户不会在另一个选项卡/窗口中看到登录页面。如果我手动关闭弹出窗口,则会显示登录屏幕。对用户来说不是很好的体验。

任何帮助将不胜感激。

密码模式截图

0 投票
1 回答
72 浏览

angular - 在哪里可以找到 Angular 中的 Microsoft Azure msal 注册?

我正在使用 Angular 5.2.0,但无法找到集成 azure msal 以使用 Microsoft 帐户注册新用户的指南。

请分享任何资源或示例以在不更新角度版本的情况下实现此目的。

0 投票
0 回答
117 浏览

azure-active-directory - 如何通过单个 Azure AD 应用注册来保护 SPA 和 Azure Function

背景

我目前正在使用 Azure Functions v3.0 和 MSAL Angular v2.0

我使用快速设置设置了我的 Azure 函数 AD 注册。

回调是为函数应用程序自动添加的,我为 Angular SPA 添加了一个新回调。仅启用了 id 令牌流。

SPA 登录成功,并获得一个 JWT Bearer 令牌

直接访问函数应用程序也会导致正确登录,并返回会话 cookie

问题

如果可能的话,尝试让函数应用程序接受来自 SPA 应用程序的不记名令牌时会出现困难,或者我是否需要以某种方式将不记名令牌交换为会话令牌

0 投票
1 回答
89 浏览

python - 我们如何在后端验证来自 azure AD 的访问令牌?

我有一个来自 azure AD 的 accessToken。我需要在 python 中验证它们。我怎样才能做到这一点?

0 投票
1 回答
79 浏览

azure-ad-b2c - 如何刷新 Azure AD B2C (Angular) SPA 会话数据?

场景

我通过 Angular 应用程序中的 AD B2C 帐户登录。我集成了 msal-browser (^2.15.0) 和msal-angular (^2.0.1),用于身份验证和访问会话数据。

我使用 Graph API(来自我的 .NET 服务器)从我的 Angular 应用程序更新我的 AD B2C 用户记录。

要求

每当我通过 Angular 应用程序中的 Graph API(间接通过我的服务器)更新用户记录时,我希望我的浏览器会话也能反映这些更改。

问题:有没有办法通过任何 msal 服务调用在后台静默更新会话数据,或者我应该重定向到登录以重新接收会话数据?

0 投票
1 回答
59 浏览

asp.net-core - 如何从 Angular 应用程序调用受保护的 Web api

我关注了这个文档:asp.net core web api和这个SPA 文档

但是,当尝试从我的 Angular 应用程序(使用 [authorize] 属性集)进行 Web api 调用时,我在控制台日志中收到以下错误消息:

从源“http://localhost:4200”访问“http://localhost/api/getcustomer”的 XMLHttpRequest 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头.

我能够成功登录到 azure AD。但是,我的 api 调用中缺少 Authorization 标头。我在 node/express 中运行 SPA。asp.net-core 是后端。

我没有为 api 创建单独的应用程序注册。我确实选择了,但是公开了 api 并创建了一个范围。

401 是状态码:未授权。