首页 文章

如何在wso2 api manager中为客户端凭据流限制客户端密钥对特定资源的访问?

提问于
浏览
1

我想与wso2 api管理器实现服务器到服务器的通信,所以我的api可以被第三方客户端使用,可以创建自己的应用程序并在我的api上订阅 . 此外,这些客户端应受特定资源集的限制 - 有一组组织ID,每个特定客户端只能访问某些ID子集 . 我发现客户端密钥存储在WSO2AM_DB的IDN_OAUTH_CONSUMER_APPS表中 . 我可以附加到此DB并从将实现clientId-to-organizationIds映射的单独服务中读取客户端ID,并且在调解器的帮助下,我可以调用此服务,检查是否允许在url中指定组织标识,并在访问令牌中添加组织标识属性如果允许组织,后端服务可以再次检查 . 但我不确定这是否正确 . 也许wso2中有一些东西可以帮助没有这样的操作?

1 回答

  • 0

    此外,这些客户端应受特定资源集的限制

    正如您所知 - API管理器根据 endpoints 授权调用 . 资源(例如特定ID)本身应由后端服务授权 . 我不确定在API管理器上强制执行此级别的授权是合理的(我不是说它不可能,只是它可能不够灵活) .

    也许在wso2中有一些东西可以帮助没有这样的操作?

    我建议遵循 - 发送JWT token到后端服务 . 后端服务应该进行授权(基于用户名,应用程序等),而不必硬件绑定到产品数据库 .

    链接文档还描述了如何实现自己的令牌生成器,因此您可以向jwt令牌添加其他声明(例如组织ID等) .

相关问题