身份验证

当客户端连接到 Nebula Graph 时,Nebula Graph 就会创建一个会话。会话用来存储有关连接的各种信息。每条会话只关联一个用户。身份验证即为将会话映射到特定用户的过程。一旦将会话映射到用户,便可以使用授权将一组权限与之关联。

Nebula Graph 支持两种身份验证方式,即本地和 LDAP。详细说明见下文。

本地身份验证

本地数据库存储用户名、加密密码,本地用户设置和远程 LDAP 用户设置。当用户尝试访问数据库时,将接受安全验证。

按照以下步骤启用本地认证:

  1. 将配置文件 nebula-graphd.conf(默认目录 /usr/local/nebula/etc/)中的 --enable_authorize 属性设置为 true
  2. 保存第一步的设置并关闭配置文件 nebula-graphd.conf
  3. 重启 Nebula Graph 服务。

LDAP

轻型目录访问协议(LDAP)是用于访问目录服务的轻型客户端-服务器协议。 LDAP 中存储的用户优先级高于本地数据库用户。例如,如果两个本地和 LDAP 都有一个名为 “Amber” 的用户,则优先从 LDAP 读取该用户的设置和角色信息。

与本地身份验证不同,除需设置 --enable_authorize 参数之外, LDAP 还需要在 nebula-graphd.conf 文件中(默认目录 /usr/local/nebula/etc/)配置相关参数方可启用。详细信息,请参见集成 LDAP 文档

LDAP 参数

参数名参数类型默认值说明
ldap_serverstring“”一系列 ldap 服务器地址。多个地址使用逗号隔开。
ldap_portINT32LDAP 服务器端口号。如未指定,则使用默认端口。
ldap_schemestring“ldap”仅支持 ldap。
ldap_tlsboolfalse开启/禁用 graphd 和 ldap 之间的 TLS 加密方式。
ldap_suffixstring“”指定用于所有 ldap 操作的根后缀。
ldap_basednstring“”LDAP 的专有名称。
ldap_binddnstring“”允许搜索基本 DN 的 LDAP 用户。
ldap_bindpasswdstring“”绑定到 DN 的用户密码。
ldap_searchattributestring“”一系列必填属性。
ldap_searchfilterstring“”定义搜索过滤规则。较 searchattribut 更为灵活。

FAQ

报错信息:Authentication fails, Invalid data length

身份验证失败,请按照上述步骤开启身份验证。