用于旧用户管理的 OpenID Connect 身份验证提供程序?

OpenID Connect authentication provider for legacy user management?

我们有自主开发的专有用户管理和自主开发的单点登录。 (那时候OpenID Connect还没有诞生)
我们的身份验证服务器和胖客户端位于专用网络中,无法访问互联网。
任务是集成第三方胖客户端 - 它的用户应该根据我们现有的身份验证服务器进行身份验证。
总体思路是使用现有的面向未来的框架,它提供标准的身份验证接口(如 Keycloak?)并实现我们自己的 OpenID Connect 身份验证提供程序(或用于 keycloack 的用户存储 SPI)。
keycloack 和用户存储 SPI 的方式值得推荐还是有更好的方法?

正如您所说,这是满足您即时需求的不错选择:

  • 外部客户端使用现代 OpenID Connect 流程 - 例如用于桌面应用程序的 OIDC
  • 它连接到支持基于标准端点的授权服务器
  • Authorization Server 对数据源具有可扩展的支持,并且有可能接触到您现有的用户数据源

举个例子,我工作的 Curity 支持 multiple data sources and there is a free community edition 如果有用的话。

任何满足相同要求的供应商都可以 - 我听说过一些关于 Keycloak 的好消息。

长期

然后逐步更新其他应用以使用现代 OAuth 和 OIDC 行为是有意义的。

在适当的时候,值得将授权服务器作为访问个人身份用户数据的唯一位置,并将存储移动到那里。请参阅此 data privacy article 以了解它的一些优点。

我可以保证 Keycloak 用户存储 SPI 方法。最近为一个项目实现了这个,并且运行良好。对于任何现有的用户数据库,我强烈推荐它。

我在 github 上找到了一些示例源,您可以查看(尽管需要对 运行 进行一些修改): https://github.com/mfandre/KeycloakSPI

我还写了一篇文章总结了我在使用 Keycloak 时的发现,以防您对其他功能感兴趣: https://dev.to/kayesislam/keycloak-as-oidc-provider-42ip

非常可定制。