Jam*_*rld 4 azure-api-management
我在 Azure API 管理中有以下设置:
两种产品:Internal和Starter。
一个 api: Finance,即包含在上述两个产品中。该FinanceAPI也有Subscription required复选框清除,因此不需要订阅。
该Internal产品具有执行 JWT 验证的策略。该Starter产品没有。
在 API 的测试选项卡中,我可以通过Apply Product Scope下拉菜单选择产品范围。据推测,这决定了应用哪些产品策略。
在调用 API 时,如果我没有提供有效的令牌,JWT 验证就会启动并拒绝我的请求。但是,由于我没有用于标识产品的订阅密钥,它可能是 theInternal或Starterproduct - 系统如何确定它应该应用Internal包含 jwt-validation 规则的Starter策略而不是不应用的策略?
当请求进来时,首先识别 API 和操作。然后 APIM 尝试识别订阅。如果提供了产品订阅密钥,它将用于识别产品并执行其策略。如果提供了 API 订阅密钥,则会检查它是否与标识的 API 匹配,并且根本不会执行任何产品策略。
如果请求中不存在订阅密钥,APIM 会检查是否存在将 Subscription required 设置为 false 的产品,以及此类产品是否包含已识别的 API。如果有这样的匹配,产品将被使用并执行它的策略。如果没有找到这样的匹配,APIM 将检查 API 是否已将 Subscription required 设置为 false,如果是,则调用将在没有产品的情况下继续进行。
测试选项卡使用一个特殊的密钥 - 主密钥,除其他外,该密钥允许您强制使用某个产品进行调用,即使 API 未包含在其中。这主要用于测试目的,并且主密钥不应该真正用于生产。
| 归档时间: |
|
| 查看次数: |
1141 次 |
| 最近记录: |