繁体   English   中英

是否可以创建一个策略,即使需要 opim 订阅密钥,也有条件地在 azure 中公开 api 管理端点?

[英]Is it possible to create a policy that will conditionally expose an api management endpoint in azure even when a opim-subscription key is required?

我正在寻找的一个示例如下,但允许访问元素不存在。 我可以用什么替换以便不检查订阅密钥。 即在这种情况下,只要他们发出 GET 请求,它将允许所有调用者访问 controller。

<policies>
<inbound>
    <base />
    <choose>
        <when condition="@(context.Request.Method.Equals("GET"))">
            <allow-access />
        </when>
    </choose>
</inbound>
<backend>
    <base />
</backend>
<outbound>
    <base />
</outbound>
<on-error>
    <base />
</on-error>

任何帮助,将不胜感激。

解决方法是关闭产品上的Requires subscription设置,并自行检查入站策略中的订阅密钥。 这是一个如何做到这一点的例子。

  1. Go 到 Starter 产品的设置
  2. 取消选中需要订阅并保存。
  3. 打开产品的策略并将以下策略添加到入站。 <check-header> policy 的值是 Starter 产品的订阅密钥。
<choose>
    <when condition="@(!context.Request.Method.Equals("GET"))">
        <check-header name="Ocp-Apim-Subscription-Key" failed-check-httpcode="401" failed-check-error-message="Not authorized" ignore-case="false">
            <value>920b4e307f4f41ff9bd4a3bd6a5450ee</value>
        </check-header>
    </when>
</choose>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM