11 使用OKTA进行SAML设置

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

OKTA配置

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

2. 在Okta web 界面中,导航至 Applications(应用程序) → Applications(应用程序),然后按“Add Application(添加应用程序)” 按钮 (11 使用OKTA进行SAML设置 - 图1).

3. 按 “Create New App(创建应用集)”按钮(11 使用OKTA进行SAML设置 - 图2). 在弹出窗口中,选择Platform(平台): Web, Sign on method(登录方法): SAML 2.0,然后按“Create(创建)”按钮。

11 使用OKTA进行SAML设置 - 图3

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(用户) 设置中添加它。

    • 根据您的喜好填写其它字段。

11 使用OKTA进行SAML设置 - 图4

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

  • ATTRIBUTE STATEMENTS (OPTIONAL) 部分中,添加带有以下内容的属性语句:

    • Name(名称): 输入您的电子邮箱名称

    • Name format(名称格式): Unspecified

    • Value(值): 输入您的电子邮箱地址

11 使用OKTA进行SAML设置 - 图5

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

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

11 使用OKTA进行SAML设置 - 图6

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

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

11 使用OKTA进行SAML设置 - 图7

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:

  1. chmod 644 idp.crt

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

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

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

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

11 使用OKTA进行SAML设置 - 图8

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

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