pgadmin4 使用 kerberos 身份验证返回错误“Kerberos 身份验证失败。找不到 kerberos 票证”

pgadmin4 使用 kerberos 身份验证返回错误“Kerberos 身份验证失败。找不到 kerberos 票证”
  1. 我的环境:
  • Red Hat 8.8 上的 MIT Kerberos 服务器
  • Red Hat 8.8 上的 PostgreSQL 服务器 v15.3
  • Ubuntu 22.04 桌面版上的 PostgreSQL 客户端 v15.3
  1. 我已将 PostgreSQL 服务器配置为使用 Kerberos。在安装了 PostgreSQL 客户端的 Ubuntu 桌面上,我可以使用 psql 客户端成功与 PostgreSQL 服务器建立 Kerberos 连接。

  2. 在 Ubuntu 桌面上,我按照以下说明使用 apache2 服务器安装了 pgadmin4:https://computingforgeeks.com/how-to-install-pgadmin-4-on-ubuntu/我可以使用内部 pgadmin4 连接成功登录 pgadmin4,并且可以与不使用 Kerberos 的 PostgreSQL 服务器建立 PostgreSQL 连接。我认为 pgadmin4 设置正确。

  3. 现在我想使用 pgadmin4 为配置了 Kerberos 的 PostgreSQL 服务器建立 Kerberos 身份验证。我已遵循官方文档:https://www.pgadmin.org/docs/pgadmin4/latest/kerberos.html并观看了youtube视频:https://www.youtube.com/watch?v=EDg6I21kCak- 我可以按照文档和视频中的方式配置所有内容,但最后当我打开 Firefox 113 浏览器时,输入 URL:http://desktop.example.com/pgadmin4/browser/并且 pgadmin4 网页加载,但右上角显示错误消息:“Kerberos 身份验证失败。找不到 kerberos 票证。”

  4. 我已经使用“klist”命令检查了票证,票证仍然存在并且仍然有效(请记住,我可以使用 psql 工具成功建立 Kerberos 连接)。此外,Ubuntu 桌面的 keytab 文件也存在。

  5. 在 Ubuntu 上,我检查了 /var/log/pgadmin/,其中有一个空文件。还检查了 /var/log/apache2/ 文件夹,其中唯一的消息(在建立连接期间)在 access.log 中:

192.168.100.31 - - [02/Jun/2023:13:41:49 +0200] "GET /pgadmin4/browser/HTTP/1.1" 302 930 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0"

192.168.100.31 - - [02/Jun/2023:13:42:04 +0200] "GET /pgadmin4/login?next=%2Fpgadmin4%2Fbrowser%2F HTTP/1.1" 401 5435 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0"

  1. 我在日志文件中看不到任何错误。我搜索了网络,但没有找到任何有用的信息。

知道我可以研究什么吗?

答案1

我已经解决了这个问题。对我来说,这是浏览器的问题。

在 Ubuntu 22.04 浏览器中,Firefox 默认安装为 snap 包。Snap 包包括沙盒化并且不允许访问保存 Kerberos 代码的 Linux KEYRING。

我尝试安装同样经过沙盒处理的 Firefox flatpak,但访问 pgAdmin4 失败,并出现完全相同的错误“无法找到 kerberos 票证”。

解决方案:

  1. 我已经从 Mozilla Firefox 下载了非 snap 版本 https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US
  2. 将目录更改为下载目录:'cd Downloads'
  3. 解压文件:tar xvf firefox*
  4. 将目录更改为解压的文件夹:cd firefox
  5. 运行浏览器:./firefox &
  6. 在 URL 中输入我的 pgAdmin4 服务器:http://desktop.example.com/pgadmin4/browser/和 pgAdmin4 登录,右上角显示:[email protected] (kerberos),所以我已成功使用 Kerberos 登录 PostgreSQL 服务器。问题解决了。

回顾:

  • Firefox/snap:错误:找不到 kerberos 票证。
  • Firefox/flatpak:错误:找不到 kerberos 票证。
  • Mozilla/Firefox tar 文件:工作正常

相关内容