使用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
为例进行演示。
连接Nebula Graph,创建与OpenLDAP中对应的影子账号
test2
并授权。nebula> CREATE USER test2 WITH PASSWORD '';
nebula> GRANT ROLE ADMIN ON basketballplayer TO test2;
Note
Nebula Graph内创建用户时,密码可以任意设置。
编辑配置文件
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
重启Nebula 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 Nebula Graph!
Note
使用OpenLDAP进行身份验证后,本地用户(包括
root
)无法正常登录。
最后更新: September 27, 2021