更改和扩展 keycloak 管理 UI

var*_*l13 6 keycloak keycloak-services

有很多关于如何为欢迎屏幕、登录和电子邮件等创建模板的资源,但到目前为止我还没有找到任何如何自定义和扩展管理客户端本身的信息。

我想做的是:

在keycloak数据库中创建一些自定义实体,并能够直接在keycloak管理UI中查看和编辑它们

从keycloak附带的代码来看,他们似乎使用了Angular来创建管理UI,但它看起来像是Angular应用程序的生产版本。是否有任何资源可以让我访问应用程序的开发版本,以便可以在管理 UI 中试用和构建自定义视图和字段?

我相信一旦我能够访问它,我就可以找到如何从我的自定义实体访问数据的方法,但是任何指向它的指针也都很棒!

PS:我已阅读文档并成功在 keycloak 中创建自定义实体,这只是管理 UI 部分,我没有看到任何可用资源。

谢谢!

var*_*l13 0

经过大量研究并尝试各种方法后,我得出以下结论:

扩展 Keycloak 以获得额外功能的最佳选择是根本不扩展它。

使用 Keycloak 时,它有特定的用途。我经历了惨痛的教训,最好实现一个微服务/模块(无论你想怎么称呼它),通过利用其管理 API 来扩展 Keycloak 功能。

通过这样做,我们可以添加我们想要的任何额外功能,例如。用户配置文件图像、自定义用户配置文件页面、自定义管理页面等使用产品 UI 主题,而无需使用 Keycloak。

优点是:

  1. 更容易更新Keycloak
  2. 可以允许用户对其个人资料和数据进行微调访问
  3. 可以允许对管理员进行微调访问,而不暴露 Keycloak 提供的所有内容,这可能会让某些管理员感到不知所措。
  4. 管理 API 相对稳定,通常不会引入重大更改

如果您希望根据扩展将特定声明直接添加到 JWT 令牌,这当然不起作用。

因此,我建议您查看以下github 项目。我用这个生成并实现了我想要的。