azure - 是否可以在azure api管理中阻止用户使用api操作?

标签 azure azure-api-management

我编写了下面的代码来阻止用户从组开发中使用 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:未测试

关于azure - 是否可以在azure api管理中阻止用户使用api操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71547743/

相关文章:

Azure API 管理 "rewrite url"- 如何删除 URL 前缀

Azure APIM 控制在开发人员门户中显示哪些 API

azure - 如何从 Microsoft Azure 转出域名?

javascript - 如何从 Azure Function 返回 HTML 内容

.net - 如何在 jwt.io 中生成 256 位 key ?

azure - 使用Postman测试Azure APIM Oauth 2.0生成jwt

Azure 函数、部署槽和 API 管理 : Function key issue

由于假定的权限问题,Azure 模拟器无法打开 UI 控制台

debugging - 无法调试远程Azure网站

Azure CDN从后端获取数据