如何在较低环境(Dev、UAT 等)中处理 Azure 应用程序角色?

问题描述 投票:0回答:1

我有一个 .NET 应用程序,其前端使用 Azure 应用程序角色来处理各种页面/功能的权限。使用 Microsoft Graph API,我们能够通过配置页面将用户添加到分配了这些应用程序角色的组中。尽管在我们的较低环境(Dev 和 UAT)中,这会导致冲突,因为在 Dev 中向用户授予角色会突然授予他们在 Prod 中的访问权限。

我做的第一件事就是拆分我们的 Azure 组,以便有一个“测试”副本,我们的开发/UAT 环境仅在将用户添加到组时才与其交互。然而,分配给组的底层应用程序角色仍然相同。

我也考虑过将应用程序角色分开,因此可能有“Provider.Create”和“Provider.Test.Create”,并在较低环境中让我们的应用程序密钥脱离“Test”前缀。然而,我们已经拥有超过 100 个应用程序角色,因此标头中发送的声明非常大。如何将应用程序角色的范围以及因此发送的声明限制为仅“测试”或“开发”版本?

举个例子: 在我们应用程序的许多模块中,可能有一个工作流程页面,允许跟踪和工作订单。此模块有 3 个 Azure 组:

  • 用户
  • 经理
  • 管理员

这 3 个组可能具有与其权限相对应的 Azure 应用程序角色的组合,例如 Order.Create、Order.Edit、Order.Delete、Order.ViewAll 等。

如果我有一个管理页面来管理属于 3 个组的用户,如果我将用户添加到 Dev 中的管理组,以测试并确保权限有效,该用户现在将具有 Order.ViewAll 和其他管理应用程序角色他们在产品环境中的声明!

.net azure claims-based-identity
1个回答
0
投票

在每个环境中使用具有相同应用程序角色名称的不同应用程序注册。如果您的 AAD 许可证支持,还可以考虑将角色分配给组,以减少直接应用程序角色分配的数量

© www.soinside.com 2019 - 2024. All rights reserved.