使用OpenLDAP进行身份验证Graph
本文介绍如何将NebulaGraph连接到OpenLDAP服务器,使用OpenLDAP中定义的DN(Distinguished Name)和密码进行身份验证。
Enterpriseonly
仅企业版支持本功能。
认证方式Graph
启用OpenLDAP身份验证后,输入用户的账号和密码登录NebulaGraph时,NebulaGraph会在Meta服务中查找登录账号是否存在,如果账号存在,再根据认证方式去OpenLDAP中找到对应的DN,验证密码。
OpenLDAP支持的认证方式有两种:简单绑定认证和搜索绑定认证。
简单绑定认证(SimpleBindAuth)Graph
简单绑定认证会根据登录账号和Graph服务配置信息,拼接成OpenLDAP可以识别的DN,然后根据DN和密码,在OpenLDAP上进行验证。
搜索绑定认证(SearchBindAuth)Graph
搜索绑定认证会读取Graph服务配置信息,查询配置信息中的uid
和登录账号是否匹配,如果匹配,就读取这个DN,然后用DN和密码,在OpenLDAP上进行验证。
前提条件Graph
- 已安装Graph。
- 已在OpenLDAP上导入用户的账号和密码信息。
- OpenLDAP所在服务器已开放相应认证端口。
操作步骤Graph
以OpenLDAP上已存在的账号test2
、密码passwdtest2
为例进行演示。
-
Graph,创建与OpenLDAP中对应的影子账号
test2
并授权。nebula> CREATE USER test2 WITH PASSWORD ''; nebula> GRANT ROLE ADMIN ON basketballplayer TO test2;
Note
NebulaGraph内创建用户时,密码可以任意设置。
-
编辑配置文件
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=ou=it,dc=sys,dc=com
-
-
Graph,让新配置生效。
-
进行登录测试。
$ ./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 NebulaGraph!
Note
使用OpenLDAP进行身份验证后,本地用户(包括
root
)无法正常登录。
最后更新: September 27, 2021