gpt4 book ai didi

azure - 如何使用 MS Graph 在 Azure AD B2C 中自动授予 API 权限审批

转载 作者:行者123 更新时间:2023-12-03 00:57:53 27 4
gpt4 key购买 nike

我开发了一个基于域的建模工具和代码生成器,它能够捕获每个 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 应用程序。

enter image description here

在每次传递中,Azure B2C CLI 工具都会处理特定的域模型,以了解该模型中每个域服务的定义,并将针对特定域模型中的每个服务自动在 Azure B2C 中创建一系列 B2C 应用程序。

以下域模型有 4 个域服务,这会导致我的 Azure B2C CLI 工具生成 4 个 B2C 应用程序,如下所示。

enter image description here

Azure B2C CLI 工具为每个 API 操作创建尽可能多的权限范围项,并将其添加到底层 API OAuthPermissionScopes。以下是为“WorkSpace”和“SharedServices”Web API 生成的权限范围服务的一些示例...

enter image description here

enter image description here

Azure B2C CLI 还会向每个生成的 B2C API 应用程序添加任何 API 权限。以下示例显示“CoreServices”API 需要来自“SharedServices”应用 API 和“WorkSpace”应用 API 的权限

enter image description here

完成后,我可以登录 Azure 门户并根据每个 API 手动授予这些权限。

enter image description here

我不想手动授予这些权限,而是希望通过我创建的 Azure B2C CLI 工具中的 MS Graph 以编程方式授予这些权限。

代码生成器域建模工具将生成数百个服务,因此我希望尽可能自动保护生成的域服务,包括授予 API 权限。

允许我在 Azure B2C CLI 工具中完全自动化此过程的 MS Graph API 是什么?

最佳答案

Microsoft Graph 目前不支持“授予管理员同意”功能。

AAD Graph 有一个端点 https://graph.windows.net/myorganization/consentToApp?api-version=2.0,用于授予管理员同意,但仅在 Microsoft 内可用。从外部调用此端点将得到 this error .

您可以考虑使用 Azure CLI cmd az ad apppermission grantaz ad apppermission admin-consent --id $appid。请参阅引用here .

这两个命令之间存在差异。更多详情可以看我之前的answer .

关于azure - 如何使用 MS Graph 在 Azure AD B2C 中自动授予 API 权限审批,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64975410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com