OpenID Keycloak领域的自定义身份验证器

时间:2016-08-05 10:24:46

标签: rest authentication openid-connect keycloak keycloak-services

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

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

我可以看到响应中的acces token + id_token,并且能够通过传递这些tokes来向REST服务发出请求。

但是,我只能使用keycloak本身定义的用户凭据进行身份验证。但是,在我们的reallife案例中,用户居住在SAP中并且不知道keycloak。

我们确实有一个javalibrary用于通过SAPJCO连接器验证这些用户。

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

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

希望你们能帮忙!

Reagrds,

Kim Zeevaarders 荷兰

1 个答案:

答案 0 :(得分:3)

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

简而言之,您需要扩展int main(void) { FILE *fp_src; FILE *fp_dest; char src[100]; char dest[100]; fputs("source file : ", stdout); gets_s(src); fp_src = fopen(src, "rb"); fputs("dest file : ", stdout); gets_s(dest); fp_dest = fopen(dest, "wb"); char ch; //int ch; while ((ch = fgetc(fp_src)) != EOF) { fputc(ch, fp_dest); } fclose(fp_src); fclose(fp_dest); return 0; } 并提供获取用户详细信息,验证凭据和按属性搜索的方法。在您的情况下,您将使用SAPJCO连接器来完成针对现有用户群的所有这些功能。

2018年5月30日更新

用户联合SPI在版本2.5中被替换为新的User Storage SPI。迁移说明可用here

相关问题