Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keycloak 允许用户使用RESTAPI更新自己的配置文件_Keycloak - Fatal编程技术网

Keycloak 允许用户使用RESTAPI更新自己的配置文件

Keycloak 允许用户使用RESTAPI更新自己的配置文件,keycloak,Keycloak,我一直在试验RESTAPI,使用我登录的用户帐户的令牌,然后对我的用户记录发出PUT请求,以更新一些自定义属性 为了完成这项工作,我必须在KeyClope中授予我的用户帐户“管理用户”角色,在此之前,我得到了禁止的回复 我现在可以成功地发出PUT请求,在注销和重新登录之后,我可以看到我在PUT请求中设置的更新属性 但是我现在允许我的用户能够管理我领域中的所有用户,这是我不想允许的 相反,我只想能够更新我自己的帐户详细信息 我知道用户可以查看自己的个人资料,并在KeyClope提供的屏幕上进行更改

我一直在试验RESTAPI,使用我登录的用户帐户的令牌,然后对我的用户记录发出PUT请求,以更新一些自定义属性

为了完成这项工作,我必须在KeyClope中授予我的用户帐户“管理用户”角色,在此之前,我得到了禁止的回复

我现在可以成功地发出PUT请求,在注销和重新登录之后,我可以看到我在PUT请求中设置的更新属性

但是我现在允许我的用户能够管理我领域中的所有用户,这是我不想允许的

相反,我只想能够更新我自己的帐户详细信息

我知道用户可以查看自己的个人资料,并在KeyClope提供的屏幕上进行更改。但对于某些自定义属性,我希望能够从它们登录到的客户端应用程序执行此操作,因此使用REST API,但不授予它们一个允许它们更新其他用户详细信息的角色

这可能吗?

根据钥匙斗篷的说法,这是不可能的

一种解决方案是让客户端应用程序将更新请求发送到后端。后端将验证更新请求是否合法(即JWT已验证且更新确实适用于请求更改的用户)

另一个解决方案是将的屏幕主题设置为为自定义属性添加输入字段,如文档所述:

此屏幕可以扩展以允许用户管理其他属性。有关更多详细信息,请参阅


第二种选择似乎更安全。我希望这会有所帮助。

似乎第一个解决方案是将前端与后端耦合起来,这可能不太好。您是否了解Key斗篷中的解决方案?一年半之后,是否有一个通过用户令牌和角色管理的解决方案,而不授予用户编辑其他用户的权限?您是否管理该解决方案?我在@teriehina线程中添加了一些附加注释。