使用SAML身份验证设置登录
Matomo SAML身份验证模块允许用户使用SAML身份提供者(IdP)登录Matomo。
如果你有一个SAML身份提供者的联邦环境(OneLogin, Okta, Ping Identity, ADFS,谷歌,Salesforce, SharePoint…),你可以使用这个插件与它进行互操作,从而为你的Matomo Analytics用户启用单点登录。亚博ap下载
SAML是一个高级功能,包括在我们的云托管企业计划或者你可以可以在Matomo市场购买如果你2020年亚博收网行动 .了解Login SAML的所有优点和特性的更多信息.
安装
需求
- PHP >= 5.5.9
- Matomo >= 3.x
- 从市场SAML插件页面
安装
安装插件根据我们的插件安装指南
配置
要配置SAML身份验证,请执行以下步骤:
以超级用户身份登录
在管理>插件页面,激活LoginSaml插件。
导航到> SAML设置页面
输入并保存SAML的设置:添加身份提供程序信息,设置属性映射并配置其他选项。
与IdP管理员共享服务提供者元数据
启用SAML身份验证
您现在可以打开一个新的浏览器会话,并尝试使用SAML标识提供程序登录。
SAML配置支持
正确配置SAML身份验证可能很困难,因此我们提供我们的服务来帮助您使Matomo Analytics成功地使用SAML,并享受SSO的巨大好处。亚博ap下载了解更多信息,请与我们联系SAML支持页面.
SAML插件设置
现在您已经了解了主要的配置步骤,让我们提供关于SAML配置的详细信息。
状态设置
一旦激活SAML插件,就可以访问它的设置面板。
在状态设置你看到的部分启用SAML身份验证是禁用的。禁用时,所有SAML操作都将禁用,如果用户试图执行这些操作,她将收到一个错误,通知SAML功能已禁用。
只有在正确配置了其余SAML设置后,才可以启用它。
在SAML中,有两种不同类型的实体:
1.身份提供者IdP(用户身份验证的第三方实体),以及
2.服务提供者SP(保护应用程序的服务,在本例中是Matomo)。
在IdP和SP之间定义了信任圈,允许所有IdP用户在一定条件下访问SP。该信任圈基于XML(称为元数据)的交换,该元数据描述了实体ID、实体端点和公共证书(允许验证已签名/加密的SAML消息)。
身份提供程序设置
在身份提供程序设置部分,您可以注册标识提供程序元数据。
您可以直接填写表格:
或点击从IdP元数据导入值链接:
这个链接将重定向到一个表单,其中提供了两个不同的方法来让你导入身份提供程序元数据:
- 按元数据URL
- 通过字符串XML
如果导入的元数据包含多个标识提供程序实体描述,则可以使用IdP实体ID识别想要的实体:
选项设置
在选项设置节中,您可以定义Matomo SAML集成将如何工作。
在某些场景中,启用及时供应当您希望根据SAMLResponse上的标识提供程序提供的数据自动创建用户帐户时。
如果禁用即时配置或未提供所需的用户数据,则在SSO过程中将发生错误,因为我们将无法初始化任何Matomo帐户。
如果启用了即时配置,默认情况下,任何新用户(使用即时配置创建的)都不能访问Matomo。您可以设置默认值
视图
许可(Matomo中的“视图”许可是什么?)下载至Matomo网站。使用为新用户提供视图访问的初始站点设置用户默认可以查看的Matomo网站id列表(以逗号分隔的网站id列表)。当为超级用户使用即时配置时,您将需要为使用本地超级用户帐户(或已经设置了本地Matomo密码的超级用户)创建的用户设置密码,以便使用超级用户帐户的所有功能,如安装/激活插件和用户管理。
这可以通过去设置
>用户
>单击编辑
按钮>输入新密码密码
输入>,然后单击保存基本信息
为了识别您的Matomo用户帐户,您需要在字段,用于标识用户,默认为电子邮件字段,但您可以进行选择用户名和Matomo用户名字段将被使用。
您还可以启用或禁用单个注销功能。请注意,如果禁用它,则单个注销服务数据将不会发布到服务提供者元数据上。
您还可以通过启用“强制SAML登录”设置来强制用户使用SAML身份验证。这样做会将所有用户直接重定向到Identity Provider,因此永远不会显示Matomo登录屏幕。超级用户仍然需要正常登录,例如,配置SAML插件。超级用户可以通过添加Matomo登录屏幕登录正常吗?
访问Matomo时的URL。(注:其他用户无法通过此方式登录)
属性映射设置
的值字段,用于标识用户而且及时供应,田野的属性映射设置部分将是必需的或可选的。
- 如果启用just-in-time,则需要所有映射字段。
- 如果禁用了即时配置,则只有与值相关的字段字段,用于标识用户将被要求。
身份提供者将带有自定义属性名的用户数据发送给服务提供者,因此您可以使用前面的表单在IdP和Matomo之间映射名称。
同步设置
在同步设置部分,您可以从SAML属性启用用户访问同步。
LoginSAML支持使用在标识提供程序提供的SAMLResponse中找到的属性来同步访问级别。要使用此特性,请确保IdP以3种不同的SAML属性提供访问数据:
- 用于指定用户拥有的站点的属性
视图
使用(视图权限是什么?) - 用于指定用户拥有的站点的属性
管理
使用(什么是管理权限?) - 和用于指定用户是否为的属性
超级用户
或否(《Matomo》中的超级用户是什么?)
注意:您可以为这些属性选择任何名称。然后,您将在SAML设置页面中将这些名称告诉LoginSaml。
身份提供程序访问数据示例:
< saml:属性名称= "视图" NameFormat = " urn: oasis: names: tc: saml: 2.0: attrname-format:基本的“> < saml: AttributeValue xsi: type = " xs: string " >所有< / saml: AttributeValue > < / saml:属性> < saml:属性名称=“admin”NameFormat = " urn: oasis: names: tc: saml: 2.0: attrname-format:基本的“> < saml: AttributeValue xsi: type = " xs: string " > 1、2、3 < / saml: AttributeValue > < / saml:属性> < saml:属性名称=“超级用户”NameFormat = " urn: oasis: names: tc: saml: 2.0: attrname-format:基本的“> < saml: AttributeValuexsi: type = " xs: string " > 1 < / saml: AttributeValue > < / saml:属性>
然后在SAML设置页面中,检查从SAML启用用户访问同步复选框并填写其下方显示的设置。
用户登录前进行用户访问同步。
管理多个Matomo实例的访问
LoginSaml支持使用单个IdP SAML服务器来管理对多个Matomo实例的访问。如果希望使用此特性,必须为SAML访问属性指定特殊值。例如:
观点:myMatomoserver.whatever.com: 1、2、3;myotherserver.com
管理:myMatomoserver.whatever.com, mythirdserver.com: 3、4
超级用户:myotherserver.com; myotherserver.com/otherMatomo
如果不想在访问属性中使用url,可以使用此Matomo实例的特殊名称设置为每个Matomo实例指定一个特殊的名称。例如,如果你设置为MatomoServerA
在一个Matomo和MatomoServerB
在另一种情况下,你的SAML属性可能是这样的:
观点:MatomoServerA: 1、2、3,MatomoServerB:所有
管理:MatomoServerA: 4、5、6所示
超级用户:MatomoServerC
使用自定义访问属性格式
属性可以自定义访问属性中使用的分隔符用户访问属性服务器规范分隔符而且用户访问属性服务器和站点列表分隔符设置。
如果你设置用户访问属性服务器规范分隔符选项#
,访问属性可指定为:
观点:MatomoServerA: 1、2、3 # MatomoServerB:
如果你设置用户访问属性服务器和站点列表分隔符选项#
,访问属性可指定为:
观点:MatomoServerA # 1、2、3,MatomoServerB #
高级设置
在高级设置部分,您可以启用/禁用调试模式,也可以配置高级SAML和安全参数。
这些设置是匹配的php-saml设置(SAML插件中使用的底层PHP库,由OneLogin inc.提供),因此您可以查看它文档获取更多信息。
SAML插件如何为Matomo工作?
这个插件增加了在服务提供者端执行SAML单点登录(SSO)和单点注销(SLO)的能力,同时也可以在身份提供者端执行。介绍SAML认证流程。
sp发起的SSO鉴权过程
- 重定向到身份提供程序(当点击登录屏幕上的“SAML登录”按钮时):
- 日志消息:启动单点登录,重定向到IdP (日志级别:信息)
- 当来自身份提供者的响应到达断言使用者服务端点时:
- 日志消息:启动断言使用者服务(日志级别:信息)
- SAML验证成功:
- 日志消息: SAMLResponse已验证(日志级别:信息)
- 日志消息属性+ NameId + NameIDFormat + SessionIndex (日志级别:调试)
- 或者SAML验证在身份提供者的响应中返回一些错误:
- 日志消息: SAMLResponse被拒绝。+原因(日志级别:错误)
- 日志消息: SAML响应XML (日志级别:调试)
- 创建用户(可选步骤,如果没有找到帐户):
- 如果用户不存在,但启用了即时供应,并提供了必需的属性:日志消息:已添加用户(日志级别:信息)
- 如果用户没有默认站点访问:日志消息: SAML设置没有在“选项”部分定义为新用户提供访问的默认站点(日志级别:警告)
- 如果用户有默认站点访问:日志消息:添加到用户用户访问站点的权限:日志级别:信息)
- 如果用户不存在且启用了即时供应,但进程失败:日志消息: Just-in-time provisioning error //需要X映射// X未提供(日志级别:错误)
- 如果用户不存在并且禁用了即时配置:日志消息:用户
不存在且禁用即时供应(日志级别:错误)
- 同步访问(可选步骤,如果开启同步访问):
- 如果用户没有数据访问权限:日志消息:用户
在SAML中没有访问权,但是启用了访问同步。(日志级别:警告) - 如果访问数据定义了该用户应该被分配为超级用户:日志消息: MatomoAccess synchronized。用户
现在是超级用户(日志级别:信息) - 如果access data定义了用户对站点的访问:*日志信息**:MatomoAccess synchronized。用户访问权限
更新(日志级别:信息)
- 如果用户没有数据访问权限:日志消息:用户
- 成功登录:
- 日志消息:登录用户
在马托莫认证(日志级别:信息)
- 日志消息:登录用户
idp发起的SSO认证过程
类似于sp发起的SSO,但没有步骤1。
sp发起的单注销身份验证过程(启用SLO)
- 重定向到标识提供程序。(注销请求已发送)。当点击“注销”链接,用户会话启动与SAML流程:
- 日志消息:为登录用户(日志级别:信息)
- 当来自身份提供程序的注销响应到达单个注销服务端点时:
- 日志消息:为已登入用户(日志级别: info)
- SAML验证:
- 如果SAML注销响应有效:日志消息:执行单注销服务。已登录的用户已退出(日志级别: info)
- 如果在从身份提供程序注销响应中出现一些错误:日志消息:单个注销服务端点出现错误。用户与登录User。+错误原因(日志级别:错误)
idp发起的单次注销身份验证过程(启用SLO)
- 当来自身份提供者的注销请求到达单个注销服务端点时:
- 日志消息:为已登入用户(日志级别:信息)
- SAML验证:
- 如果在从身份提供者注销请求中有一些错误:日志消息:单个注销服务端点出现错误。用户与登录User。+错误原因(日志级别:错误)
- 重定向到标识提供程序(已发送注销响应)
- 当来自身份提供程序的注销响应到达单个注销服务端点时:
- 日志消息:为已登入用户(日志级别: info)
- SAML验证成功:
- 日志消息:执行单注销服务。已登录的用户已退出(日志级别: info)
- 或SAML验证失败:从身份提供者注销响应中返回错误:
- 日志消息:单个注销服务端点出现错误。用户与登录User。+错误原因(日志级别:错误)
要了解SAML流程如何工作的更多信息,请访问:
安全注意事项
用户密码
在使用即时配置时,LoginSAML为用户生成随机散列密码。如果这些用户想要使用正常的登录过程,超级用户应该为他们分配一个有效的密码,一旦通过SAML认证,这个密码只有在超级用户设置后才能被用户更改。
为了使用某些功能,如生成令牌认证或更改提示密码验证的设置,需要设置Matomo密码。
密码确认
当更改插件设置或激活/停用插件时,Matomo要求您输入密码才能进行更改。
如果您使用SAML登录,这可能会导致问题,因为Matomo在使用即时配置时将为用户生成随机散列密码。为了确保这些用户能够更改设置或执行任何需要密码确认的操作,SAML插件4.3.0版本提供了一种禁用密码确认的方法。
要禁用密码确认,您可以在SAML UI选项设置下更新设置。
注意:自插件4.3.0版本发布以来,默认禁用密码确认功能。
令牌认证
SAML没有身份验证令牌的概念,所以用户的token_auth
仅存储在Matomo数据库中。如果一个token_auth
您可以在Matomo >管理>个人设置中重新生成令牌。
日志记录
LoginSAML广泛使用调试日志记录,因此可以快速诊断问题。部分日志包含敏感信息,所以一定要在生产环境中禁用DEBUG日志同时在SAML设置面板的高级设置部分关闭“调试”模式。
了解更多有关LoginSaml for 亚博ap下载Matomo Analytics - SAML认证插件页面。
故障排除
调试
LoginSAML广泛使用调试日志记录,因此可以快速诊断问题。某些日志条目包含敏感信息,因此请确保在生产环境中禁用DEBUG日志记录,并关闭调试模式
在SAML设置面板的高级设置部分。
默认情况下,与SAML相关的日志将在Matomo文件夹中找到tmp /日志/ saml.log
属性的新值可以更改logger_file_path
在(LoginSaml)
的部分配置/ config.ini.php
日志级别可以通过' log_level '参数配置,可能的值有:
错误
警告
信息
调试
级别越高,日志条目数越少。最高级别是错误
水平(最低为调试
).
如果没有log_level
中定义的参数(LoginSaml)
节,然后默认Matomolog_level
值将被使用(警告
).
使用即时供应并获得消息“IdP没有提供用户名,并且需要用户名才能执行SAML即时供应”
问题是服务提供者(Matomo)不能从IdP发送的SAMLResponse中提取用户名值。有两个可能的原因:
- Matomo的SAML设置中的属性映射部分是错误的。在这里,您可能需要将username字段设置为SAMLResponse附带的属性的确切名称。
- IdP根本不发送用户名,因此您可能需要联系身份提供程序管理员,并要求他配置IdP以提供用户信息。
注意,即使您通过电子邮件地址识别用户,当您使用即时配置时,用户名也是必需的字段:因此必须同时提供电子邮件和用户名。您可以使用SAML Tracer工具(见下文)了解更多关于SAML响应的信息。
如何查看在单点登录和单次注销期间通过浏览器发送的SAML和WS-Federation消息
有一个Firefox扩展名SAMLTracer你可以用来记录和检查IdP发送的SAMLResponse,看看如何在这个视频https://www.youtube.com/watch?v=DLEif7nuNxg中使用它。