发出刷新令牌并撤消角色后,无法刷新访问令牌

时间:2018-08-30 13:11:43

标签: oauth-2.0 keycloak

在Keycloak中发出刷新令牌后,角色被吊销时,刷新刷新访问令牌存在问题。

假设我有一个 jdoe 用户,该用户具有从 reporting 客户端分配的 view-reports 客户端角色。

复制步骤:

  1. 通过用户jdoe的直接授予获取访问令牌以及刷新令牌
  2. 在安全管理控制台中为用户取消分配视图-报告角色。
  3. 刷新访问令牌

结果:返回以下错误,而不是接收角色受限的新访问令牌:

{
  "error":"invalid_scope",
  "error_description":"User no long has permission for client role view-reports"
}

发生的事情是,在返回刷新的访问令牌之前,keycloak将新创建的访问令牌中的角色与刷新令牌中的角色进行比较。当新创建的令牌中不存在刷新令牌中存在的至少一个领域/客户端角色时,将引发invalid_scope错误(可以在此处找到相应的代码:https://github.com/keycloak/keycloak/blob/master/services/src/main/java/org/keycloak/protocol/oidc/TokenManager.java#L590

我的问题是-这项检查真的必要吗?

刷新令牌是否应该完全包含任何访问信息(realm_access / resource_access)?

这不是可配置的吗?

0 个答案:

没有答案