azure - 限制 Azure AAD 中的客户端应用程序
问题描述
我有一个 AAD 租户。我在租户内注册了一个服务应用程序。
我在 Tenant & Retrieved Client ID & Secret 中注册了另一个客户端应用程序 1。
我的朋友在 Tenant & Retrieved Client ID & Secret 中注册了另一个客户端应用程序 2。
现在两个客户端应用程序都能够访问服务!
但我想限制只有客户端应用程序 1 应该能够访问该服务。
请建议如何做到这一点。
解决方案
如果您想根据应用程序角色限制访问(不代表用户)
- 将 appRole 添加到“服务应用程序”清单。
- 转到“ClientApp1”API 权限并添加在 Step1 中创建的“Service App”应用程序权限。确保已授予管理员同意。
- 使用 ClientID 和 ClientSecret 获取“服务应用程序”的访问令牌,它应该具有新角色;在您的“服务应用程序”控制器代码中添加Authorize (Roles = "ServiceConsumer") 属性
[Authorize(Roles = "ServiceConsumer")] [Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { }
推荐阅读
- apache-flink - Apache Flink:使用 filter() 或 split() 拆分流?
- ios - 对未反映在 git 中的本机函数的 xcode 更改的本机撤消做出反应
- php - 事务中的 PHP PostgreSQL 多个查询
- r - R如何为列中的每个唯一字符创建一列并填充匹配值
- c# - 为什么 C# Winforms 用户控件中的所有组件在 UI 编辑器和运行时都有不同的大小?
- c# - C# 与数组指针的互操作很短,没有不安全
- python - 如何在 Gremlin-Python 中使用“neq”?
- angular6 - 根据来自服务器的数据禁用 mat-table 内的 mat-checkbox
- excel - 输入所有必需数据后,将新数据从一个工作簿复制并粘贴到另一个工作簿
- android - Google API KEY 只能使用一次或两次吗?