OpenID Keycloak 领域的自定义验证器

Custom Authenticator for OpenID Keycloak realm

我目前正在评估 keycloak 作为具有多个 REST 服务 (Resteasy/Wildfly) 的多个后端的中央身份管理器。

经过大量的反复试验和阅读文档,我成功地使 openid 连接登录到我的自定义 keycloakrealm(类似于此 post http://blog.keycloak.org/2015/10/getting-started-with-keycloak-securing.html

我可以在响应中看到访问令牌 + id_token,并且能够通过传递这些令牌向 REST 服务发出请求。

但是我只能使用 keycloak 本身定义的用户凭据进行身份验证。然而,在我们的真实案例中,用户驻留在 SAP 中并且 keycloak 不知道。

我们有,但是有一个 javalibrary 用于通过 SAPJCO 连接器对这些用户进行身份验证。

谁能告诉我如何配置 keycloak 以使用 "custom authentication" 模块进行实际身份验证?

实施自定义身份验证器 SPI (https://keycloak.gitbooks.io/server-developer-guide/content/v/2.1/topics/auth-spi.html) 是否可行?如果没有,可能的解决方案是什么???

希望大家帮帮忙!

收到,

金·泽瓦德斯 荷兰

如果您可以通过 SAPJCO 连接器访问 SAP 用户详细信息,那么您可以编写自定义 Federation Provider。提供的示例是基本的,但它给出了基本思想和 Maven 依赖项。

简而言之,您需要扩展 org.keycloak.models.UserFederationProvider 并提供获取用户详细信息、凭据验证和按属性搜索的方法。在您的情况下,您将使用 SAPJCO 连接器针对现有用户群实现这些功能中的每一个。

2018 年 5 月 30 日更新

User Federation SPI 已替换为新的 User Storage SPI in release 2.5. Migration Notes are available here