设为首页 加入收藏

TOP

关于postgresql的安装与实用(六)
2014-11-24 00:04:36 来源: 作者: 【 】 浏览:76
Tags:关于 postgresql 安装 实用
个主机的主机名。

Ident认证

Ident认证方式是一个ident服务器获取客户端操作系统的用户名,然后以此判断是否允许这个数据库用户名(使用用户名映射)。这个认证方式只支持TCP/IP连接。

注意:当用ident认证声明了一个本地连接(非TCP/IP连接),将会用peer认证方式进行替换(见Section 19.3.7)。

以下是ident支持的配置选项:

map

允许系统和数据库用户名之间进行映射。请参阅Section 19.2获取更多信息。

在RFC 1413中有对这个认证协议的描述。事实上,实际上每个类Unix的操作系统都带着一个缺省时侦听113端口的ident服务器.这个ident服务器的基本功能是回答类似这样的问题“是什么用户从你的端口X初始化出来联接到我的端口Y上来了?”。当物理连接建立之后,PostgreSQL既知道X的值又知道Y的值。它能够询问连接的客户端主机上的ident服务器,理论上可以确定发起连接的操作系统用户。

这佯做的缺点是取决于客户端的完整性:如果这个客户端不可信的或者被破坏,那么这个破坏者可以通过113端口运行程序来获取他选择的任何一个用户。这个认证方法仅适合在封闭的网络中,每一台机器都在严密的控制下,并且数据库和系统的管理员没有密切的联系。换句话说,你必须信任运行这ident服务的机器。注意这个警告:

这个认证协议并不打算作为授权或者访问控制协议。

--RFC 1413

一些ident服务器有一个非标准的选项,使返回的用户名被加密,这个密匙只有机器的管理员知道。当ident服务使用了PostgreSQL,这个选项将不能使用,因为PostgreSQL没有办法解密这个字符串来确定真实的用户名。

Peer认证

peer认证的工作方式是从内核获取客户端操作系统的用户名,然后以此判断是否允许这个数据库用户名(使用用户名映射)。这个方法只支持本地连接。

以下是peer支持的配置选项:

map

允许系统和数据库用户名之间进行映射。请参阅Section 19.2获取更多信息。

Peer认证只对系统支持SO_PEERCRED并且是Unix-domain sockets请求有效(如流行的LINUX,FreeBSD,NetBSD,OpenBSD,BSD/OS,and Solaris)。PostgreSQL通过SO_PEERCRED找出客户端连接进程的操作系统用户名。

LDAP认证

这个认证方法和password方式操作类似,只不过是用LDAP进行密码验证。LDAP是仅用于验证用户名/密码。因此,在用LDAP进行认证之前,用户必须已经在数据库里存在。

LDAP认证有两种管理模式。在第一种模式下,而这个节点的名字是prefix username suffix 三个组合起来的。前缀、用户名、后缀。通常,在活动目录的环境中prefix参数用来声明cn=或者DOMAIN\。suffix用来声明在非Active Directory环境中的DN的剩余部分。

在第二种模式下,这个服务器首先用固定的用户名和密码对一个LDAP目录进行身份验证,用ldapbinduser和ldapbinddn进行声明,并且尝试登录到数据库中搜索这个用户。如果没有设置用户和密码,将会以匿名用户绑定到这个目录。这个搜索将会通过ldapbasedn参数在子树中执行,并且将尝试完全匹配在ldapsearchattribute参数中声明的属性。如果没有指定属性,将会使用uid的属性。一旦用户在此搜索中被发现,这个服务器将会断开连接,并且用客户端指定的这个用户名和密码重新验证这个目录来验证这个登录是否正确。这个方法使得装载在这个目录的用户对象显得更加灵活,但是这将导致LDAP服务器产生两个独立的连接。

以下是LDAP支持的配置选项:

ldapserver

连接到LDAP服务器的IP或者名字。

ldpport

连接到LDAP服务器的端口号。如果没指定端口,将会使用LDAP库的默认端口。

ldaptls

设置成1将会使PostgreSQL和LDAP服务器之间采用TLS加密连接。注意,这只是对LDAP服务器的传输加密--连接的客户端仍旧将是非加密的除非客户端使用SSL。

ldapprefix

当做一个简单的身份认证时,用DN进行身份认证时作为用户名的前缀。

ldapsuffix

当做一个简单的身份认证时,用DN进行身份认证时作为用户名的后缀。

ldapbinddn

当用search+bind进行认证时,用DN方式进行验证这个目录并执行搜索。

ldapbindpasswd

当用search+bind进行认证时,用密码方式进行验证这个目录并执行搜索。

ldapsearchattribute

当用search+bind进行认证时,指定用户名的属性进行搜索。

注意:在LDAP中常常用逗号和空格对一个DN的不同部分进行分割,也常常需要用双引号将LDAP的配置选项给引起来,例如:

ldapserver=ldap.example.net ldapprefix="cn=" ldapsuffix=", dc=example, dc=net"

RADIUS认证

这个认证方法和password方法的操作类似,只不过是用RADIUS进行密码认证。RADIUS只用于验证用户名和密码对。因此,在用RADIUS进行认证之前,用户必须已经在数据库里存在。

当用RAIDUS进行认证,访问的请求信息将会发送给RADIUS服务器。这个请求将只能用Authenticate类型,并且应该包括user name,pasword(加密的)和NAS Identifier参数。这个情况将会被服务器通过私有共享的方式加密。这个RADIUS服务器将会用访问允许(Access Accept)或者访问禁止(Access Reject)对这个服务器进行回应。这不支持RADIUS账户。

以下是RADIUS支持的配置选项

radiusserver

连接的RADIUS服务器的名字或者IP。这个参数是必须的。

radiussecret

跟RADIUS服务器安全的交流时采用私密共享的方式。这样要在PostgreSQL和RADIUS服务器上必须有一个相同的值。推荐这个字符串至少要有16个字符。这个参数是必须的。

注意:如果PostgreSQL创建的时候支持OpenSSL,那么这个加密载体只能使用强加密。换句话说,当跟RADIUS服务器进行传输时,只应该考虑是否是模糊的不安全的口令,如果有需要应该启用外部安全措施。

radiusport

连接的RADIUS服务器的端口号。如果没有指定端口,那么将会用默认的1812端口。

radiusidentifier

这个字符串可以在RADIUS请求中当做NAS鉴别符。这个参数可以被当做第二参数来识别,例如用户来尝试连接这个数据库用户,可以用这个策略在RADIUS服务器上进匹配。如果没有指定识别符,默认将会使用postgresql。

证书认证

这个认证方法是通过SSL客户端证书来进行认证。因此这个方法只对SSL连接有效。当用这个方法,服务器将请求客户端提供一个有效的证书。发送给客户端的时候不会有密码提示。这个cn(通用名称)证书的属性将会和请求的数据库用户名进行比较,如果匹配,将允许。用户名映射

首页 上一页 3 4 5 6 7 8 下一页 尾页 6/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇PostgreSQL代码整体结构(一) 下一篇PostgreSQL 安装问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: