WSO2 APIM 角色验证

WSO2 APIM Role validation

我正在使用 WSO2 IS (5.10.0) 作为 APIM (3.2.0) 的密钥管理器。我已经发布了一个受范围保护的 graphql API(比如 'test_scope' 基于名为 'test' 的角色)。我已经使用默认应用程序订阅了 API 并生成了密钥。当我生成具有范围 ('test_scope') 的访问令牌并调用受保护的 API 时,即使未将所需角色 ('test') 分配给用户,我也会收到有效响应.下面是我正在使用的 curl 命令。

curl -k -X POST https://<IP>:8243/token -d "grant_type=password&username=Username&password=Password&scope=test_scope"
-H "Authorization: Basic Base64(consumer-key:consumer-secret)"

如何解决这个问题?

这是因为您没有在 IS 的服务提供商设置中为您的应用程序启用 范围验证器

在 IS 管理控制台中;

  • 转到服务提供商列表
  • 转到您的应用程序的服务提供商(例如:admin_DefaultApplication_SANDBOX)和select“编辑”
  • 转到“入站身份验证配置”>“OAuth/OpenID 连接配置”和select“编辑”
  • 启用“基于角色的范围验证器”

现在只有具有创建范围的相关角色的用户才能访问您的 API