簡體   English   中英

是否可以在azure api管理中屏蔽用戶使用api操作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM