TigerGraph文档
2.3
2.3
  • TigerGraph 2.3 技术文档目录
  • TigerGraph 版本比较
  • GSQL 图数据库算法库
  • 版本发布, 功能变更
    • 版本发布 - TigerGraph 2.3
      • 版本发布 - TigerGraph 2.2
    • 变更日志
  • INTRODUCTION AND OVERVIEW
    • TigerGraph 入门指南
    • GSQL 101
      • 环境准备
      • 定义一个Schema
      • 加载数据
      • 使用内置的SELECT进行查询
      • 使用参数化GSQL查询进行查询
      • 总结:你学到的东西
    • TigerGraph平台概览
    • Knowledge Base and FAQs
      • TigerGraph 常见问题
      • GSQL 常见问题
    • Kafka Loader用户手册
  • 系统管理指南
    • TigerGraph 管理员指南
      • 硬件及软件配置
      • 安装和配置
        • 安装指南
        • 高可用(HA)集群配置
        • 集群的扩容
        • 软件许可激活
      • 系统权限管理
        • 用户权限及验证
        • LDAP
        • 单点登录(SSO)
      • 数据加密
        • 链接的加密
        • 非活跃数据(Data At Rest)的加密
      • 系统管理
        • 基于Web的管理工具:Admin Portal
        • 使用gadmin工具管理
        • 数据的备份与恢复
        • 系统维护中的常见问题
  • 开发者指南
    • GSQL 语言开发指南
      • 第一部分 数据定义及加载
        • 简介
        • 系统和语言基础
        • 定义一个图模型(Graph Schema)
        • 修改图模型
        • 创建数据加载任务
        • 执行加载作业
        • 附录
          • 关键词和系统预留词
          • GSQL 从开始到结束的整个过程和数据流向
      • 第二部分 查询
        • 简介
        • 创建、安装、执行查询
        • 数据类型
        • 累加器(Accumulators)
        • 运算符,函数和表达式
        • 声明和赋值
        • SELECT语句
        • 控制流语句
        • 数据修改语句
        • 输出语句以及文件对象
        • 异常处理语句
        • 注释
        • 附录
          • 附录A: 一般错误和问题
          • 附录B:查询语言的完整正式语法
          • 附录C. 图查询语言的预留词列表
          • 附录D. 示例
    • RESTPP API 开发指南
      • 简介
      • RESTPP请求
      • 系统预制函数(Endpoints)
      • 系统预制函数请求格式(JSON)
    • 事务处理及ACID支持
  • 图形界面 可视化
    • GraphStudio 用户指南
      • GraphStudio 概述
      • GraphStudio许可证
      • 用户权限管理
      • 设计图模型(Schema)
      • 将数据映射到图
      • 加载数据
      • 探索图数据
      • 编写查询
      • 导入和导出解决方案
      • 已知问题
      • GraphStudio中的专利及第三方软件版权说明
Powered by GitBook
On this page
  • 支持的功能
  • 将用户从LDAP映射到GSQL
  • 代理用户
  • 代理用户组
  • 配置GSQL的LDAP验证
  • 步骤1 - 配置LDAP连接
  • 步骤 2 - 配置GSQL代理用户组和用户
  • 代理用户

Was this helpful?

  1. 系统管理指南
  2. TigerGraph 管理员指南
  3. 系统权限管理

LDAP

轻量目录访问协议(Lightweight Directory Access Protocol 或 LDAP)是业界通行的标准协议。它允许用户通过网络访问和维护文件目录信息。但通常情况下,LDAP服务器主要用于集中式用户验证。TigerGraph支持LDAP,用户可以通过LDAP的用户名和密码直接登录TigerGraph系统。在使用LDAP验证用户账户时,GSQL服务器会联系LDAP服务器获取对应用户的信息。

支持的功能

GSQL支持任何遵循LDAPv3标准协议建立的LDAP服务器,同时也支持StartTLS/SSL连接。

当前版本不支持SASL验证。某些LDAP服务器可能要求客户端发送验证请求时提交证书,然而当前版本的GSQL的LDAP验证不支持客户端证书。

将用户从LDAP映射到GSQL

为了方便管理用户的身份和权限,TigerGraph的GSQL服务器引入了两个概念:代理用户(proxy user)和代理用户组(proxy group)

代理用户

每个代理用户对应一个LDAP用户。外部LDAP用户具体有哪些身份权限,取决于对应的代理用户拥有的权限。

代理用户组

代理用户组是一个由GSQL用户组成的组,它用于管理一组有着类似属性的LDAP用户。

当一个LDAP用户登录GSQL时,它必须满足至少一条现有的代理用户组规则。一旦满足,则该代理用户组中就会生成一个与该LDAP用户对应的代理用户。代理用户的身份权限必须至少不小于它所在的代理用户组的权限。我们可以针对某一个代理用户单独修改它的权限。如果某个代理用户组的权限有变动,则其中的所有的代理用户的权限也会跟着变动。

配置GSQL的LDAP验证

启用TigerGraph的LDAP验证有两个主要步骤:

  1. 配置LDAP连接

  2. 配置GSQL代理用户组和代理用户

步骤1 - 配置LDAP连接

配置和启动LDAP要用到以下三条命令:

配置 LDAP:

gadmin --configure ldap

gadmin工具会提示用户输入LDAP配置参数。

启用该配置:

gadmin config-apply

重启GSQL服务:

gadmin restart gsql -y

下面是一个实际案例:

例: gadmin --configure ldap
$ gadmin --configure ldap
# Enable LDAP authentication: default false
security.ldap.enable [False]: true
True
​
# Configure LDAP server hostname: default localhost
security.ldap.host [ldap.tigergraph.com]: ldap.tigergraph.com
ldap.tigergraph.com
​
# Configure LDAP server port: default 389
security.ldap.port [389]: 389
389
​
# Configure LDAP search base DN, the root node to start the LDAP search for user authentication: must specify
security.ldap.base_dn [dc=tigergraph,dc=com]: dc=tigergraph,dc=com
dc=tigergraph,dc=com
​
# Configure LDAP search base DN, the root node to start the LDAP search for user authentication.
security.ldap.search_filter [(objectClass=*)]: 
(objectClass=*)
​
# Configure the username attribute name in LDAP server: default uid
security.ldap.username_attribute [uid]: uid
uid
​
# Configure the DN of LDAP user who has read access to the base DN specified above. Empty if everyone has read access to LDAP data: default empty
security.ldap.admin_dn [cn=Manager,dc=tigergraph,dc=com]: cn=Manager,dc=tigergraph,dc=com
cn=Manager,dc=tigergraph,dc=com
​
# Configure the password of the admin DN specified above. Needed only when admin_dn is specified: default empty
security.ldap.admin_password [secret]: secret
secret
​
# Enable SSL/StartTLS for LDAP connection [none/ssl/starttls]: default none
security.ldap.secure.protocol [starttls]: none    
none
​
# Configure the truststore path for the certificates used in SSL: default empty
security.ldap.secure.truststore_path [/tmp/ca_server.pkcs12]: 
/tmp/ca_server.pkcs12
​
# Configure the truststore format  [JKS/PKCS12]: default JKS
security.ldap.secure.truststore_format [pkcs12]: 
pkcs12
​
# Configure the truststore password: default changeit
security.ldap.secure.truststore_password [test]: 
test
​
# Configure to trust all LDAP servers (unsafe): default false
security.ldap.secure.trust_all [False]: false

以下是每个配置参数的具体解释:

security.ldap.enable

若设为"true"即开启LDAP; 设为"false"即关闭LDAP.

security.ldap.host

配置LDAP服务器主机名.

security.ldap.port

配置LDAP服务器端口号.

security.ldap.base_dn

配置基础可辨识名(即Distinguished Name或Base DN), 该参数帮助GSQL在LDAP上检索用户.

security.ldap.search_filter

security.ldap.username_attribute

本参数定义了在LDAP上检索用户名时需要查找的属性名。例如,在上面的配置示例中,登录时附加了“-u john”参数,这意味着GSQL服务器会去LDAP服务器上寻找uid为john的用户,并在找到后验证身份。

security.ldap.admin_password & security.ldap.admin_dn

若LDAP服务器为非公共开放服务时,GSQL想要登录LDAP需要用到管理员DN以及对应的密码。

security.ldap.secure.protocol

本参数若设为none,则表示TigerGraph将使用非安全LDAP连接;而若要使用安全连接,则可以将其改成starttls或ssl。

security.ldap.secure.truststore_path & security.ldap.secure.truststore_password

当使用starttls或ssl时,需要配置对应的受信存储路径(truststore path)和对应密码。

security.ldap.secure.truststore_format

当前版本下,TigerGraph支持两种形式的受信存储格式:pkcs12和jks

security.ldap.secure.trust_all

若配置了该参数,则GSQL会信任所有LDAP服务器。

步骤 2 - 配置GSQL代理用户组和用户

本章节将介绍如何配置一个GSQL代理用户组,从而允许LDAP用户前来验证。

配置代理用户组

可以使用CREATE GROUP命令基于某条代理规则建立GSQL代理用户组。举个例子,假设LDAP目录中有一个属性叫做“role”,而“engineering”是“role”属性的一个值。则我们可以根据代理规则"role=engineering"创建代理用户组。一个代理用户组可以包含多条代理规则,下面便是一个实际案例。当用户登录时,GSQL服务器随即在LDAP目录中检索用户。如果该用户复合某个已有代理用户组中的某条代理规则,则系统便会为其创建一个代理用户用于登录系统。

CREATE GROUP 命令
# create a proxy group
CREATE GROUP developers PROXY "role=engineering" // Any user in LDAP with role=engineer is proxied to the group 'developers'
​
# grant role to proxy group
GRANT ROLE querywriter ON GRAPH computerNet TO developers 

SHOW GROUP命令用于显示一个代理用户组的具体信息。DROP GROUP命令则用于删除一个组。

SHOW GROUP 和 DROP GROUP 命令
# show the current groups 
SHOW GROUP
​
# delete a proxy group
DROP GROUP developers

只有拥有管理员或超级用户权限的账户才能创建、列出或删除一个组。

代理用户

代理用户不需要配置。只要符合某条代理规则,则对应代理用户便会自动创建。代理用户和普通用户很类似。它们的唯一的区别在于,在GSQL中不能修改代理用户的密码,同时代理用户的权限来继承于所属的代理用户组。

Previous用户权限及验证Next单点登录(SSO)

Last updated 6 years ago

Was this helpful?

为了方便优化LDAP配置参数,我们建议你掌握一些有关LDAP的基础知识,请参考:

若配置了检索过滤器(可选),则GSQL只会按照预定的条件搜索符合要求的LDAP用户。过滤器格式必须严格符合LDAP规范(例如条件必须用括号括起来等等)。不同过滤器的比较请参阅:。官方发布的LDAP过滤器规范请参阅: 。

https://www.ldap.com/basic-ldap-concepts
https://www.ldap.com/ldap-filters
https://docs.ldap.com/specs/rfc4515.txt