配置 LDAP 捆绑的工作流程

要配置您的 Vertica 数据库,以使用 LDAP 捆绑对客户端进行身份验证,请遵循以下步骤:

  1. 获取服务帐户。有关信息,请参阅 [LDAP 产品文档](https://msdn.microsoft.com/en-us/library/aa772152(v=vs.85)。您无法使用连接参数中的服务帐户进行 LDAP 捆绑。

  2. 比较用户的 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)
    
  3. 针对您的 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
    
  4. 基于 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 捆绑参数