如何限制每个组在 Azure API 管理 (APIM) 中使用操作

How can I restrict the use of operations in Azure API Management (APIM) per group

如果您能帮助我解决以下问题,我将不胜感激:我正在使用群组限制在 APIM 中使用 API,但我想限制甚至它的操作例如:我在 APIM 中有一个 API,具有以下操作:

以及以下用户组:

所以我们的想法是根据一些业务规则授予对组的访问权限,例如:

有没有办法实现这种行为?非常感谢

对于此要求,您可以在操作级别使用 validate-jwt 策略。

首先,您需要按照说明 here 在您的令牌中包含 groups 声明。您只需要修改应用程序清单中的“groupMembershipClaims”字段:

"groupMembershipClaims": "SecurityGroup"

然后令牌将包含用户所属组的 ID,如下所示:

{
  "groups": ["1ce9c55a-9826-4e32-871c-a8488144bb32"]
}

然后在您的 APIM 中使用 validate-jwt 策略来检查字段 groups 是否包含组(group1、group2 或 group3)id。如果是,那就做后端api。如果不是,您可以在策略中设置 403 禁止响应,如下所示:

<return-response>
    <set-status code="403" reason="Forbidden" />
</return-response>