跳转至

使用OpenLDAP进行身份验证

本文介绍如何将Nebula Graph连接到OpenLDAP服务器,使用OpenLDAP中定义的DN(Distinguished Name)和密码进行身份验证。

Enterpriseonly

仅企业版支持本功能。

认证方式

启用OpenLDAP身份验证后,输入用户的账号和密码登录Nebula Graph时,Nebula Graph会在Meta服务中查找登录账号是否存在,如果账号存在,再根据认证方式去OpenLDAP中找到对应的DN,验证密码。

OpenLDAP支持的认证方式有两种:简单绑定认证和搜索绑定认证。

简单绑定认证(SimpleBindAuth)

简单绑定认证会根据登录账号和Graph服务配置信息,拼接成OpenLDAP可以识别的DN,然后根据DN和密码,在OpenLDAP上进行验证。

搜索绑定认证(SearchBindAuth)

搜索绑定认证会读取Graph服务配置信息,查询配置信息中的uid和登录账号是否匹配,如果匹配,就读取这个DN,然后用DN和密码,在OpenLDAP上进行验证。

前提条件

  • 已在OpenLDAP上导入用户的账号和密码信息。
  • OpenLDAP所在服务器已开放相应认证端口。

操作步骤

以OpenLDAP上已存在的账号test2、密码passwdtest2为例进行演示。

  1. 连接Nebula Graph,创建与OpenLDAP中对应的影子账号test2并授权。

    nebula> CREATE USER test2 WITH PASSWORD '';
    nebula> GRANT ROLE ADMIN ON basketballplayer TO test2;
    

    Note

    Nebula Graph内创建用户时,密码可以任意设置。

  2. 编辑配置文件nebula-graphd.conf(默认目录为/usr/local/nebula/etc/):

    • 简单绑定认证(推荐)

      # 是否从配置文件获取配置信息。
      --local_config=true
      # 是否开启身份验证
      --enable_authorize=true
      # 身份验证方式:password、ldap、cloud
      --auth_type=ldap
      # OpenLDAP服务器地址
      --ldap_server=192.168.8.211
      # OpenLDAP服务器端口
      --ldap_port=389
      # OpenLDAP中的Schema名称
      --ldap_scheme=ldap
      # DN前缀
      --ldap_prefix=uid=
      # DN后缀
      --ldap_suffix=,ou=it,dc=sys,dc=com
      
    • 搜索绑定认证

      # 是否从配置文件获取配置信息。
      --local_config=true
      # 是否开启身份验证
      --enable_authorize=true
      # 身份验证方式:password、ldap、cloud
      --auth_type=ldap
      # OpenLDAP服务器地址
      --ldap_server=192.168.8.211
      # OpenLDAP服务器端口
      --ldap_port=389
      # OpenLDAP中的Schema名称
      --ldap_scheme=ldap
      # 绑定目标对象的DN
      --ldap_basedn=uid=test2,ou=it,dc=sys,dc=com
      
  3. 重启Nebula Graph服务,让新配置生效。

  4. 进行登录测试。

    $ ./nebula-console --addr 127.0.0.1 --port 9669 -u test2 -p passwdtest2
    2021/09/08 03:49:39 [INFO] connection pool is initialized successfully
    
    Welcome to Nebula Graph!
    

    Note

    使用OpenLDAP进行身份验证后,本地用户(包括root)无法正常登录。


最后更新: September 27, 2021
Back to top