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

Posted

技术标签:

【中文标题】使用 keycloak-js 列出用户所属的组?【英文标题】:Listing the groups a user is a member of, using keycloak-js? 【发布时间】:2021-05-30 13:20:52 【问题描述】:

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

查看Vue.prototype.$keycloak 并没有显示用于列出组的任何功能,我在documentation 中也看不到如何执行此操作。我还检查了readme,但那里也没有任何记录。最后,我尝试查看 REST 文档作为替代方案,但没有任何相关信息。

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

使用 keycloak-js 12.0.3。

【问题讨论】:

【参考方案1】:

稍后进行一些实验,结果证明可以通过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 数组中。这不是要包含的组,而是与组相关联的角色 - 我最初假设它是填充的组,但实际上它是基于组成员身份的角色。

【讨论】:

vue 3有什么想法吗?我找不到在组件 vue3 中使用 loadUserInfo 的任何示例 我没有尝试过,因为我们的项目仍在 Vue 2 中。我鼓励任何人提供 Vue 3 特定的响应。

以上是关于使用 keycloak-js 列出用户所属的组?的主要内容,如果未能解决你的问题,请参考以下文章

使用ldap列出来自用户的组

chgrp命令

chgrp命令

Linux常用命令——持续更新(20170724)

Linux - 用户操作

试题库问题