使用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所在服务器已开放相应认证端口。

操作步骤

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

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

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

    Note

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

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

    • 简单绑定认证(推荐)

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

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

  4. 进行登录测试。

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

    Note

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


最后更新: September 27, 2021