本节提供从 Microsoft Entra ID(以前称为 Microsoft Azure Active Directory)使用 SAML 2.0 身份验证配置单点登录和用户调配到 Zabbix 的指南。
1.登录到 Microsoft Entra 管理中心,网址为 Microsoft Entra ID。出于测试目的,您可以在 Microsoft Entra ID 中 create 一个免费试用账户。
2.在 Microsoft Entra 管理中心中选择 Applications(应用程序)-> Enterprise applications(企业应用程序)-> New application(新建应用程序)-> Create your own application(创建自己的应用程序)。
3.添加您的应用程序名称,并选择 Integrate any other application...(集成其他应用程序...)选项。然后,点击 Create(创建)。
在您的应用程序页面中,转到 设置单一登录,点击 开始使用,然后选择 SAML。
编辑 基本 SAML 配置:
zabbix
;https://<path-to-zabbix-ui>/index_sso.php?acs
:请注意,必须使用 "https"。要使 Zabbix 支持该设置,需要在 conf/zabbix.conf.php
中添加以下行:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
属性名称是任意的。可以使用不同的属性名称,但必须与 Zabbix SAML 设置中对应的字段值匹配。
在此声明中,重要的是所选 源属性 将组名(而非组 ID)传递给 Zabbix。否则,即时用户配置将无法正常工作。
conf/certs
中。运行以下命令设置权限为 644:
确保 conf/zabbix.conf.php
包含以下行:
$SSO['IDP_CERT'] = 'conf/certs/entra.cer';
Zabbix 字段 | Entra ID 中的配置字段 | 示例值 |
---|---|---|
IdP entity ID | Microsoft Entra identifier | |
SSO service URL | Login URL | |
SLO service URL | Logout URL | |
SP entity ID | Identifier (Entity ID) | |
Username attribute | Custom attribute (claim) | user_email |
Group name attribute | Custom attribute (claim) | groups |
User name attribute | Custom attribute (claim) | user_name |
User last name attribute | Custom attribute (claim) | user_lastname |
此外,还需要配置用户组映射。媒体映射是可选的。
点击 更新 保存这些设置。
https://<path-to-zabbix-ui>/api_scim.php
在属性映射列表底部,启用 Show advanced options,然后点击 Edit attribute list for customappsso。
在属性列表底部,添加你自己的类型为 'string' 的属性:
保存列表。
当所有映射添加完成后,保存映射列表。
为此,请进入 Microsoft Entra admin center,然后在相应的 Users 和 Groups 页面中添加用户/组。
当用户和组在 Entra AD 中创建完成后,你可以进入应用程序的 Users and groups 菜单,并将它们添加到应用程序中。
进入应用程序的 Provisioning 菜单,点击 Start provisioning,以将用户配置到 Zabbix。
请注意,Entra ID 中的 Users PATCH 请求不支持媒体(media)的更改。
可以将 Entra ID 配置为 validate the signature 已签名的身份验证请求的证书。
要实现此功能,需要使用 create 公钥/私钥:
openssl req -x509 -newkey rsa:4096 -keyout /usr/share/zabbix/conf/certs/request-sign.key -out /usr/share/zabbix/conf/certs/request-sign.pem -sha256 -days 1825 -nodes
分配权限:
chown apache /usr/share/zabbix/conf/certs/request-sign.key
chmod 400 /usr/share/zabbix/conf/certs/request-sign.key
通过添加以下内容来更新 Zabbix 前端配置:
当用户已通过Microsoft Edge浏览器个人资料登录时,尝试通过SAMLlogin到Zabbix时可能出现认证问题。作为此类问题的迹象,用户可能能够通过Microsoft Edge隐私模式成功登录Zabbix。
为避免此类情况下的认证问题,可能需要在Zabbix前端配置file文件(zabbix.conf.php)中将requestedAuthnContext
设置为"false"。