配置 LDAP 捆绑的工作流程
要配置您的 Vertica 数据库,以使用 LDAP 捆绑对客户端进行身份验证,请遵循以下步骤:
-
获取服务帐户。有关信息,请参阅 [LDAP 产品文档](https://msdn.microsoft.com/en-us/library/aa772152(v=vs.85)。您无法使用连接参数中的服务帐户进行 LDAP 捆绑。
-
比较用户的 LDAP 帐户名及其 Vertica 用户名。例如,如果 John Smith 的 Active Directory (AD) sAMAccountName = jsmith,他的 Vertica 用户名必须是 jsmith。
但是,LDAP 帐户不必与数据库用户名匹配,如以下示例中所示:
=> CREATE USER r1 IDENTIFIED BY 'password'; => CREATE AUTHENTICATION ldap1 METHOD 'ldap' HOST '172.16.65.177'; => ALTER AUTHENTICATION ldap1 SET HOST= 'ldap://172.16.65.10',basedn='dc=dc,dc=com',binddn_suffix=',ou=unit2,dc=dc,dc=com',binddn_prefix='cn=use'; => GRANT AUTHENTICATION ldap1 TO r1;
\! ${TARGET}/bin/vsql -p $PGPORT -U r1 -w $LDAP_USER_PASSWD -h ${HOSTNAME} -c "select user_name, client_authentication_name from sessions;" user_name | client_authentication_name -----------+---------------------------- r1 | ldap (1 row)
-
针对您的 LDAP 或 AD 服务器从一个 Vertica 节点运行
ldapsearch
。验证到服务器的连接,并确定相关字段的值。运行ldapsearch
有助于构建配置 LDAP 身份验证所需的客户端身份验证字符串。在下述示例中,对于其 CN 包含用户名 jsmith 的任何用户,
ldapsearch
将返回 CN、DN 和 sAMAccountName 字段(若存在)。此搜索只有对允许匿名捆绑的 LDAP 服务器执行才会成功:$ ldapsearch -x -h 10.10.10.10 -b "ou=Vertica Users,dc=CompanyCorp,dc=com" '(cn=jsmith*)' cn dn uid sAMAccountName
ldapsearch
返回以下结果。LDAP 捆绑的相关信息显示为粗体:# extended LDIF # # LDAPv3 # base <ou=Vertica Users,dc=CompanyCorp,dc=com> with scope subtree # filter: (cn=jsmith*) # requesting: cn dn uid sAMAccountName # # jsmith, Users, CompanyCorp.com dn:cn=jsmith,ou=Vertica Users,dc=CompanyCorp,dc=com cn: jsmith uid: jsmith # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
-
基于
ldapsearch
提供的信息创建新的身份验证记录。在ldapsearch
条目中,CN 是用户名 jsmith,所以您无需设置它。Vertica 自动将 CN 设置为尝试建立连接的用户的用户名。Vertica 使用该 CN 捆绑 LDAP 服务器。=> CREATE AUTHENTICATION v_ldap_bind METHOD 'ldap' HOST '0.0.0.0/0'; => GRANT AUTHENTICATION v_ldap_bind TO public; => ALTER AUTHENTICATION v_ldap_bind SET host='ldap://10.10.10.10/', basedn='DC=CompanyCorp,DC=com', binddn_prefix='cn=', binddn_suffix=',OU=Vertica Users,DC=CompanyCorp,DC=com';
有关详细信息,请参阅 LDAP 捆绑参数。