我目前正在评估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 荷兰答案 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