所有 LDAP 用户的 Icinga2 权限
Icinga2 permissions for all LDAP users
我有一个 Icinga2 运行 Active Directory 作为身份验证后端和 Icinga Web 2 作为前端。
可以使用 Icingaweb2 的配置文件夹中的 roles.ini
配置前端权限。这就是我的内容:
# roles.ini
[Users]
users = "*"
permissions = "module/monitoring"
如您所见,我想授予 所有 已验证用户访问 monitoring 模块的权限。我没有包含所有用户的组,所以我不能为此使用组。
这不起作用。向所有用户授予权限的正确语法是什么?
(当然,使用现有的用户名或组名确实有效,因此后端配置是正确的。)在此先感谢您!
此功能已在 IcingaWeb2 2.5 版中实现,请参阅 https://github.com/Icinga/icingaweb2/pull/3096。这是针对AdmissionLoader.php
的一个非常简单的补丁,您也可以单独手动应用:
commit f495b390da6eb257ca101889deb70ccc22bb99c7
Author: Eric Lippmann <eric.lippmann@icinga.com>
Date: Thu Nov 16 12:01:06 2017 +0100
Apply role to all users if the role is defined with users=*
If the users directive contains at least one single asterisk, the role is applied to all users.
So, this supports roles which define users=username, ..., * and users=*
refs #3095
diff --git a/library/Icinga/Authentication/AdmissionLoader.php b/library/Icinga/Authentication/AdmissionLoader.php
index 0a80be127..8ee43dbfb 100644
--- a/library/Icinga/Authentication/AdmissionLoader.php
+++ b/library/Icinga/Authentication/AdmissionLoader.php
@@ -28,6 +28,9 @@ class AdmissionLoader
$username = strtolower($username);
if (! empty($section->users)) {
$users = array_map('strtolower', StringHelper::trimSplit($section->users));
+ if (in_array('*', $users)) {
+ return true;
+ }
if (in_array($username, $users)) {
return true;
}
我有一个 Icinga2 运行 Active Directory 作为身份验证后端和 Icinga Web 2 作为前端。
可以使用 Icingaweb2 的配置文件夹中的 roles.ini
配置前端权限。这就是我的内容:
# roles.ini
[Users]
users = "*"
permissions = "module/monitoring"
如您所见,我想授予 所有 已验证用户访问 monitoring 模块的权限。我没有包含所有用户的组,所以我不能为此使用组。
这不起作用。向所有用户授予权限的正确语法是什么?
(当然,使用现有的用户名或组名确实有效,因此后端配置是正确的。)在此先感谢您!
此功能已在 IcingaWeb2 2.5 版中实现,请参阅 https://github.com/Icinga/icingaweb2/pull/3096。这是针对AdmissionLoader.php
的一个非常简单的补丁,您也可以单独手动应用:
commit f495b390da6eb257ca101889deb70ccc22bb99c7
Author: Eric Lippmann <eric.lippmann@icinga.com>
Date: Thu Nov 16 12:01:06 2017 +0100
Apply role to all users if the role is defined with users=*
If the users directive contains at least one single asterisk, the role is applied to all users.
So, this supports roles which define users=username, ..., * and users=*
refs #3095
diff --git a/library/Icinga/Authentication/AdmissionLoader.php b/library/Icinga/Authentication/AdmissionLoader.php
index 0a80be127..8ee43dbfb 100644
--- a/library/Icinga/Authentication/AdmissionLoader.php
+++ b/library/Icinga/Authentication/AdmissionLoader.php
@@ -28,6 +28,9 @@ class AdmissionLoader
$username = strtolower($username);
if (! empty($section->users)) {
$users = array_map('strtolower', StringHelper::trimSplit($section->users));
+ if (in_array('*', $users)) {
+ return true;
+ }
if (in_array($username, $users)) {
return true;
}