[英]is it possible to block users from using api operations in azure api management?
我寫了下面的代碼來阻止用戶來自 group 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令牌聲明。
您可以在此處參考微軟文檔以了解政策的使用: https://learn.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies#ValidateJWT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.