12 使用 Okta 的 SAML 设置

本节介绍如何配置Okta以启用Zabbix的SAML 2.0身份验证。

Okta 配置

1. 访问 https://okta.com 并注册或登录您的账户。

2. 在Okta网页界面中导航至应用程序 → 应用程序 并点击"添加应用程序"按钮 ()。

3. 点击"创建新应用"按钮 ()。 在弹出窗口中选择平台: Web,登录方法: SAML 2.0 并 点击"创建"按钮。

4. 在常规设置标签页(第一个显示的标签页)中根据您的偏好填写字段,然后点击"下一步"。

5. 在配置SAML标签页中输入以下提供的值,然后 点击"下一步"。

  • 常规部分:

    • Single sign on URL: https://<your-zabbix-url>/ui/index_sso.php?acs
      The checkbox Use this for Recipient URL and Destination URL should be marked)
    • Audience URI (SP Entity ID): zabbix
      Note that this value will be used within the SAML assertion as a unique service provider identifier (if not matching, the operation will be rejected). It is possible to specify a URL or any string of data in this field.
    • Default RelayState:
      Leave this field blank; if a custom redirect is required, it can be added in Zabbix in the Administration → Users settings.
    • Fill in other fields according to your preferences.

如果计划使用加密连接,generate 私钥 和公钥加密证书,则需要将公钥证书上传至 Okta。当断言加密设置为加密时会出现证书上传表单 (点击显示高级设置可找到此参数)。

  • 属性声明(可选)部分添加一个属性

    statement with:

    • Name: usrEmail
    • Name format: Unspecified
    • Value: user.email

6. 在下一个标签页中,选择"我是软件供应商。我想将我的应用与Okta集成"并点击"完成"。

7. 现在,导航至分配标签页并点击"分配"按钮, 然后从下拉菜单中选择分配给人员

8. 在出现的弹出窗口中,将创建的应用分配给将使用 SAML 2.0与Zabbix进行身份验证的人员,然后点击"保存并返回"。

9. 导航至登录标签页并点击"查看设置 说明"按钮。设置说明将显示在新标签页中; 在配置Zabbix时保持此标签页打开。

Zabbix配置

1. 在Zabbix中,进入管理→认证部分的SAML设置,并将copy从Okta设置指南中的信息填入对应字段:

Zabbix字段 Okta SAML设置字段
IdP entity ID Identity Provider Issuer
SSO service URL Identity Provider Single Sign-On URL
Username attribute Attribute name
SP entity ID Audience URI

2. 将Okta设置指南页面提供的证书下载到ui/conf/certs文件夹中并命名为idp.crt,通过运行以下命令设置权限为644:

chmod 644 idp.crt

请注意,如果您是从旧版version升级到Zabbix 6.0,还需要手动将这些行添加到zabbix.conf.php file(位于/ui/conf目录):

// Used for SAML authentication.
       $SSO['SP_KEY'] = 'conf/certs/sp.key'; // Path to your private key.
       $SSO['SP_CERT'] = 'conf/certs/sp.crt'; // Path to your public key.
       $SSO['IDP_CERT'] = 'conf/certs/idp.crt'; // Path to IdP public key.
       $SSO['SETTINGS'] = []; // Additional settings

更多详情请参阅通用saml-认证说明。

3. 如果在Okta中断言加密设置为加密,则Zabbix中加密参数的"断言"复选框也应被勾选。

4. 点击"更新"按钮保存这些设置。

要使用SAML登录,Zabbix中的用户名应与Okta电子邮件匹配。这些设置可以在Zabbix网页界面的管理→用户部分进行更改。