Keycloak 与 Linux 服务器的集成

Keycloak 与 Linux 服务器的集成

我已经建立了一个 Keycloak 服务器,并且正在将其与 Linux 服务器集成,以允许 Keycloak 的用户使用他们的 Keycloak 凭据登录 Linux 服务器进行身份验证。

理想情况下,我希望当用户运行ssh server-name@server-ip命令时,它会打开一个 Keycloak 登录页面,他们可以在其中输入他们的凭据并获得系统的访问权限。

我的研究让我开始探索使用 PAM 作为配置 Keycloak 与 Linux 服务器集成的方法。我安装了 kc-ssh-pam 二进制文件,并将以下行添加到 /etc/pam.d/sshd 目录:

auth sufficient pam_exec.so expose_authtok log=/var/log/kc-ssh-pam.log /opt/kc-ssh-pam/kc-ssh-pam

之后,我编辑了配置.toml使用我的 Keycloak 配置文件(如下所示),然后运行sudo systemctl restart sshd以重新启动 ssh 守护程序。但是,当我运行 ssh server-name@server-ip 命令时,我没有获得预期的结果。

realm = "realm_name"
endpoint = "https://keycloak_server_url"
clientid = "ssh_client_id"
clientsecret = "ssh_client_secret"
clientscop = "openid" 

这是理想的用例吗?我的资源有限,无法实现这一点,因此,任何可以帮助我实现这一点的步骤或推荐指南都将不胜感激。

答案1

它不会打开 keycloak 页面供用户登录,它的工作方式是根据用户凭据从 keycloak 获取密码授予令牌。

当您运行 ssh 时server-name@server-ip,用户必须server-ip事先在计算机上存在且无密码或有密码,此模块不会自动创建用户。但是,说明中提到了一个脚本,您可以使用它在首次尝试登录时自动创建用户。

相关内容