Matomo的LDAP身份验证和同步。
允许LDAP用户登录MAtomo Analytics。亚博ap下载支持web服务器身份验证(例如Kerberos SSO)。
LoginLdap使用LDAP服务器进行身份验证,并使用LDAP信息对Matomo进行个性化。
要开始使用LoginLdap,请执行以下步骤:
输入并保存LDAP服务器的设置
注意:您可以通过在“Required User Group”中输入内容并单击出现的测试链接来测试您的服务器。如果LoginLdap无法连接到LDAP服务器,将显示一条错误消息。
现在可以使用LDAP分隔符登录。
注意:LDAP用户在首次登录之前不会与Matomo同步。这意味着在同步用户之前,您无法访问LDAP用户的令牌身份验证。如果使用默认的LoginLdap配置,则可以使用。/控制台loginldap:同步用户
命令。
要排除任何连接问题,请阅读我们的故障排除指南.
3.0.0版本是对插件的主要重写,所以如果你升级到2.2.7版本,你将不得不做一些额外的工作:
导航到> LDAP管理页面。如果配置选项看起来不正常,请确保重新加载浏览器缓存。您可以通过重新加载页面或通过浏览器的设置来实现这一点。
服务器的admin用户现在必须是一个完整的DN。2 .在“LDAP设置”界面,修改“admin”为完整DN(即cn=…,dc=…)
取消的使用LDAP进行认证
复选框
版本2.2.7及以下使用身份验证策略,其中用户密码存储在Matomo和LDAP中。为了防止当前用户的令牌认证发生变化,必须使用相同的策略。
LoginLdap支持三种不同的LDAP身份验证策略:
每种策略都有优点和缺点。你应该使用什么取决于你的需要。
这种策略比下面的策略更安全,但它需要在每次登录尝试时连接到LDAP服务器。
使用这种策略,每次用户登录时,LoginLdap都会连接到LDAP进行身份验证。在成功登录时,可以同步用户,但用户的密码永远不会存储在Matomo的DB中,而只是存储在LDAP服务器中。此外,令牌身份验证是使用密码哈希的哈希生成的,或者是随机生成的。
这意味着如果Matomo DB被泄露,您的LDAP用户的密码仍然是安全的。
注意:使用这种认证策略,非ldap用户仍然可以登录到Matomo。这些用户必须通过Matomo创建,而不是在LDAP中。
启用的步骤
注意:这是默认配置。
使用LDAP进行认证
选项并取消选中使用Web服务器认证(例如Kerberos SSO)
选择。该策略涉及使用Matomo的散列将用户密码存储在Matomo DB中。因此,它不像上面的方法那样安全。如果您的Matomo DB被泄露,您的LDAP用户的密码将面临更大的被破解的危险。
但是,这种策略提供了在身份验证期间完全不与LDAP服务器通信的可能性,这可能提供更好的用户体验。
注意:使用此认证策略,非ldap用户可以登录到Matomo。
启用的步骤
使用LDAP进行认证
选项并取消选中使用Web服务器认证(例如Kerberos SSO)
选择。如果不想在登录时连接到LDAP,请取消选中登录成功后同步用户
选择。
a.如果您取消选中此选项,请确保您的用户以其他方式同步(例如,通过使用loginldap:同步用户
命令)。Matomo仍然需要有关LDAP用户的信息,以便让他们进行身份验证。
该策略将身份验证委托给web服务器。您设置了一个系统,其中web服务器对用户进行身份验证并设置$ _SERVER (REMOTE_USER的)
服务器变量,LoginLdap将假定用户已经通过身份验证。
此策略仍将连接到LDAP服务器以同步用户信息,除非配置为不这样做。
注意:使用这种身份验证策略,任何作为REMOTE_USER出现的用户都可以登录,即使他们不在LDAP中。
启用的步骤
使用Web服务器认证(例如Kerberos SSO)
选择。如果不想在登录时连接到LDAP,请取消选中登录成功后同步用户
选择。
a.如果您取消选中此选项,请确保您的用户以其他方式同步(例如,通过使用loginldap:同步用户
命令)。Matomo仍然需要有关LDAP用户的信息,以便让他们进行身份验证。
如果要使用Kerberos,请检查使用Web服务器认证(例如Kerberos SSO)复选框。
然后,确保您的web服务器执行必要的身份验证并设置$ _SERVER (REMOTE_USER的)
当用户通过身份验证时,服务器变量。
当$ _SERVER (REMOTE_USER的)
变量设置后,LoginLdap将假定用户已经通过身份验证。当$ _SERVER (REMOTE_USER的)
变量未设置,且勾选“Always Use LDAP for Authentication”选项,则执行LDAP认证。当“Always Use LDAP for Authentication”未选中时,将进行正常的身份验证。
注意:该插件仍将与LDAP服务器通信以同步用户详细信息,因此如果LDAP设置不正确,身份验证将失败。
为了在插件中使用LDAPS,您需要使用LDAPS://yourldapshost.com指定主机名,或者在配置中使用LDAPS端口636。
_请注意:当使用包含ldap://或ldaps://的主机名时,配置中指定的端口号将被忽略。如果您需要使用非标准端口,那么您需要指定LDAP服务器主机名,而不需要LDAP://或ldaps:// _
当使用LDAPS时——托管Matomo的服务器需要信任为LDAPS服务器颁发证书的CA(这些证书通常存储在/etc/openldap/certs中)
或者,您可以在ldap.conf文件中指定TSL证书的位置,该文件通常存储在/etc/openldap/ldap.confTLS_REQCERT never TLS_CACERT /usr/local/ssl/certs/myldap。TLS_CACERTDIR /usr/local/ssl/certs . pem
为了在插件中使用LDAP + TLS,您需要勾选“启用TLS”复选框。
请注意:这将在调用ldap_bind()之前调用ldap_start_tls() PHP函数来启动TLS
当使用LDAP + TLS时,托管Matomo的服务器需要信任为LDAP服务器颁发证书的CA(这些证书通常存储在/etc/openldap/certs中)。
或者,您可以在ldap.conf文件中指定TSL证书的位置,该文件通常存储在/etc/openldap/ldap.confTLS_REQCERT never TLS_CACERT /usr/local/ssl/certs/myldap。TLS_CACERTDIR /usr/local/ssl/certs . pem
LoginLdap v3.0.0及更高版本支持指定使用多个LDAP服务器。如果连接到一台服务器失败,则使用其他服务器作为备用服务器。
的底部添加新服务器,可以输入备用服务器> LDAP页面。
您可以使用所属用户组而且LDAP搜索过滤器设置来过滤LDAP表项。条目不匹配这些筛选器的用户将不允许进行身份验证。
集所属用户组到用户应属于的组的完整DN。注意:在内部,LoginLdap将使用(memberof = ?)
查找某个组的用户。您的服务器可能需要额外的配置来支持memberof
.
集LDAP搜索过滤器到LDAP筛选器字符串中使用,例如:(objectClass =人)
或组(& (resMemberOf = cn = mygroup, ou = commonOU, dc = www, dc =示例中,dc = org)人(objectclass =))
.
您可以在LDAP设置页面中测试这两个设置。
LoginLdap将使用LDAP中的信息来确定用户的别名和电子邮件地址。在> LDAP页中,您可以指定应该使用哪些LDAP属性来确定这些字段。
注意:如果没有找到用户别名的LDAP属性,则用户的别名默认为用户的姓和名。在设置页面上,您可以指定使用哪些LDAP属性来确定用户的姓和名。
电子邮件地址
Matomo用户需要电子邮件地址。如果LDAP中的用户没有电子邮件地址,可以设置电子邮件地址后缀设置为电子邮件地址后缀,例如:
@myorganization.com
后缀将被添加到用户名中,为用户生成电子邮件地址。
用户每次登录时都会同步。您可以使用loginldap:同步用户
命令,手动同步用户。
LoginLdap还支持使用LDAP中的属性同步访问级别。要使用此特性,首先,您需要修改LDAP服务器的模式,并向用户条目添加三个特殊属性:
注意:您可以为这些属性选择任何名称。您将能够在LDAP设置页面中将这些名称告诉LoginLdap。
然后,您必须在LDAP中正确设置这些属性,例如:
观点:所有
管理:1、2、3
超级用户:1
最后,在LDAP设置页面中,检查启用LDAP用户访问同步复选框并填写其下方显示的设置。
用户接入同步与用户正常同步同步。因此,loginldap:同步用户
命令也将同步访问级别。
LoginLdap支持使用单个LDAP服务器来管理对多个Matomo实例的访问。如果希望使用此特性,必须为LDAP访问属性指定特殊值。例如:
观点:mymatomoserver.whatever.com: 1、2、3;myotherserver.com
管理:mymatomoserver.whatever.com, mythirdserver.com: 3、4
超级用户:myotherserver.com; myotherserver.com/othermatomo
如果不想在访问属性中使用url,可以使用此Matomo实例的特殊名称设置为每个Matomos指定一个特殊的名称。例如,如果你在一个Matomo中将其设置为'matomoServerA',在另一个Matomo中将其设置为'matomoServerB',你的LDAP属性可能看起来像这样:
观点:matomoServerA: 1、2、3,matomoServerB:所有
管理:matomoServerA: 4、5、6所示
超级用户:matomoServerC
使用自定义访问属性格式
属性可以自定义访问属性中使用的分隔符用户访问属性服务器规范分隔符而且用户访问属性服务器和站点列表分隔符设置。
如果你设置用户访问属性服务器规范分隔符选项“#”
,访问属性可指定为:
观点:matomoServerA: 1、2、3 # matomoServerB:
如果你设置用户访问属性服务器和站点列表分隔符选项“#”
,访问属性可指定为:
观点:matomoServerA # 1、2、3,matomoServerB #
用户密码
为了增加安全性,LoginLdap的默认配置不会在Matomo的DB中存储用户密码或用户密码的散列。因此,如果Matomo DB因任何原因被泄露,用户密码将不会被泄露。
令牌认证
LDAP没有身份验证令牌的概念,因此用户token_auth被专门存储在Matomo的MySQL DB中。如果令牌身份验证受到损害,您可以让Matomo生成一个新的。
日志记录
LoginLdap广泛使用调试日志记录,因此可以快速诊断问题。日志不应该包含敏感信息,但是您仍然应该在生产环境中禁用DEBUG日志记录.
如果需要调试问题,请通过更改【日志】log_level
而且【日志】log_writers
核心INI配置选项。如果使用文件日志,请确保在调试完成后删除日志。
LoginLdap提供了以下控制台命令:
loginldap:同步用户
:可以同时同步LDAP中的一个、多个或所有用户。如果您希望在用户登录之前在Matomo中设置用户访问,则应该使用此命令。看到https://github.com/matomo-org/plugin-LoginLdap/blob/4.x-dev/CHANGELOG.md.
请直接向https://github.com/matomo-org/plugin-LoginLdap.
查看并下载特定Matomo版本的插件:
查看并下载特定Matomo版本的插件: