23.4. Kerberos 认证
Kerberos是一种工业标准的安全认证系统,适合在公共网络上进行分布式计算。
23.4.1. 可用性
Kerberos 认证系统并不随Postgres一起发行。Kerberos的各个版本通常以操作系统厂商的可选软件的形式提供。此外,还可以通过 MIT Project Athena 获取源码发行版。
注意
即使你的厂商提供了某个版本,你也可能希望获取 MIT 版本,因为有些厂商的移植版本被故意削弱或弄得与 MIT 版本无法互操作。
位于美国和加拿大之外的用户请注意,Kerberos中实际加密代码的分发受美国政府出口法规的限制。
关于Kerberos的询问应当指向你的厂商或 MIT Project Athena。注意,FAQL(常见问题列表)会定期张贴到 Kerberos邮件列表(发送邮件订阅)和USENET 新闻组。
23.4.2. 安装
Kerberos本身的安装在
Kerberos 安装说明中有详细介绍。请确保服务器密钥文件(srvtab或
keytab)能被Postgres
账户以某种方式读取。
通过把文件src/Makefile.global中的
KRBVERS变量设置为适当的值,Postgres及其客户端可以编译为使用
MIT Kerberos协议的版本 4 或版本 5。你还可以更改Postgres期望找到相关库、头文件和它自己的服务器密钥文件的位置。
编译完成后,必须把Postgres 注册为一个Kerberos 服务。关于注册服务的更多细节,请参阅 Kerberos 操作说明及相关的手册页。
23.4.3. 操作
初次安装之后,Postgres 在各方面都应当像正常的 Kerberos服务一样运行。关于认证使用的细节,请参阅postmaster和 psql的 PostgreSQL 用户指南参考章节。
在Kerberos版本 5 的钩子中,对用户和服务命名做了以下假设:
假定用户主体名(aname)的第一个组件中包含实际的 Unix/Postgres用户名。
假定Postgres服务有两个组件,即服务名和一个主机名,主机名按版本 4 的方式规范化(即去掉所有域名后缀)。
表 23.1. Kerberos 参数示例
| 参数 | 示例 |
|---|---|
| user | frew@S2K.ORG |
| user | aoki/HOST=miyu.S2K.Berkeley.EDU@S2K.ORG |
| host | postgres_dbms/ucbvax@S2K.ORG |
在 MIT 发布版本 5 的正式版本之后的某个时候,将不再支持版本 4。