在azureapi管理中,是否可以阻止用户使用api操作



我在下面写了一段代码,用于阻止来自组dev的用户使用api操作。我想知道是否有一种方法可以阻止组中的用户访问特定的方法,如put、delete和只允许组中用户使用get方法?

<choose>
<when condition="@(context.User.Groups.Any(g => g.Name == "dev"))">
<return-response>
<set-status code="403" reason="Unauthorized" />
<set-body>Users in group dev do not have access to this method.</set-body>
</return-response>
</when>
</choose>
<set-variable name="isAccessible" value="@(context.User.Groups.Any(g => g.Name == "dev") && context.Request.Method==PUT)" />
<choose>
<when condition="@(context.Variables.GetValueOrDefault<bool>("isAccessible"))">
<return-response>
<set-status code="403" reason="Unauthorized" />
<set-body>Users in group dev do not have access to this method.</set-body>
</return-response>
</when>
</choose>

PS:未测试

您可以使用"validate jwt"策略并根据调用的方法允许/限制访问。用户将在调用API时出示JWT令牌,您可以使用操作级策略或API级策略(基于方法检查(并验证JWT令牌声明。

有关策略的使用,您可以在此处参考microsoft文档:https://learn.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies#ValidateJWT

最新更新