一、Azure平台创建应用
需要将 Zabbix 服务地址填写进来,注意结尾不要以“/”结尾
创建SP ID: https://zabbix.example/zabbix.php ##Zabbix访问地址
注:用户名应该与提供的azure用户名相匹配。在saml设置中,username属性必须是username。例如,它可以是user.userprincipalname
1、需要获取IdP 唯一标识IdP SSO 地址和公钥证书三个参数。其中公钥证书需要您下载到本地;
2、如果azure需要与Zabbix服务器证书进行绑定需使用如下命令创建:
openssl req -x509 -newkey rsa:4096 -keyout ui/conf/certs/sp.key -out ui/conf/certs/sp.crt -sha256 -days 1825 -nodes ##正常情况下azure没有强制要求绑定可忽略此步骤
二、Zabbix配置SAML 身份验证
SAML 2.0 身份验证可用于登录 Zabbix。 请注意,用户必须存在于 Zabbix 中,但不会使用其 Zabbix 密码。 如果身份验证成功,则 Zabbix 会将本地用户名与 SAML 返回的用户名属性进行匹配。如果启用 SAML 身份验证,用户将能够在本地登录或通过 SAML 单点登录之间进行选择。
注:如果要在前端使用 SAML 身份验证,则需要安装 php-openssl。
使用 SAML 身份验证,Zabbix 应按以下方式配置:
私钥和证书应存储在 ui/conf/certs/ 中,除非 zabbix.conf.php 中提供了自定义路径。
默认情况下,Zabbix 将在以下位置查找:
- ui/conf/certs/sp.key - SP私钥文件
- ui/conf/certs/sp.crt - SP 证书文件
- ui/conf/certs/idp.crt - IDP 证书文件
1、将azure中获取到的信息填写进入表格中。参数对照如下:
字段 | IDaaS 中字段名称 | 说明 |
Enable saml authentication | 启用。 | |
IdP entity ID | IdP 唯一标识 IdP Entity ID | 从azure SSO 配置页【应用配置信息】中获取。 |
SSO service URL | IdP SSO 地址 IdP Sign-in URL | 从 azure SSO 配置页【应用配置信息】中获取。 |
Username attribute | 填写 | |
SP entity ID | - | 固定填写为 Zabbix 服务地址。 |
将以上配置保存,将立刻生效。
2、配置证书
需要将 azure 中下载的证书放置在 Zabbix 部署环境中的指定位置,Zabbix 才能用其解析 SAML SSO 请求。
检查 zabbix.conf.php 文件中 $SSO['IDP_CERT']配置。若未手动指定,其默认值应为ui/conf/certs/idp.crt。
将从 Azure 下载的 .cer 证书文件,改名为 idp.crt 文件。后缀请直接修改即可。
将 idp.crt 上传到上述指定位置。
3、重启 Zabbix 服务后即可使用 SSO
三、测试
Zabbix 既支持 IDP(Azure 门户) 发起 SSO,也支持 SP(应用) 发起 SSO。
注意:Zabbix 支持单点登录时,若 Zabbix 中不存在指定应用账户,会拒绝访问。(部分平台自动创建账户,需在 IDaaS 中管理 Zabbix 访问权限。例如:IDaaS等)
1、IDP 发起
请用已授权使用 Zabbix 的 Azure 账户,登录到 Azure门户页,点击页面上 Zabbix 图标,发起 SSO。
2、SP 发起
请在匿名浏览器中,打开 Zabbix 登录页,点击【Sign in with Single Sign-On(SAML)】,则会跳转到 Azure 进行登录。如果用户尚未登录Azure ,则 Azure 会引导用户进行登录 。
博客可能不能及时回复问题,技术问题欢迎加入交流。
具有丰富的模板资源及模板开发能力、项目落地管理经验分享欢迎加入交流
微信号:king_songax