首页 > 解决方案 > Msal Angular Preview Azure AD 同意范围和访问令牌版本错误

问题描述

我正在更新我的 Web 应用程序以使用新的 msal 库 @azure/msal-angular。我以前使用过旧的 adal 库。前端 Web 应用程序是用 Angular 5 编写的,它调用后端应用程序,它是一个 asp net core web api。它们都在 Azure AD (apps v1) 中使用相同的应用注册。前端应用程序向 Microsoft Graph api、Dynamics CRM 和后端 Web api 发出请求。我没有使用 msal 获取访问令牌方法,只使用 msal 配置。在配置中,我只能使用 Microsoft graph 或 Dynamics CRM 的范围。如果我同时使用两者,我会收到来自 Microsoft 的错误,即我的范围不正确。当我使用 Dynamics CRM 范围、crm url + '/.default' 时,我没有获得访问令牌,而且我的后端的令牌是版本 2。0 出于某种原因,即使我已经同意,也总是要求管理员同意。前端请求使用 @ngx-resource/core 库。当我执行后端 Web api 请求时,在 ResourceHandlerHttpClient.prototype.handleResponse 中请求管理员同意,传递的 req 属性也有一个空的标头属性,因此从 req 标头属性获取密钥时出现另一个错误。

我不明白为什么我得到一个空的 req 标头属性,前端应用程序中唯一不同的是我正在尝试使用新的 msal 库。

有人能告诉我如何正确配置我的 msal 配置,以便我可以通过所有必要的同意并获得三个所需的访问令牌,版本 1.0 吗?

我的目标是从 angular5 项目中删除 adal 库,并使用 msal 库来获得与 adal 相同的标记。

标签: angularasp.net-coredynamics-crmazure-active-directorymsal

解决方案


关于这个问题,我认为您应该在 Azure 门户中注册一个新应用程序。更多详细信息,请参阅文档


推荐阅读