【问题标题】:Reuse scope-keys in multiple API-version in WSO2 API Manager?在 WSO2 API 管理器的多个 API 版本中重用范围键?
【发布时间】:2017-11-21 22:30:38
【问题描述】:

我们使用 WSO2 API Manager 1.10.0 进行 API 管理。我之前设置了一个通过范围到角色映射限制的 API。现在我们必须处理这个 API 的多个版本(并非所有客户端都可以一次迁移到新版本),但似乎我不能重用相同的范围(范围键和范围名称)我已经限制了以前的版本和?

这看起来很奇怪?这是否意味着我需要为每个 API 版本创建唯一的范围到角色的映射?这意味着使用 /default api 的订阅者在请求访问令牌时必须根据他们使用的 API 版本更新其范围名称?

这里应该使用什么策略?我们通常使用范围键<API-Name>-<Restriction-Key> 创建范围。我现在是否应该使用<API-Name>-<Version>-<Restriction-Key>,并且当用户迁移时,他们需要在请求访问令牌时将其范围更新为正确的版本?

我真的希望我们的用户在以某种方式切换到我们的 API 的新版本时可以简单地继续使用相同的范围,或者它们是否唯一地绑定到特定版本的 API?

【问题讨论】:

    标签: wso2 wso2-am


    【解决方案1】:

    找到了答案。

    首先,如果使用发布者中的“创建新版本”创建API的新版本,则可以重复使用范围;但是,一旦您尝试导入新的 swagger-specification,范围就会被删除,并且无法在“管理阶段”下重复使用。

    我发现范围实际上是在存储在/_system/governance/apimgt/applicationdata/provider/<provider-name>/<api-name>/<api-version>/swagger.json 下的存储库中的 swagger-document 中指定的。 swagger-document 有一个名为“x-wso2-security”的属性,其中包括范围(由发布者在“管理阶段”期间读取)。可以向 swagger-document 添加范围(例如,从以前的 API 版本复制 x-wso2-security 属性),保存资源并打开发布者,然后范围将显示在“管理阶段”。

    我认为这是 WSO2 开发团队在创建发布者时遗漏的内容,但令人高兴的是,可以通过如上所述的一些手动工作来解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      相关资源
      最近更新 更多