2022 Zabbix中国峰会
2022 Zabbix中国峰会

11 使用OKTA进行SAML设置

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

OKTA配置

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

2. 在Okta web 界面中,导航至 Applications(应用程序) → Applications(应用程序),然后按"Add Application(添加应用程序)" 按钮 ().

3. 按 "Create New App(创建应用集)"按钮(). 在弹出窗口中,选择Platform(平台): Web, Sign on method(登录方法): SAML 2.0,然后按"Create(创建)"按钮。

4. 根据您的喜好填写General settings(常规设置)选项卡 (出现第一个选项卡)中的字段,然后按"Next(下一步)"。

5. 在Configure SAML(配置SAML)选项卡中,输入以下提供的值,然后按 "Next(下一步)".

  • GENERAL(常规)部分中:
    • Single sign on URL(登录URL): https://<your-zabbix-url>/ui/index_sso.php?acs
      选中 Use this for Recipient URL and Destination URL(用于接收URL和目标URL)的复选框。
    • Audience URI (SP Entity ID): zabbix
      注意,此值将在 SAML 声明中用作唯一的服务提供者标识符(如果不匹配,则将拒绝该操作)。 可在此字段中指定URL或任何数据字符串。
    • Default RelayState:
      将此字段留空;如果需要自定义重定向,则可以在Zabbix的Administration(管理) → Users(用户) 设置中添加它。
    • 根据您的喜好填写其它字段。

如果计划使用加密连接,请生成专用和公用加密证书,然后将公用证书上传到Okta。 当Assertion Encryption(断言加密)设置为“已加密”时,将显示证书上传表单(单击 Show Advanced Settings(显示高级设置)以找到此参数).

  • ATTRIBUTE STATEMENTS (OPTIONAL) 部分中,添加带有以下内容的属性语句:
    • Name(名称): 输入您的电子邮箱名称
    • Name format(名称格式): Unspecified
    • Value(值): 输入您的电子邮箱地址

6. 在下一个选项卡中,选择 "I'm a software vendor. I'd like to integrate my app with Okta",然后按 "Finish".

7. 现在,导航到 Assignments(分配) 选项卡,然后按 "Assign(指定)"按钮,然后从下拉菜单中选择Assign to People

8. 在弹出窗口中,将创建的应用分配给将使用SAML 2.0与Zabbix进行身份验证的人员,然后按 "Save and go back".

9. 导航到 Sign On(登录) 选项卡,然后按 "View Setup Instructions" 按钮。设置说明将显示在新选项卡中;在配置Zabbix时,请保持此标签打开。

Zabbix 配置

1. 在Zabbix中,进入 Administration → Authentication 部分中的SAML设置,然后将信息从Okta设置说明复制到相应的字段中:

  • 身份提供者单点登录 URL → SSO 服务 URL
  • 身份提供商发布者 → IdP entity ID
  • 用户名属性 → 属性名(usrEmail)
  • SP实体ID → 受众URI

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

chmod 644 idp.crt

请注意,如果您已从旧版本升级到Zabbix 5.0,则还需要手动将这些行添加到zabbix.conf.php文件(位于 //ui/conf/ // 目录):

// 用于SAML身份验证
       $SSO['SP_KEY'] = 'conf/certs/sp.key'; // 您的私钥路径
       $SSO['SP_CERT'] = 'conf/certs/sp.crt'; // 您的公钥路径
       $SSO['IDP_CERT'] = 'conf/certs/idp.crt'; // idp公钥路径
       $SSO['SETTINGS'] = []; // 其它设置

有关更多详细信息,请参见通用的SAML 身份验证 说明。

3. 如果在Okta中将 Assertion Encryption 设置为Encrypted, 则还应在Zabbix中标记 Encrypt参数的复选框 "Assertions"。

4. 按 "Update" 按钮保存这些设置。

要使用SAML登录, Zabbix中的用户别名应与他的Okta电子邮件匹配。可以在Zabbix Web界面的 Administration → Users部分中更改此设置。