选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 连接和认证

CONFIGURATION PARAMETER连接和认证 / 认证

oauth_validator_libraries

列出可用于验证 OAuth 2.0 Bearer Token 的库。

Lists libraries that may be called to validate OAuth v2 bearer tokens.

字符串 重载生效 引入 18 现存至 20 devel 0 次默认值变更

类型
字符串string
上下文
重载生效改配置文件后重载(pg_ctl reload / SIGHUP)即可生效
默认值
空字符串原始值 ''
引入版本
18
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 b3f0be788a

版本轨迹

PostgreSQL 18 新增此参数。

默认值变迁

空字符串 18 – 20

默认值自 PostgreSQL 18 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.3 连接和认证 本站手册 官方原文

用于验证 OAuth 连接令牌的库。如果只提供一个验证器库,它将默认用于任何 OAuth 连接; 否则,所有oauth HBA 条目 都必须显式设置一个从该列表中选取的validator。如果设置为空字符串 (默认值),OAuth 连接将被拒绝。此参数只能在postgresql.conf 文件中设置。

验证器模块必须单独实现或获取;PostgreSQL 不提供任何默认实现。关于实现 OAuth 验证器的更多信息,请参见 Chapter 50

机制详解

oauth_validator_libraries 列出可验证 OAuth 2.0 Bearer Token 的受信服务器模块。PostgreSQL 18 不附带任何验证器实现,默认空值会拒绝所有 OAuth 连接;可用部署必须安装并列出至少一个兼容模块。

列表只有一个库时,PostgreSQL 默认将其用于 OAuth 连接;存在多个库时,pg_hba.conf 中每条 oauth 记录都必须从列表中显式指定 validator。该参数属于 SIGHUP 上下文,更改允许列表需要重新加载配置,并影响后续认证尝试。

验证器在服务器认证路径内执行受信本地代码。其令牌颁发者、受众、声明到角色映射、失败行为、依赖、软件包版本,以及在所有主库和故障转移节点上的可用性,都必须与 pg_hba.conf 和身份提供方一致。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    先安装一个经过评审的验证器,在所有故障转移目标固定其软件包与版本,并在启用 oauth HBA 记录前测试颁发者、受众、过期、吊销、角色映射、畸形令牌和身份提供方故障。

  • OLAP分析与批处理

    分析访问采用同一验证器信任策略。若需要不同颁发者或声明映射,应显式列出经评审模块,并在每条匹配 HBA 记录中选择预期 validator。

  • 小规格低配实例与开发机

    空值会安全地禁用 OAuth,但不是可工作的 OAuth 配置。小节点优先使用一个充分测试的验证器,并预算其令牌验证延迟,而不是削弱检查。

常见问题

  • 列表为空时创建 oauth HBA 规则;PostgreSQL 会拒绝所有 OAuth 连接。
  • 误以为 PostgreSQL 提供内置验证器实现。
  • 列出多个库,却未在每条 oauth HBA 记录中选择 validator。
  • 只在主库安装验证器而未覆盖故障转移目标,或信任未经颁发者、受众与角色映射评审的本地代码。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 18 ← 17 新增此参数

    PostgreSQL 18 起可用

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
18 空字符串 重载生效 字符串
19 空字符串 重载生效 字符串
20 沿用 空字符串 重载生效 字符串

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Connections and Authentication 连接和认证 10 个
认证 10
authentication_timeout 整数 重载生效 1 min
设置完成客户端认证所允许的最长时间。 现存
db_user_namespace 布尔 重载生效 off
启用按数据库划分的用户名空间。 于 17 移除
gss_accept_delegation 布尔 重载生效 off
设置是否接受客户端的 GSSAPI 凭据委派。 现存
krb_caseins_users 布尔 重载生效 off
设置 Kerberos 和 GSSAPI 用户名是否按大小写不敏感方式处理。 现存
krb_server_keyfile 字符串 重载生效 FILE:/etc/postgresql-common/krb5.keytab 9.11 次
设置 Kerberos 服务器密钥文件的位置。 现存
md5_password_warnings 布尔 会话 on
启用关于 MD5 密码的弃用警告。 现存
oauth_validator_libraries 字符串 重载生效 空字符串
列出可用于验证 OAuth 2.0 Bearer Token 的库。 现存
password_encryption 枚举 会话 scram-sha-256 142 次
选择生成密码密文时使用的算法。 现存
password_expiration_warning_threshold 整数 重载生效 7 d
设置密码到期告警的提前时间阈值。 现存
scram_iterations 整数 会话 4096
设置生成 SCRAM 密文时使用的迭代次数。 现存