如何通过Keycloak REST API更新自定义属性

时间:2020-07-02 08:54:49

标签: keycloak keycloak-rest-api

是否可以通过Keycloak REST API更新自定义属性的值? 例如,使用哪个端点以及如何为was created here的属性构造请求正文。

谢谢!

3 个答案:

答案 0 :(得分:4)

你必须使用 Keycloak Admin REST API :

PUT {host}/{basepath}/admin/realms/{realm}/users/{id}

例如 http://localhost:8080/auth/admin/realms/alumni-realm/users/cd57cfd8-cb1c-4025-abfd-67fe6b784d22

请求正文 (JSON):

{
    "attributes": {
        "DOB": "1984-07-01"
    }
}

授权(不记名令牌):

  1. 使用 Admin user access_token 进行授权。

  2. 如果您想允许 User 更新他们自己的个人资料,那么您必须在 Keycloak 中授予 manage-users 角色。 (该用户将能够更新其他用户的信息,因此不推荐)

答案 1 :(得分:0)

您可以使用 API 进行用户更新,只发送要更改的属性:

PUT ../realms/{realm}/users/{userID} 正文:

{
    "attributes": {
        "myAttribute": [
            "NewValue"
        ]
    }
}

答案 2 :(得分:0)

当您通过 Keycloak REST API PUT ../realms/{realm}/users/{userID} 更新用户自定义属性时,它会导致“ID”更改

并且您需要 GET /{realm}/users 两次才能在响应中获取新值