如何使用 WSO2 堆栈在 API 中实现基于角色的访问控制

How to implement Role based access control in API using WSO2 stack

我们使用 WSO2IS 作为 IAM 服务器,角色和用户在 WSO2IS 中管理。 WSO2EI 将成为集成服务器,公开私有 API

使用 实现基于角色的访问控制的正确方法是什么,例如仅供特定组的用户访问的某些 API 集。我怎样才能实现这种最简单的方法?这里有WSO2AM的要求吗?

谢谢

EI 不是暴露私有 oauth 安全 APIs 的理想方式。即使你可以用 EI 实现它,但在集成时那将是一个过度的努力。

使用 API 管理器向您的人群展示 API。将 Identity Server 配置为 APIM 服务器的密钥管理器(令牌管理器)。 APIM 服务器知道如何与身份服务器对话以生成和验证访问令牌。所以没有明确的努力将资源服务器(APIM 网关)与授权服务器(IAM)集成。

  1. 在两台服务器之间共享用户存储。 (IS 和 APIM)
  2. 将 IS 配置为 API 服务器的密钥管理器。
  3. 在 publisher/developer 门户中注册您的 API。
  4. 发布时,您可以从发布者门户定义对 API 资源的基于角色的访问限制。 (Roe:范围映射)
  5. 一旦您定义,IS 将始终在为您提供访问令牌时检查您的角色。

因为您已经定义了角色:范围映射,您在令牌生成请求中请求的范围只有在您(请求者)具有预期角色时才会被接受。因此,您的令牌范围将仅与您分配给自​​己的角色一样好。现在,由于您发布的 API 资源需要一组已定义的范围,因此在尝试访问 API 时并非所有访问令牌都会被接受。只有具有预期范围的那些。

Configure IS-KM with APIM

Role based scopes