Apache Karaf/Fuse 与 Keycloak 集成

Apache Karaf/Fuse integration with Keycloak

我在 Karaf (4.2.8) 和 Fuse (7.5.0) 上与 Keycloak 集成有困难。我尝试分别对它们进行集成,但没有成功。

在第一种情况下,我安装了 Fuse (7.5.0),接下来我添加了 keycloak osgi 功能:

feature:repo-add mvn:org.keycloak/keycloak-osgi-features/8.0.1/xml/features
feature:install keycloak-jaas

接下来,我将 keycloak-direct-access.json 文件添加到具有适当内容的 etc。为了检查 ssh 的 keycloak 集成,我更改了 org.apache.karaf.shell 并将 realm 设置为 keycloak。但之后,我无法使用 keycloak 凭据通过 client.bat 进行连接。它要求输入密码(即使我在命令中提供了密码)并在尝试 2-3 次后出现以下错误:

No more authentication methods available

除此之外,当我尝试使用 jaas:realm-manage 命令获取 keycloak 用户列表时,如果不起作用并出现以下错误:

Can't get the list of users (no backing engine service found)

在第二种情况下,我安装了Apache Karaf (4.2.8) 和上面几乎相同的步骤。但它也失败了。

此外,我检查了以下文档 https://github.com/jboss-fuse/karaf-quickstarts/blob/7.x.redhat-7-x/security/keycloak/fuse-keycloak.adoc。考虑到该文档,我正确地执行了所有步骤,但由于某种原因它失败了。

对于保险丝安装,我在尝试通过客户端连接时检查了日志,在那里看到了以下警告

2020-02-13 10:06:45,808 | WARN | 56c97]-nio2-thread-1 | o.a.s.s.s.ServerSessionImpl | 185 - org.apache.sshd.core - 1.7.0 | exceptionCaught(ServerSessionImpl[null@/127.0.0.1:65456])[state=Opened] IOException: The specified network name is no longer available.

感谢任何帮助。提前致谢,

BR, 法里德

对于 Fuse 7,显示如何将 Pax Web(Fuse Karaf 中的 Web 层,基于 pax-http-undertow)与 Keycloak(和 RH-SSO)集成的官方快速入门可在 this Github repository 中找到.

快速入门涵盖与 OSGi HTTP 服务、白板服务、Camel 和 CXF 相关的场景。

Additional documentation 展示了如何配置 Keycloak 实例和 Fuse-Karaf 本身,因此 SSH、JMX 和 Hawtio 连接与 Keycloak 一起工作。