Return 仅来自 keylcoak 用户端点的用户的特定字段

Return only specific fields of a user from keylcoak users endpoint

目前我有多个 Keycloak 用户。在我的前端,一个用户应该能够从 keycloak 接收所有用户以进行进一步处理。

这就是我想出使用这个端点的原因:KEYCLOAK_URL/auth/admin/realms/REALM/users

这给了我以下输出:

[
    {
        "id": "ebe12164-9097-49c0-a1dd-809dbc63b6bf",
        "createdTimestamp": 1604691601645,
        "username": "test@test.de",
        "enabled": true,
        "totp": false,
        "emailVerified": false,
        "firstName": "test",
        "lastName": "test",
        "email": "test@test.de",
        "disableableCredentialTypes": [],
        "requiredActions": [],
        "notBefore": 0,
        "access": {
            "manageGroupMembership": false,
            "view": true,
            "mapRoles": false,
            "impersonate": false,
            "manage": false
        }
    },
    ...
]

问题:有没有办法限制keycloak返回用户的哪些字段?例如只有“id”和“用户名”而不是其他可能更敏感的东西,比如“access”部分?

要获取端点 KEYCLOAK_URL/auth/admin/realms/REALM/users 返回的内容,您需要知道类似管理员的用户(具有适当角色)的凭据,然后使用这些凭据代表该用户获取令牌用户最终使用该令牌从端点 KEYCLOAK_URL/auth/admin/realms/REALM/users.

获取信息

所有这一切都表明,从类似管理员的用户角度来看,信息并不敏感,例如,没有共享用户凭据。因此,尝试过滤掉该端点发送的内容是没有意义的,因为该端点旨在供类似管理员的用户使用,他们无论如何都可以访问管理控制台上的所有信息。

In my frontend, one user should be able to receive all users from keycloak for further processing.

即使您为该用户分配角色 'view-users' 以便该用户可以获取其他用户的信息,它仍然会附带您显示的所有信息。

假设你有一个后端,我会说更简单的解决方案是创建一个自定义端点,returns 你是用户列表。