本节提供从 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(创建)。
1。在您的应用程序页面中,转到 设置单一登录,点击 开始使用,然后选择 SAML。
2。编辑 基本 SAML 配置:
zabbix
;https://<path-to-zabbix-ui>/index_sso.php?acs
:请注意,必须使用 "https"。要使 Zabbix 支持该设置,需要在 conf/zabbix.conf.php
中添加以下行:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
3。编辑 属性和声明。您必须添加所有希望传递给 Zabbix 的属性(user_name、user_lastname、user_email、user_mobile、groups)。
属性名称是任意的。可以使用不同的属性名称,但必须与 Zabbix SAML 设置中对应的字段值匹配。
在此声明中,重要的是所选 源属性 将组名(而非组 ID)传递给 Zabbix。否则,即时用户配置将无法正常工作。
4。在 SAML 证书 中下载 Entra ID 提供的 Base64 证书,并将其放置在 Zabbix 前端安装目录的 conf/certs
中。
运行以下命令设置权限为 644:
确保 conf/zabbix.conf.php
包含以下行:
$SSO['IDP_CERT'] = 'conf/certs/entra.cer';
5。使用 Entra ID 中 设置 <您的应用名称> 的值来配置 Zabbix SAML 认证(见下一节):
1。在 Zabbix 中,转到 设置zabbix 并根据 Entra ID 的配置填写配置选项:
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 |
此外,还需要配置用户组映射。媒体映射是可选的。
点击 更新 保存这些设置。
1。在你的 Entra ID 应用程序页面,从主菜单打开“Provisioning”页面。点击 Get started,然后选择“Automatic provisioning”模式:
https://<path-to-zabbix-ui>/api_scim.php
2。现在你可以添加所有将通过 SCIM 传递给 Zabbix 的属性。为此,点击 Mappings,然后点击 Provision Microsoft Entra ID Users。
在属性映射列表底部,启用 Show advanced options,然后点击 Edit attribute list for customappsso。
在属性列表底部,添加你自己的类型为 'string' 的属性:
保存列表。
3。现在你可以为已添加的属性添加映射。在属性映射列表底部,点击 Add New Mapping,并按如下所示create映射:
当所有映射添加完成后,保存映射列表。
4。作为将用户配置到 Zabbix 的前提条件,你必须在 Entra ID 中配置用户和组。
为此,请进入 Microsoft Entra admin center,然后在相应的 Users 和 Groups 页面中添加用户/组。
5。当用户和组在 Entra AD 中创建完成后,你可以进入应用程序的 Users and groups 菜单,并将它们添加到应用程序中。
6。进入应用程序的 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"。