【问题标题】:Azure APIM Restrict verb based on ProductAzure APIM 限制动词基于产品
【发布时间】:2021-06-29 20:08:50
【问题描述】:

我们有几个 API,它们具有用于读取和写入数据的各种方法。所有 API 都通过 APIM,我想创建产品并将其分配给这些 API,但限制为使用动词(GET、POST、DELETE 等)读取或写入。

我想创建一个名为“api-(name)-read”的产品并设置一个只允许 GET 动词的策略。将有另一个产品“api-(name)-write”允许所有动词。我在 CORS 部分看到,我可以设置允许的方法,但不想在产品级别维护 CORS 设置。知道如何将产品限制为“只读”操作吗?

【问题讨论】:

    标签: azure-api-management azure-policy


    【解决方案1】:

    CORS 不用作基于动词允许或拒绝请求的一般方式,它仅用于实际的 CORS 功能:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS。此外,产品范围内的 CORS 也有其自身的局限性。

    要做您想做的事,请在产品范围内设置如下策略:

    <choose>
        <when condition="@(context.Request.Method != "GET")">
            <return-response>
                <set-status code="401" reason="Unauthorized"/>
            <return-response>
        </when>
    </choose>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 2019-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多