【发布时间】:2020-11-23 19:51:58
【问题描述】:
我开发了一个基于域的建模工具和代码生成器,它能够根据 DDD 捕获域模型并自动生成 ASP.Net Web API 微服务。
我还创建了一个 Azure B2C CLI 工具,它使用 MS Graph API 以编程方式为每个 Web ASP.NET Web API 生成一个 Azure B2C AD 应用程序,其中包括所有用于保护某些生成的 Web API 操作的可能范围。
由于其中一些生成的 API 服务经常通过 REST 和/或 gRPC 与其他生成的服务交互,Azure B2C CLI 工具还添加了每个 Web API 所需的依赖 API 权限列表,以便与其他 Web API。
我的 Azure B2C CLI 工具运行良好,正在为家庭租户中的每个域服务创建/更新底层 Azure B2C Web/API 应用程序以及必要的服务主体。
目前我仍然需要登录 Azure 门户,以便为每个 B2C 应用程序授予 API 权限。
我的问题是:是否可以使用我用来创建相同 B2C Web/API 应用程序的 B2C 应用程序自动授予 API 权限?
这似乎应该是可能的,因为 Azure B2C CLI 工具的 B2C 应用程序是这些创建的应用程序的所有者。
为了帮助说明和支持我的问题,我在下面提供了一些屏幕截图。
首先,下图显示了我的 Azure B2C CLI 工具 运行的权限集,以便通过 MS Graph API 为每个 Web API 创建其他 B2C 应用程序。
在每次传递时,Azure B2C CLI 工具都会处理一个特定的域模型,以了解该模型中每个域服务的定义,并将自动在 Azure B2C 中为特定域模型中的每个服务创建一系列 B2C 应用程序。
以下域模型有 4 个域服务,结果是我的 Azure B2C CLI 工具生成了 4 个 B2C 应用程序,如下图所示 ..
Azure B2C CLI 工具为每个 API 操作创建尽可能多的权限范围项,并将其添加到基础 API OAuthPermissionScopes。以下是为“WorkSpace”和“SharedServices”Web API 生成的权限范围服务的一些示例...
Azure B2C CLI 还会向每个生成的 B2C API 应用程序添加任何 API 权限。以下示例显示“CoreServices”API 需要“SharedServices”应用 API 和“WorkSpace”应用 API 的权限
完成后,我可以登录 Azure 门户并手动为每个 API 授予这些权限。
我不想手动授予这些权限,而是希望通过我创建的 Azure B2C CLI 工具中的 MS Graph 以编程方式授予这些权限。
代码生成器域建模工具将生成上百个服务,因此我希望尽可能自动化地保护生成的域服务,包括授予 API 权限。
允许我在 Azure B2C CLI 工具中完全自动化此过程的 MS Graph API 是什么?
【问题讨论】:
标签: azure asp.net-web-api microsoft-graph-api azure-ad-b2c