wso2 apim 角色验证问题

时间:2021-06-13 03:16:49

标签: wso2

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

1 个答案:

答案 0 :(得分:0)

API 管理器将在令牌生成期间执行基于角色的验证。因此,如果您使用分配了相应角色的用户生成 JWT 令牌,则 API 管理器将生成具有请求范围(绑定到角色)的访问令牌。

我相信您已经使用客户端凭据或密码授权生成了 JWT 令牌(无法在问题中找到 cURL :)),并且该令牌是由分配了相应角色的用户生成的。更明确地说,在使用客户端凭据授权时,API 管理器将使用应用程序所有者作为用户来验证角色并提供范围。而密码授权使用相应的用户名(即发送的)来验证角色和范围。

在运行时,网关将解码 JWT 令牌并验证所需的范围是否可用。如果是,网关将继续请求,如果不是,则失败。

因此要检查流程,您可以使用同一租户中尚未分配特定角色的另一个用户,并使用 Password grant 生成令牌并调用 API(在这种情况下,令牌将使用默认范围,而不是提到的 test_scope)。

希望这能澄清并简要了解令牌生成和范围验证过程。

相关问题