13 使用 OneLogin 设置 SAML
概述
本节提供使用 SAML 2.0 身份验证从 OneLogin 配置单点登录和 Zabbix 用户配置的指南。
OneLogin 配置
创建应用程序
1. 登录 OneLogin 上的帐户。出于测试目的,您可以在 OneLogin 中创建一个免费的开发者帐户。
2. 在 OneLogin Web 界面中导航至 应用程序 → 应用程序。
3. 单击“添加应用程序”并搜索适当的应用程序。本页中的指南基于 SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML) 应用程序示例。
4. 首先,您可能想要自定义应用程序的显示名称。您可能还想添加图标和应用程序详细信息。之后,单击 保存。
设置 SSO/SCIM 配置
1. 在 配置 -> 应用程序详细信息 中,将 Zabbix 单点登录端点 http://<zabbix-instance-url>/zabbix/index_sso.php?acs
设置为以下字段的值:
ACS(消费者)URL 验证器
ACS(消费者)URL
请注意使用“http”,而不是“https”,这样 acs
参数就不会在请求中被截断。
也可以使用“https”。为了使其与 Zabbix 配合使用,需要在 conf/zabbix.conf.php
中添加以下行:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
其他选项保留其默认值。
2.在 配置 -> API 连接 中,设置以下值:
- SCIM 基本 URL:
https://<zabbix-instance-url>/zabbix/api_scim.php
- SCIM JSON 模板:应包含您想要通过 SCIM 传递给 Zabbix 的所有自定义属性,例如
user_name
、user_lastname
、user_email
和user_mobile
:
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"userName": "{$parameters.scimusername}",
"name": {
"familyName": "{$user.lastname}",
"givenName": "{$user.firstname}"
},
"user_name": "{$user.firstname}",
"user_lastname": "{$user.lastname}",
"user_mobile": "{$user.phone}",
"user_email": "{$user.email}"
}
属性名称是任意的。可以使用不同的属性名称,但是,它们必须与 Zabbix SAML 设置中的相应字段值匹配。
请注意,为了使用户配置正常工作,OneLogin 需要响应一个带有“givenName”和“familyName”的“name”属性,即使服务提供商不需要它。因此,有必要在应用程序配置部分的架构中指定这一点。
- SCIM Bearer Token:输入具有超级管理员权限的 Zabbix API 令牌。
单击 Enable 以激活连接。
3.在“Provisioning”页面中,启用“Provisioning”选项:
4. “Parameters”页面包含默认参数列表:
- 确保“scimusername”与 OneLogin 中的用户登录值匹配(例如电子邮件);
- 为“Groups”参数标记“Include in User Provisioning”选项;
- 单击“+”以创建 SAML 断言和用户配置所需的自定义参数,例如
user_name
、user_lastname
、user_email
和user_mobile
:
添加参数时,请确保标记 包含在 SAML 断言中 和 包含在用户配置中 选项。
- 添加与 OneLogin 中的用户角色匹配的“组”参数。用户角色将作为字符串传递,以分号“;”分隔。 OneLogin 用户角色将用于在 Zabbix 中创建用户组:
验证参数列表:
5. 在 Rules 页面中,创建到默认 Groups 参数的用户角色映射。
您可以使用正则表达式将特定角色作为组传递。角色名称不应包含 ;
,因为 OneLogin 在发送具有多个角色的属性时会将其用作分隔符。
Zabbix 配置
1. 在 Zabbix 中,转到 SAML 设置 并根据 OneLogin 配置填写配置选项:
Zabbix 字段 | OneLogin 中的设置字段 | 示例值 |
---|---|---|
IdP 实体 ID | 颁发者 URL (请参阅 OneLogin 中应用程序的 SSO 选项卡) | |
SSO 服务 URL | SAML 2.0 端点 (HTTP) (请参阅 OneLogin 中应用程序的 SSO 选项卡) | |
SLO 服务 URL | SLO 端点 (HTTP) (请参阅 OneLogin 中应用程序的 SSO 选项卡) | |
用户名属性 | 自定义参数 | user_email |
组名属性 | 自定义参数 | group |
用户名属性 | 自定义参数 | user_name |
用户姓氏属性 | 自定义参数 | user_lastname |
还需要配置用户组映射。媒体映射是可选的。单击 更新 以保存这些设置。
2. 下载 OneLogin 提供的证书并将其放入 Zabbix 前端安装的 conf/certs
中,作为 idp.crt。
通过运行以下命令为其设置 644 权限:
chmod 644 idp.crt
您可以在 OneLogin 中的 应用程序 -> SSO -> 单击当前证书下的 查看详细信息 中访问证书下载。
可以使用不同的证书名称和位置。在这种情况下,请确保在 conf/zabbix.conf.php
中添加以下行:
$SSO['IDP_CERT'] = 'path/to/certname.crt';
SCIM 用户配置
启用用户配置后,现在可以在 OneLogin 中添加/更新用户及其角色,并立即将其配置到 Zabbix。
例如,您可以创建一个新用户:
将其添加到用户角色和将配置该用户的应用程序:
保存用户时,它将被配置到 Zabbix。在应用程序 -> 用户中,您可以检查当前应用程序用户的配置状态:
如果配置成功,则可以在 Zabbix 用户列表中看到该用户。