我一直在使用我登录的用户帐户的令牌试验 REST API,然后在我的用户记录上发出 PUT 请求以更新一些自定义属性。
为了完成这项工作,我必须在 Keycloak 中授予我的用户帐户管理用户角色,在此之前我收到了禁止回复。
我现在可以成功发出 PUT 请求,注销并重新登录后,我可以看到我在 PUT 请求中设置的更新属性。
但是我现在允许我的用户能够管理我领域中的所有用户,这是我不想允许的。
相反,我只想能够更新我自己的帐户详细信息。
我知道用户可以查看自己的个人资料并在 Keycloak 提供的屏幕上进行更改。但是对于某些自定义属性,我希望能够从他们登录的客户端应用程序执行此操作,因此使用 REST API 但不授予他们可以允许他们更新其他用户详细信息的角色。
这可能吗?
根据用户部分Keycloak's Admin REST API,这是不可能的。
一种解决方案是让您的客户端应用程序将更新请求发送到后端。后端将验证更新请求是否合法(也就是验证了 JWT 并且更新确实适用于请求更改的用户)。
另一种解决方案是将User Account Service的屏幕主题化,为您的自定义属性添加输入字段,如文档所述:
可以扩展此屏幕以允许用户管理其他属性。有关更多详细信息,请参阅服务器开发人员指南。
第二种选择似乎更安全。我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
5696 次 |
| 最近记录: |