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

12 使用 Okta 设置 SAML

本节提供配置 Okta 以启用 Zabbix 的 SAML 2.0 身份验证和用户配置的指南。

Okta 配置

1. 前往 https://developer.okta.com/signup/ 并注册/登录您的帐户。

2. 在 Okta Web 界面中导航至 应用程序 → 应用程序

3. 单击 创建应用程序集成

选择“SAML 2.0”作为登录方法,然后单击 下一步

4. 在常规设置中,填写应用程序名称,然后单击 下一步

5. 在 SAML 配置中,输入下面提供的值,然后

单击 下一步

  • General 中添加:
  • 单点登录 URLhttp://<your-zabbix-url>/zabbix/index_sso.php?acs
    请注意使用“http”,而不是“https”,这样 acs 参数就不会在请求中被截断。还应标记 将其用于收件人 URL 和目标 URL 复选框。
  • 受众 URI(SP 实体 ID)zabbix
    请注意,此值将在 SAML 断言中用作 唯一服务提供商标识符(如果不匹配,则 操作将被拒绝)。可以在此字段中指定 URL 或 任何数据字符串。
  • 默认 RelayState:
    将此字段留空;如果需要自定义重定向,可以在 Zabbix 的 用户 → 用户 设置中添加。
  • 根据您的偏好填写其他字段。
  • 属性语句/组属性语句 中添加: 这些属性语句插入到与 Zabbix 共享的 SAML 断言中。 此处使用的属性名称是任意示例。您可以使用不同的属性名称,但是,它们必须与 Zabbix SAML 设置中的相应字段值匹配。 如果您想在没有 JIT 用户配置的情况下将 SAML 登录配置到 Zabbix,则只需要电子邮件属性。 :: noteclassic 如果计划使用加密连接,请生成私有和公共加密证书,然后将公共证书上传到 Okta。当“断言加密”设置为“已加密”时,将出现证书上传表单(单击“显示高级设置”以找到此参数)。 :::

6. 在下一个选项卡中,选择“我是软件供应商。我想将我的应用程序与 Okta 集成”,然后按“完成”。

7. 导航到新创建的应用程序的“分配”选项卡,然后单击“分配”按钮,然后从下拉菜单中选择“分配给人员”。

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

9. 导航到“登录”选项卡,然后单击“查看设置说明”按钮。

安装说明将在新选项卡中打开;配置 Zabbix 时保持此选项卡打开。

Zabbix 配置

1. 在 Zabbix 中,转到 SAML 设置 并根据 Okta 的设置说明填写配置选项:

Zabbix 字段 Okta 中的设置字段 示例值
IdP 实体 ID 身份提供商发行者
SSO 服务 URL 身份提供商单点登录 URL
用户名属性 属性名称 usrEmail
SP 实体 ID 受众 URI zabbix
组名称属性 属性名称 groups
用户名属性 属性名称 user_name
用户姓氏属性 属性名称 user_lastname

还需要配置用户组和媒体映射。

2. 将 Okta SAML 设置说明中提供的证书 下载到 ui/conf/certs 文件夹中,作为 idp.crt。

通过运行以下命令为其设置 644 权限:

chmod 644 idp.crt

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

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

SCIM 配置

1. 要打开 SCIM 配置,请转到 Okta 中应用程序的“常规”->“应用程序设置”。

选中 启用 SCIM 配置 复选框。结果,会出现一个新的 配置 选项卡。

2.转到“Provisioning”选项卡以设置 SCIM 连接:

  • SCIM 连接器基本 URL 中指定 Zabbix 前端的路径并将 api_scim.php 附加到其中,即:
    https://<your-zabbix-url>/zabbix/api_scim.php
  • 用户的唯一标识符字段email
  • 身份验证模式HTTP header
  • 授权 中输入具有超级管理员权限的有效 API 令牌

如果您使用的是 Apache,则可能需要通过添加以下行来更改 /etc/apache2/apache2.conf 中的默认 Apache 配置:

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

否则Apache 不会在请求中发送授权标头。

3. 单击 测试连接器配置 以测试连接。如果一切正确,将显示成功消息。

4. 在“配置”->“到应用程序”中,确保选中以下复选框:

  • 创建用户
  • 更新用户属性
  • 停用用户

这将确保这些请求类型将发送到 Zabbix。

5. 确保 SAML 中定义的所有属性都在 SCIM 中定义。您可以通过单击 转到配置文件编辑器 在“配置”->“到应用程序”中访问应用程序的配置文件编辑器。

单击 添加属性。使用 SAML 属性名称填充 显示名称变量名称外部名称 的值,例如 user_name

外部命名空间应与用户架构相同:urn:ietf:params:scim:schemas:core:2.0:User

6. 转到应用程序的“配置”->“到应用程序”->“属性映射”。单击底部的显示未映射的属性。新添加的属性出现。

7. 映射每个添加的属性。

8. 在“分配”选项卡中添加用户。之前需要在目录->人员中添加用户。所有这些分配都将作为请求发送到 Zabbix。

9.在“推送组”选项卡中添加组。Zabbix SAML 设置中的用户组映射模式必须与此处指定的组匹配。如果不匹配,则无法在 Zabbix 中创建用户。

每次发生更改时都会发送有关组成员的信息。