PostgreSQL Windows AD认证配置
背景
在企业中,如果要使用统一的账户管理,可以考虑LDAP或者WINDOWS AD域进行管理。
PostgreSQL数据库也支持LDAP和AD的认证手段。
之前介绍了PostgreSQL Linux LDAP认证的配置。
PostgreSQL LDAP simple bind认证配置
PostgreSQL LDAP search bind认证配置
本文介绍一下PostgreSQL的Windows AD认证配置方法。
PostgreSQL Windows AD域认证配置
windows AD配置方法和LDAP一样,
首先我们要测试一下在linux下, 使用ldapsearch是否可以正常访问WINDOWS AD 服务.
例如 :
# ldapsearch -H ldap://xxx.xxx.1.133:389 -x
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this ope
ration a successful bind must be completed on the connection., data 0, v1db1
# numResponses: 1
检查使用域账号bind 是否正常 :
# ldapsearch -H ldap://xxx.xxx.1.133:389 -x -D "cn=德哥,ou=digoal,ou=SKYMOBI,dc=sky-mobi,dc=com" -W
输入密码后可以正常返回.
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 10 Referral
text: 0000202B: RefErr: DSID-031007EF, data 0, 1 access points
ref 1: 'examp
le.com'
ref: ldap://example.com/dc=example,dc=com
# numResponses: 1
接下来就可以配置postgresql的域认证了.
首先要在域中创建账号, 并获取账号的Distinguished Name 即binddn.
例如 :
cn=德哥,ou=digoal,ou=SKYMOBI,dc=sky-mobi,dc=com
在数据库中创建对应的用户.
$ psql postgres postgres
# create role "德哥" login;
配置pg_hba.conf, 使用如下条目 :
host all all 0.0.0.0/0 ldap ldapserver=xxx.xxx.1.133 ldapport=389 ldapprefix="cn=" ldapsuffix=",ou=digoal,ou=SKYMOBI,dc=sky-mobi,dc=com"
测试 :
psql -h 172.16.3.150 -p 1921 -U 德哥
Password for user 德哥: 如果密码错误则
psql: FATAL: LDAP authentication failed for user "德哥"
密码使用正确的AD域用户的密码就可以登录
Password for user 德哥:
psql (9.3.5)
Type "help" for help.
postgres=> \q
参考
PostgreSQL LDAP simple bind认证配置
PostgreSQL LDAP search bind认证配置