angular - Angular 6 azure 广告角色和受众问题
问题描述
嗨,我有一个 Angular 6 应用程序,在 c# 中有单独的 Web API,它验证登录用户的角色。对于 Angular 和 Web API,注册是分开的。不知何故,JWT Web 令牌中的受众是以 Angular 应用程序的注册客户端 ID 而不是资源 URI 的形式出现的。有 2 个问题: 1. 我们可以有 2 个不同的应用注册是否有效?2. 如果是,为什么观众没有正确来。我检查了很多论坛,但没有找到解决方案。3. 角色定义在 Web API 的 Manifest 文件中,他们能进入 JWT 令牌吗?这是 Angular 6 的应用程序模块的示例
解决方案
- 我们可以有 2 个不同的应用程序注册是否有效?
是的,这是一个有效的案例。为 UI 和后端 API 注册一个或多个应用程序取决于您的设置/场景。例如,一种情况是,当 API 不仅可以被 Angular 前端使用,还可以被其他应用程序(今天或将来)使用,并且这些其他应用程序与 Angular UI 应用程序无关,这将是一个很好的方法设置单独的应用程序注册。
- 如果是,为什么观众不正确。我检查了很多论坛,但没有找到解决方案。
这将取决于您的代码。向 Azure AD 请求令牌时,您指定的资源/端点是什么。您没有在问题中包含太多代码,所以这里有一个类似的示例,您可能会或可能不会做类似的事情,但它应该会给您一些想法。
在 AngularJS 单页应用程序中调用受 Azure AD 保护的 Web API
与您的设置类似,分别注册 API (ToGoAPI) 和 SPA。有点旧,因为它使用 AngularJS,但概念仍然相同。具体来说,查看在App.js中设置端点集合的部分(第 25 行,其中代码指定 endpointURL :To Go API 的 App ID URI)
- 这些角色是在 Web API 的 Manifest 文件中定义的,他们能进入 JWT 令牌吗?
简短的回答是肯定的。只要您正确配置了应用程序清单,并且正在登录的用户(或您正在为其获取 JWT 令牌)已经预先分配了一个或多个角色。
以下是相关链接和一个示例应用程序,其中提供了完整的步骤和演练
- 应用程序角色
使用 Azure AD 应用程序角色和角色声明在 Web 应用程序中进行授权
可以从 Azure 门户向用户分配应用程序角色。
推荐阅读
- android - ARCore - Sceneform - 超市产品顶部的弹出视图
- php - 请求类:规则取决于元素的数量
- javascript - 为什么卡片滑块只循环播放前 3 张卡片而不循环播放其余卡片?
- c++ - Valgrind 中的内存泄漏使用 new
- asp.net - 使用 Zabbix API 获取 CPU 历史记录的问题
- javascript - 当我使用 let 声明时,初始化区域中语句的语义
- sequelize.js - Sequelize LIKE/iLIKE 以列值作为子字符串
- python-3.x - Python - PYQT5 在 QtextEdit 中打印缺失的字母
- python - 未检测到 TaLib 锤纹
- docker - 通过主机上的 UNC 共享访问 Docker 容器文件系统