我们使用WSO2 API Manager 1.10.0进行API管理。我以前设置的API是通过范围到角色映射来限制的。现在我们必须处理这个API的多个版本(并非所有客户端都可以一次迁移到新版本),但似乎我不能重用相同的范围(范围键和范围名称)我已经限制以前的版本?
这看起来很奇怪吗?这是否意味着我需要为每个版本的API创建唯一的范围到角色映射?这意味着使用/ default api的订阅者在请求访问令牌时必须更新其范围名称,具体取决于他们使用的API版本?这里应该采用什么策略?我们通常使用范围键<API-Name>-<Restriction-Key>
创建范围。我现在应该使用<API-Name>-<Version>-<Restriction-Key>
吗?当用户迁移时,他们需要在向正确的版本请求访问令牌时更新其范围?
我真的希望我们的用户可以在某种程度上切换到新版本的API时继续使用相同的范围,或者它们是否与API的特定版本唯一关联?
答案 0 :(得分:0)
找到答案。
首先,如果使用&#34创建新版本的API,请创建新版本&#34;在发布者中,范围可以重复使用;但只要您尝试导入新的swagger-specification,范围就会被删除,并且无法在&#34; manage-phase&#34;下重复使用。
我发现范围实际上是在/_system/governance/apimgt/applicationdata/provider/<provider-name>/<api-name>/<api-version>/swagger.json
下的存储库中存储的swagger文档中指定的。昂首阔步的文件有一个名为&#34; x-wso2-security&#34;其中包括范围(在#34;管理阶段&#34期间由发布者阅读)。可以将范围添加到swagger文档中(例如,从先前的API版本复制x-wso2-security属性),保存资源并打开发布者,然后范围将显示为在&#34; manage-phase&#34;。
我认为这是WSO2开发团队在创建发布者时遗漏的内容,但很高兴,通过上面所述的一些手动工作可以解决这个问题。