jHipster:对于生产中的简单用户,新用户模块如何与 Keycloak 一起工作?

Posted

技术标签:

【中文标题】jHipster:对于生产中的简单用户,新用户模块如何与 Keycloak 一起工作?【英文标题】:jHipster: How works new user module with Keycloak for a simple user in production? 【发布时间】:2018-11-01 18:08:00 【问题描述】:

我使用 OAuth 和 Keycloak 安装新版本的 jHipster。不知道 Keycloak 结尾好像很爽。

我有一个带有 mysql 的独立安装(不是 jHipster Docker)并且工作正常(我从 jhipster-users-0.json 和 jhipster-realm.json 导入数据)并且我在数据库表中看到所有数据。

我的问题是:

真实用户将如何操作“更改密码”、“忘记密码”、“更改名称”... e 不适合简单的用户。

在旧应用程序中,我将 jhi_user 与我的主类相关联,以构建类似于多租户的东西。现在我看到 jhi_user 表,但用户在 keycloak.user_entity 中,我的主类的页面 crud 只看到我的 jhipster 模式。我该如何解决?

如果有人可以帮助我,我将不胜感激。

【问题讨论】:

【参考方案1】:

对于您的第一个问题,您可以在领域的登录页面中添加忘记密码的链接。根据您对本页的需要记住you can implement a theme:

Keycloak 也有一个 API(管理网站基于它),您可以使用它来进行操作。 There's an endpoint 发送电子邮件以恢复密码:PUT /admin/realms/realm/users/id/execute-actions-email

对于第二个问题,您有两个选择。理想的做法是让 keycloak 管理您的用户。您可以通过您的应用程序管理它们using the API。否则,如果您想将它们存储在应用程序数据库中,您仍然可以编写custom user storage SPI 的实现,以从数据库或您可能在应用程序中提供的某些 API 加载它们:

您可以使用用户存储 SPI 将扩展写入 Keycloak 以 连接到外部用户数据库和凭证存储。内置的 LDAP 和 ActiveDirectory 支持是这个 SPI 在 行动。开箱即用,Keycloak 使用其本地数据库创建, 更新并查找用户和验证凭据。不过很多时候, 组织拥有现有的外部专有用户数据库,这些数据库 他们无法迁移到 Keycloak 的数据模型。对于那些情况, 应用程序开发人员可以编写用户存储的实现 SPI 桥接外部用户存储和内部用户对象 Keycloak 用于登录和管理用户的模型。

【讨论】:

以上是关于jHipster:对于生产中的简单用户,新用户模块如何与 Keycloak 一起工作?的主要内容,如果未能解决你的问题,请参考以下文章

Jhipster 向用户注册添加更多字段

Jhipster - Angular 接收其他用户的导航

如何使用带有Jhipster的RabbitMQ创建新的队列?

微服务中的用户语言环境 - JHipster

JHipster:如何限制用户使用 REST 访问自己的数据

JHipster - 成功登录后如何转移用户模型?