pgadmin配置Kerberos认证失败 同服务器PostgreSQL认证正常
pgAdmin Kerberos认证失败排查思路
- 首先检查浏览器的Kerberos白名单配置
浏览器默认不会主动向站点发送Kerberos票据,需要手动配置信任站点:- Chrome/Edge:启动参数添加
--auth-server-whitelist="*.algobuilder.co.uk",或通过组策略配置认证服务器白名单 - Firefox:访问
about:config,修改network.negotiate-auth.trusted-uris为algobuilder.co.uk,同步配置network.negotiate-auth.delegation-uris为相同值
- Chrome/Edge:启动参数添加
- 校验pgAdmin运行权限与配置项
- 确认pgAdmin运行用户(通常为
pgadmin或apache/httpd)对/usr/pgadmin4/web/pgadmin.keytab有读取权限,keytab建议权限设为600,属主与运行用户保持一致 - 检查
config_local.py核心配置项:KRB_KEYTAB路径是否与实际keytab存放路径完全匹配KRB_APP_HOST_NAME是否为db001.algobuilder.co.uk,必须和服务主体的hostname完全一致- 默认Web服务的Kerberos认证使用
HTTP作为服务名,如果坚持使用pgadmin/开头的服务主体,需要额外添加配置KRB_SERVICE_NAME = 'pgadmin',否则会出现服务主体不匹配问题
- 确认pgAdmin运行用户(通常为
- 查看pgAdmin运行日志定位具体错误
日志默认存放路径为/var/log/pgadmin4/,可根据日志内容区分是keytab读取失败、票据验证失败还是主体匹配失败 - 校验域名解析一致性
Kerberos认证对正向/反向解析一致性要求极高,需要确认:- 客户端
dev001解析db001.algobuilder.co.uk得到的IP,反向解析后必须对应回db001.algobuilder.co.uk - 服务端
db001本地解析自身hostname得到的是网卡实际IP,而非127.0.0.1
- 客户端
- 校验服务端Kerberos基础配置
检查pgAdmin运行环境下的/etc/krb5.conf,确认域ALGOBUILDER.CO.UK的KDC、admin server等参数配置正确,无拼写错误
内容的提问来源于stack exchange,提问作者Jamie
相关产品推荐
相关产品推荐

