Azure API 管理,单个 API 接受 AAD 或订阅密钥

Azure API Management, single API accept AAD or subscription key

是否可以在 APIM 中有一个 API 接受 AAD 令牌或订阅,具体取决于它属于什么产品?

默认,这不起作用,因为在 API 级别取消选中“需要订阅”将覆盖设置产品以需要订阅。

所以,我看到了两个解决方案.. 在 APIM 中创建两个 API 并将它们放在不同的产品中(相同的后端),或者编写自定义策略。有没有办法检查 context.Subscription.Key 并与产品订阅相匹配?

应该可以通过将您的 API 添加到两个产品中来实现:

  • 一个启用了订阅要求
  • 另一个未启用订阅要求,但在产品级别添加了 validate-jwt 策略以要求 AAD 令牌