使用 keycloak-js 列出用户所属的组?

Listing the groups a user is a member of, using keycloak-js?

我们的站点在 Vue 应用程序中使用 keycloak 进行用户身份验证,用户被添加到 Keycloak 服务器上的多个组中。问题是我不确定如何发现用户所属的组?

查看 Vue.prototype.$keycloak 并没有显示任何用于列出组的函数,我在 documentation on how to do this either. I also checked the readme 中也没有看到任何内容,但那里也没有任何记录。最后,我尝试查看 REST 文档作为替代方案,但我看不出任何相关内容。

该应用程序是面向用户的 Vue 应用程序,而不是面向管理员的 Vue 应用程序。

使用 keycloak-js 12.0.3.

稍后进行一些试验,结果证明可以通过 loadUserInfo() 函数找到它。在我的 Vue 应用程序的上下文中:

const userInfo = Vue.prototype.$keycloak.loadUserInfo();

生成以下形式的对象:

{
    "sub": "57ac4e62-a4b0-4bc3-b43c-47d91deed19a",
    "email_verified": false,
    "name": "Test User",
    "groups": [
        "offline_access",
        "role-my-test-group",
        "uma_authorization"
    ],
    "preferred_username": "test-user",
    "given_name": "Test",
    "locale": "en",
    "family_name": "User"
}

在上面的结果中我们可以看到 role-my-test-group 角色存在于 groups 数组中。这不是被包含的组,而是与组关联的角色 - 我最初假设它是被填充的组,但实际上它是基于组成员的角色。

我认为您可以在您的领域中配置 'Mappers',并将 'groups' 类型设置为 'Group Membership'。

像这样: enter image description here