1

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

经过大量试验和错误并阅读文档后,我成功地将 openid 连接登录到我的自定义 keycloakrealm (类似于这篇文章http://blog.keycloak.org/2015/10/getting-started-with -keycloak-securering.html )

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

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

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

谁能告诉我如何配置 keycloak 以使用“自定义身份验证”模块进行实际身份验证?

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

希望大家能帮忙!

请注意,

Kim Zeevaarders 荷兰

4

1 回答 1

3

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

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

2018 年 5 月 30 日更新

在 2.5 版中,用户联合 SPI 被新的用户存储 SPI取代。迁移说明可在此处获得

于 2016-08-08T04:27:24.020 回答