Azure APIM基于产品限制谓词



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

我想创造一个名为";api-(name(-read";并设置仅允许GET谓词的策略。将会有另一种产品";api-(name(-write"允许所有VERB。我在CORS部分看到,我可以设置允许的方法,但不想在产品级别维护CORS设置。任何关于如何将产品限制为";只读";操作?

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>

最新更新