菜单

配置LDAP身份验证

LDAP集成在Grafana允许你Grafana与LDAP用户的登录凭据。您还可以指定LDAP组成员和Grafana组织用户角色之间的映射。

增强LDAP身份验证可在Grafana云先进而在Grafana企业

基于角色的访问控制了解如何控制与基于角色的访问权限。

支持LDAP服务器

Grafana使用第三方LDAP库在幕后支持基本的LDAP v3功能。这意味着您应该能够使用任何兼容LDAPv3服务器配置LDAP集成,例如OpenLDAP活动目录其他人

启用LDAP

为了使用LDAP集成您首先需要启用LDAP主要配置文件以及指定特定于LDAP配置文件的路径(默认值:/etc/grafana/ldap.toml)。

(身份验证。ldap) #设置为“真正的”启用ldap集成(默认值:'假')= true启用ldap #路径特定配置文件(默认值:/ etc / grafana / ldap.toml) config_file = /etc/grafana/ldap.toml #允许注册应该是“真正的”(默认)允许Grafana创建用户成功的LDAP身份验证。#如果设置为“false”只现有Grafana用户可以登录。allow_sign_up = true

禁用同步组织作用

如果你使用LDAP验证用户身份,但不使用角色映射,并喜欢手动分配组织和角色,您可以使用skip_org_role_sync配置选项。

(身份验证。ldap) #设置为“真正的”启用ldap集成(默认值:'假')= true启用ldap #路径特定配置文件(默认值:/ etc / grafana / ldap.toml) config_file = /etc/grafana/ldap.toml #允许注册应该是“真正的”(默认)允许Grafana创建用户成功的LDAP身份验证。#如果设置为“false”只现有Grafana用户可以登录。allow_sign_up = true #防止同步ldap用户组织角色skip_org_role_sync = true

Grafana LDAP配置

这取决于你使用LDAP服务器以及如何配置你Grafana LDAP配置可能会有所不同。看到配置示例为更多的信息。

LDAP特定的配置文件(ldap.toml)例如:

[[服务]]# Ldap服务器主机(指定多个主机空间分离)主机= " ldap.my_secure_remote_server.org " #默认端口是389或636如果use_ssl = true端口= 636 #设置为true Ldap服务器是否应该使用一个加密的TLS连接(与STARTTLS或Ldap) use_ssl = true #如果设置为true,使用Ldap STARTTLS代替LDAPS start_tls = false #设置为真,如果你想跳过SSL证书验证ssl_skip_verify = false #设置为根CA证书的路径或离开设置使用系统默认值# root_ca_cert = " /道路/ /证书。crt“#身份验证对LDAP服务器要求客户端证书# client_cert = " /道路/ /客户。crt“# client_key = " /道路/ /客户。关键“#搜索用户绑定dn bind_dn = " cn = admin, dc = grafana, dc = org " #搜索用户绑定密码#如果密码包含#或;你必须把它与三重引号。“交货”“#密码;””“bind_password = " grafana " #我们建议使用bind_password变量扩展,更多信息//www.tubolov.com/docs/grafana/latest/setup-grafana/configure-grafana/变量扩展# bind_password =“美元__env {LDAP_BIND_PASSWORD}’#超时秒。适用于主机的条目中指定的每个主机(空格分隔)。超时= 10 #用户搜索过滤器,例如“(cn = % s)”或“(sAMAccountName = % s)”或“(uid = % s)”# Allow login from email or username, example "(|(sAMAccountName=%s)(userPrincipalName=%s))" search_filter = "(cn=%s)" # An array of base dns to search through search_base_dns = ["dc=grafana,dc=org"] # group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))" # group_search_filter_user_attribute = "distinguishedName" # group_search_base_dns = ["ou=groups,dc=grafana,dc=org"] # Specify names of the LDAP attributes your LDAP uses [servers.attributes] member_of = "memberOf" email = "email"

使用环境变量

你可以插入变量在TOML配置环境变量。例如,你可以具体化bind_password这种方式:

bind_password = " $ {LDAP_ADMIN_PASSWORD}”

LDAP Debug视图

仅可在Grafana v6.4 +

Grafana LDAP内置debug视图,允许您测试您的LDAP配置直接在Grafana。在写作的时候,只有Grafana管理员可以使用LDAP debug视图。

在这个视图中,您将能够看到哪些LDAP服务器是目前可获得的当前配置和测试。

使用debug视图:

  1. 输入用户的用户名存在于任何LDAP服务器(s)
  2. 然后,按“运行”
  3. 如果LDAP的用户发现在任何情况下,映射信息显示

Grafana企业用户提供增强的LDAP集成还可以看到启用同步状态在debug视图。这需要ldap.status:阅读许可。

绑定

绑定和绑定密码

默认配置希望你指定一个bind DN和绑定密码。这应该是一个只读用户可以执行LDAP搜索。当用户DN找到第二个执行绑定与用户提供的用户名和密码(在正常Grafana登录表单)。

bind_dn = " cn = admin, dc = grafana, dc = org " bind_password =“grafana”

单一的绑定示例

如果你能提供一个绑定表达式相匹配的所有可能的用户,你可以跳过第二直接对用户DN绑定和绑定。这允许您在配置文件中指定一个bind_password。

bind_dn =“cn = % s, o =用户,dc = grafana, dc = org "

在这种情况下,你跳过提供bind_password而不是提供一个bind_dn值与% s在某处。这将是取代Grafana上的用户名进入登录页面。搜索过滤器和搜索基地设置仍需要执行LDAP搜索来检索其他LDAP信息(如LDAP组和电子邮件)。

POSIX模式

如果您的LDAP服务器不支持memberOf属性添加这些选项:

# #集团搜索过滤器,来检索用户是一个成员的团体(仅设置如果memberOf属性不可用)group_search_filter =”(& (objectClass = posixGroup) (memberUid = % s))”## An array of the base DNs to search through for groups. Typically uses ou=groups group_search_base_dns = ["ou=groups,dc=grafana,dc=org"] ## the %s in the search filter will be replaced with the attribute defined below group_search_filter_user_attribute = "uid"

组的映射

[[servers.group_mappings]]您可以将LDAP组映射到一个Grafana组织和角色。这将是每次用户登录时,同步与LDAP权威来源。所以,如果你在Grafana Org更改用户的角色。用户页面,这一改变将会重置用户下次登录。如果你改变用户的LDAP组,改变用户下次登录时生效。

第一组映射,LDAP用户匹配将用于同步。如果你有适合多个LDAP用户映射,最上面的映射将使用在TOML配置。

LDAP特定的配置文件(ldap.toml)例如:

[[服务]]#其他设置忽略了[[服务器。group_mappings]] group_dn = " cn = superadmins, dc = grafana, dc = org " org_role =“Admin”grafana_admin = true #在grafana v5.3和[[服务器之上。group_mappings]] group_dn = " cn =管理员,dc = grafana, dc = org " org_role =“Admin”[[服务器。group_mappings]] group_dn =“cn =用户,dc = grafana, dc = org " org_role =“编辑器”[[服务器。group_mappings]] group_dn = " * " org_role =“查看器”
设置 要求 描述 默认的
group_dn 是的 LDAP LDAP组的专有名称(DN)。如果你想匹配所有(或没有LDAP组),那么您可以使用通配符(“*”)
org_role 是的 指定的用户group_dn组织的作用管理,编辑器,或查看器。组织角色名是区分大小写的。
org_id 没有 Grafana组织数据库id。设置允许多个group_dn的被分配到相同的org_role提供了org_id不同 1(默认org id)
grafana_admin 没有 真正的让用户的group_dnGrafana服务器管理。Grafana服务器管理员对所有组织和用户管理访问。在Grafana v5.3和以上

注意:评论了一组映射也需要评论的标题说组或它将失败验证一个空的映射。例子:

[[服务]]#其他设置忽略了[[服务器。group_mappings]] group_dn = " cn = superadmins, dc = grafana, dc = org " org_role =“Admin”grafana_admin = true # grafana v5.3中可用以上#[[服务器。group_mappings]] # group_dn =“cn =管理员,dc = grafana, dc = org " # org_role =“Admin”[[服务器。group_mappings]] group_dn =“cn =用户,dc = grafana, dc = org " org_role =“编辑器”

嵌套/递归组成员

用户/递归嵌套组成员必须有一个LDAP服务器支持LDAP_MATCHING_RULE_IN_CHAIN和配置group_search_filter在某种程度上,它返回组提交的用户名的一员。

配置group_search_filter:

  • 你可以设置group_search_base_dns定义来指定匹配组的位置。
  • 如果你不使用group_search_base_dns,然后前面定义的search_base_dns使用。

活动目录的例子:

活动目录组存储专有名称(DNs)的成员,所以你的过滤器将需要知道用户的DN仅基于提交的用户名。可以搜索多个DN模板过滤器结合LDAP或算子。两个例子:

group_search_filter = "(成员:1.2.840.113556.1.4.1941:= % s)“group_search_base_dns = [" DC = mycorp, DC = mytld "] group_search_filter_user_attribute =“dn”
group_search_filter = "(成员:1.2.840.113556.1.4.1941:= CN = % s,[用户容器/ OU])”group_search_filter =”(|(成员:1.2.840.113556.1.4.1941:= CN = % s,[用户容器/ OU])(成员:1.2.840.113556.1.4.1941:= CN = % s,(另一个用户容器/ OU)))“group_search_filter_user_attribute =“CN”

看到有关广告的更多信息搜索微软的搜索筛选器语法文档。

故障诊断,通过改变member_of(servers.attributes)“dn”时它会显示更准确的组成员关系启用调试

配置示例

OpenLDAP

OpenLDAP是一个开源的目录服务。

LDAP特定配置文件(ldap.toml):

主机服务器[[]]= " 127.0.0.1 "端口= 389 use_ssl = false start_tls = false ssl_skip_verify = false bind_dn =“cn = admin, dc = grafana, dc = org " bind_password =“grafana”search_filter =”(cn = % s)“search_base_dns = [" dc = grafana, dc = org "][服务器。属性]member_of = " memberOf "邮件= "电子邮件" #[[服务器。group_mappings]]省略清晰

多个LDAP服务器

Grafana支持接收来自多个LDAP服务器的信息。

LDAP特定配置文件(ldap.toml):

#——第一个LDAP服务器——[[服务]]主机=“10.0.0.1”表示端口= 389 use_ssl = false start_tls = false ssl_skip_verify = false bind_dn =“cn = admin, dc = grafana, dc = org " bind_password =“grafana”search_filter =”(cn = % s)“search_base_dns = [“ou =用户,dc = grafana, dc = org "][服务器。属性]member_of = " memberOf "邮件=“电子邮件”[[服务器。group_mappings]] group_dn = " cn =管理员,ou =组,dc = grafana, dc = org " org_role =“Admin”grafana_admin = true #——第二个LDAP服务器——[[服务]]主机=“10.0.0.2”端口= 389 use_ssl = false start_tls = false ssl_skip_verify = false bind_dn =“cn = Admin, dc = grafana, dc = org " bind_password =“grafana”search_filter =”(cn = % s)“search_base_dns = [“ou =用户,dc = grafana, dc = org "][服务器。属性]member_of = " memberOf "邮件=“电子邮件”[[服务器。group_mappings]] group_dn =“cn =编辑,ou =组,dc = grafana, dc = org " org_role =“编辑器”[[服务器。group_mappings]] group_dn = " * " org_role =“查看器”

活动目录

活动目录目录服务是常用的在Windows环境中。

假设以下Active Directory服务器设置:

  • IP地址:10.0.0.1
  • 域:集团
  • DNS名称:corp.local

LDAP特定配置文件(ldap.toml):

主机服务器[[]]= " 10.0.0.1”表示端口= 3269 use_ssl = true start_tls = false ssl_skip_verify = true bind_dn =“集团\ \ % s”search_filter =”(sAMAccountName = % s)“search_base_dns =[当地“dc =集团,dc = "][服务器。属性]member_of = " memberOf "邮件= "邮件" #[[服务器。group_mappings]]省略清晰

港口的要求

在上面例子中启用了SSL和一个加密端口配置。如果你的活动目录不支持SSL请改变enable_ssl = false端口= 389。请检查您的活动目录配置和文档找到正确的设置。有关Active Directory和港口需求的更多信息链接

故障排除

解决和得到更多的日志信息中启用LDAP调试日志记录主要配置文件

(日志)过滤器= ldap:调试