如何限制每个组在 Azure API 管理 (APIM) 中使用操作
How can I restrict the use of operations in Azure API Management (APIM) per group
如果您能帮助我解决以下问题,我将不胜感激:我正在使用群组限制在 APIM 中使用 API,但我想限制甚至它的操作例如:我在 APIM 中有一个 API,具有以下操作:
- 操作A
- 操作B
- 操作C
以及以下用户组:
- 第 1 组
- 第 2 组
- 第 3 组
所以我们的想法是根据一些业务规则授予对组的访问权限,例如:
- 组 1(操作 A、操作 B)
- 组 2(操作 A)
- 组 2(操作 A、操作 B、操作 C)。
有没有办法实现这种行为?非常感谢
对于此要求,您可以在操作级别使用 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>
如果您能帮助我解决以下问题,我将不胜感激:我正在使用群组限制在 APIM 中使用 API,但我想限制甚至它的操作例如:我在 APIM 中有一个 API,具有以下操作:
- 操作A
- 操作B
- 操作C
以及以下用户组:
- 第 1 组
- 第 2 组
- 第 3 组
所以我们的想法是根据一些业务规则授予对组的访问权限,例如:
- 组 1(操作 A、操作 B)
- 组 2(操作 A)
- 组 2(操作 A、操作 B、操作 C)。
有没有办法实现这种行为?非常感谢
对于此要求,您可以在操作级别使用 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>