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 新增此参数。
默认值变迁
默认值自 PostgreSQL 18 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。
手册说明
用于验证 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。
- 只在主库安装验证器而未覆盖故障转移目标,或信任未经颁发者、受众与角色映射评审的本地代码。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。
-
PostgreSQL 20 ← 19 沿用 19
事实沿用 19
-
PostgreSQL 18 ← 17 新增此参数
PostgreSQL 18 起可用
逐版本快照
每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。
参考资料
同类参数
| 参数 | 类型 | 上下文 | 默认值 | 版本变动 | 最近变更 |
|---|---|---|---|---|---|
| 认证 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 密文时使用的迭代次数。 | 现存 | ||||