我想设置一个开放的API,即不需要订阅密钥的API。
我已经创建了API,并将其关联到一个未选中"需要订阅"并已发布的新产品。然而,任何对此API的调用都会导致可怕的401"由于缺少订阅密钥,访问被拒绝。在向API发出请求时,请确保包含订阅密钥。">
我错过了什么?
在将此标记为重复之前:我已经搜索了类似的问题:
- Azure Api管理是否可以禁用订阅密钥
- 是否可以在没有订阅密钥的情况下调用Azure API Rest url
- 通过Azure API管理访问API,无需设置Ocp-Apim-Subscription-Key
- Azure API管理器将所有内容公开,去掉Ocp-Apim-Subscription-Key
它们似乎都表明API是已发布产品的一部分,其中"需要订阅"未被选中就足够了。显然,肯定还有其他事情,因为我在这种情况下,我仍然得到401…
您可以使用<choose>
策略来检测令牌是否无效,如果是,则返回401响应。
根据描述应如何使用承载令牌的RFC6750,API管理还返回带有401响应的WWW-Authenticate
报头。WWW-Authenticate
旨在指示客户端如何构造适当授权的请求。
有关更多详细信息,您可以参考本文。