Rest OpenID密钥斗篷领域的自定义身份验证器

Rest OpenID密钥斗篷领域的自定义身份验证器,rest,authentication,openid-connect,keycloak,keycloak-services,Rest,Authentication,Openid Connect,Keycloak,Keycloak Services,我目前正在评估担任多个REST服务(Resteasy/Wildfly)后端的中央身份管理器 经过大量的尝试和错误,并阅读了文档,我成功地将openid连接登录到了我的自定义KeyCoveRealm(类似于本文) 我可以在响应中看到acces token+id_token,并且可以通过传递这些tokes向REST服务发出请求 但是,我只能使用keybeapt本身中定义的用户凭据进行身份验证。然而,在我们的现实生活中,用户驻留在SAP中,对KeyClope是未知的 但是,我们有一个javalibra

我目前正在评估担任多个REST服务(Resteasy/Wildfly)后端的中央身份管理器

经过大量的尝试和错误,并阅读了文档,我成功地将openid连接登录到了我的自定义KeyCoveRealm(类似于本文)

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

但是,我只能使用keybeapt本身中定义的用户凭据进行身份验证。然而,在我们的现实生活中,用户驻留在SAP中,对KeyClope是未知的

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

有人能告诉我如何配置keydepeat以使用“自定义身份验证”模块进行实际身份验证吗

实现自定义身份验证器SPI()是正确的做法吗?如果不是,可能的解决方案是什么

希望你们能帮忙

里根

金泽瓦德斯
荷兰

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

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

2018年5月30日更新


在2.5版中,用户联合SPI被一个新的替换。迁移说明可从Thx获得建议。我按照你建议的方式实现了它,效果很好!现在来看第二部分:如何从REST调用中准确地将凭据传递给KeyClope directy?在授权标题中?指向联合身份验证提供程序的链接已过期。@TahaRehmanSiddiqui我已将链接更新为指向版本2.4。联合身份验证提供程序已弃用,然后在2.5中删除,并替换为用户存储SPI。