这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

LDAP 绑定方法

您可以使用以下两种 LDAP 方法来在 LDAP 服务器上对 Vertica 数据库进行身份验证。

  • 绑定 — 当 Vertica 连接到 LDAP 服务器并使用 CN 和密码绑定时,使用 LDAP 绑定。(这些值是登录到数据库的用户的用户名和密码)。当您的 LDAP 帐户的 CN 字段与数据库中定义的用户名的 CN 字段匹配时,使用捆绑方法。有关详细信息,请参阅配置 LDAP 捆绑的工作流程

  • 搜索和绑定 — 当您的 LDAP 帐户的 CN 字段是用户的全称或与数据库中定义的用户名不匹配时,使用 LDAP 搜索和绑定。对于搜索和捆绑,用户名通常在另一个字段中,如 标准 Active Directory 环境中的 UID 或 sAMAccountName。搜索和捆绑需要组织的 Active Directory 信息。这些信息能让 Vertica 登录到 LDAP 服务器并搜索指定的字段。有关详细信息,请参阅LDAP 搜索和捆绑配置工作流

    如果您正在使用搜索和捆绑,可通过服务帐户简化服务器端配置。此外,您无需存储 Active Directory 密码。

LDAP 匿名绑定

Anonymous binding 是一个 LDAP 服务器函数。匿名捆绑不需要 binddn 和 bindpasswd,因此允许客户无需登录即可连接和搜索目录(捆绑和搜索)。

当您使用管理控制台 (Management Console) 配置 LDAP 身份验证时,也不需要登录。

1 - 配置 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 捆绑参数

2 - LDAP 搜索和捆绑配置工作流

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

  1. 获取服务帐户。有关信息,请参阅 [LDAP 产品文档](https://msdn.microsoft.com/en-us/library/aa772152(v=vs.85)

  2. 从一个 Vertica 节点针对您的 LDAP 或 AD 运行 ldapsearch。验证到服务器的连接,并确定相关字段的值。运行 ldapsearch 有助于构建配置 LDAP 身份验证所需的客户端身份验证字符串。

    在下述示例中,对于其 CN 中包含用户名 John 的任何用户,ldapsearch 将返回 CN、DN 和 sAMAccountName fields 字段(若存在)。此搜索只有对允许匿名捆绑的 LDAP 服务器执行才会成功:

    $ ldapsearch -x -h 10.10.10.10 -b 'OU=Vertica Users,DC=CompanyCorp,DC=com' -s sub -D
    'CompanyCorp\jsmith' -W '(cn=John*)' cn dn uid sAMAccountName
    
  3. 查看 ldapsearch 返回的结果。搜索和捆绑的相关信息显示为粗体:

    # extended LDIF
    #
    # LDAPv3
    # base <OU=Vertica Users,DC=CompanyCorp,DC=com> with scope subtree
    # filter: (cn=John*)
    # requesting: cn dn sAMAccountName
    #
    # John Smith, Vertica Users, CompanyCorp.com
    dn: CN=jsmith,OU=Vertica Users,DC=CompanyCorp,DC=com
    cn: Jsmith
    sAMAccountName: jsmith
    # search result
    search: 2
    result: 0 Success
    # numResponses: 2
    # numEntries: 1
    
  4. 创建客户端身份验证记录。cn 属性包含您想要的用户名 — jsmith。将您的搜索属性设置为 CN 字段,以便搜索找到相应帐户。

    => CREATE AUTHENTICATION v_ldap_bind_search METHOD 'ldap' HOST '10.10.10.10';
    => GRANT AUTHENTICATION v_ldap_bind_search TO public;
    => ALTER AUTHENTICATION v_ldap_bind_search SET
    host='ldap://10.10.10.10',
    basedn='OU=Vertica,DC=CompanyCorp,DC=com',
    binddn='CN=jsmith,OU=Vertica Users,DC=CompanyCorp,DC=com',
    bind_password='password',
    search_attribute='CN';
    

有关详细信息,请参阅 LDAP 绑定和搜索参数