[comment]: # translation:outdated

[comment]: # ({7225a877-3a0ed9f2})
# 3 身份验证

[comment]: # ({/7225a877-3a0ed9f2})

[comment]: # ({new-ea286503})
#### 概述

在 *Administration → Authentication（管理 → 身份验证）*
验证中，可以指定对Zabbix的全局用户身份验证方法。可用的方法有内部，HTTP，LDAP和SAML身份验证。

请注意，可以在用户组级别上微调身份验证方法。

![](../../../../../assets/zh/manual/web_interface/frontend_sections/administration/auth1.png)

默认情况下，全局使用内部Zabbix身份验证。改变：

-   到HTTP-导航到“ HTTP设置”标签并输入身份验证详细信息；
-   到LDAP-选择LDAP作为默认身份验证，然后在LDAP设置标签中输入身份验证详细信息；
-   到SAML-导航到“ SAML设置”标签，然后输入身份验证详细信息。

完成后，单击表单底部的“更新”。

[comment]: # ({/new-ea286503})

[comment]: # ({c7adb69e-23d6b356})
##### HTTP认证

基于HTTP或Web服务器的身份验证（例如：基本身份验证，NTLM /
Kerberos）可用于检查用户名和密码。请注意，用户也必须存在于Zabbix中，但是不会使用其Zabbix密码。

::: noteimportant

当心！在打开Web服务器身份验证之前，请确保已对其进行配置并正常工作。
:::

![auth\_http3.png](../../../../../assets/zh/manual/web_interface/frontend_sections/administration/auth_http3.png)

配置参数：

|参数                           描|说明|
|------------------------------------|------|
|*Enable HTTP authentication<br>（启用HTTP身份验证）*|选中该复选框以启用HTTP身份验证。|
|*Default login form<br>（默认登录表单）*              **Zabbi|指定是否将未经身份验证的用户定向到：<br>login form**-标准Zabbix登录页面。<br>**HTTP login form**-HTTP登录页面。<br>建议`index_http.php`仅对页面启用基于Web服务器的身份验证。如果将默认登录表单设置为“ HTTP登录页面”，并且Web服务器身份验证模块将在`$_SERVER`变量中设置有效的用户登录名，则该用户将自动登录。<br>支持`$_SERVER`键`PHP_AUTH_USER`，`REMOTE_USER`，`AUTH_USER`。|
|*Case sensitive login<br>（区分大小写的登录）*          例如，禁用区分大小|取消选中该复选框可禁用用户名区分大小写的登录（默认情况下启用）。<br>的登录并使用“ ADMIN”用户登录，即使Zabbix用户为“ Admin”。<br>请注意，如果区分大小写的登录禁用，则Zabbix数据库中存在多个具有相似别名（例如Admin，admin）的用户时，将拒绝登录。|

::: noteclassic

如果进行Web服务器身份验证，则所有用户（即使[前端访问权限](/zh/manual/config/users_and_usergroups/usergroup#configuration)设置为Internal）都将由Web服务器而不是Zabbix进行身份验证！
:::

::: noteclassic

对于无法使用HTTP凭据（默认设置为HTTP登录格式）登录的内部用户，导致401错误，您可能需要`ErrorDocument 401 /index.php?form=default`在基本身份验证指令中添加一行，它将重定向到常规Zabbix登录格式。
:::

[comment]: # ({/c7adb69e-23d6b356})

[comment]: # ({afa1fcf4-e31f6ce6})
##### LDAP验证

外部LDAP身份验证可用于检查用户名和密码。请注意，用户也必须存在于Zabbix中，但是不会使用其Zabbix密码。

全局设置LDAP身份验证后，Zabbix仍可以对某些用户组进行身份验证。这些组必须将[前端访问权限](/zh/manual/config/users_and_usergroups/usergroup#configuration)设置为“内部”。反之亦然，如果全局使用内部身份验证，则可以指定LDAP身份验证详细信息，并将其用于[前端访问](/zh/manual/config/users_and_usergroups/usergroup#configuration)设置为LDAP的特定用户组。

Zabbix LDAP身份验证至少与Microsoft Active Directory和OpenLDAP一起使用。

![auth\_ldap1.png](../../../../../assets/zh/manual/web_interface/frontend_sections/administration/auth_ldap1.png)

配置参数：

|参数                           描|说明|
|------------------------------------|------|
|*Enable LDAP authentication*|启动LDAP认证，选中复选框以启用LDAP身份验证。|
|*LDAP host*|LDAP服务器名称。例如：ldap：*ldap.zabbix.com<br>对于安全的LDAP服务器，请使用ldaps协议。<br>ldaps：*ldap.zabbix.com<br>在OpenLDAP 2.xx和更高版本中，可以使用格式为ldap：// hostname：port或ldaps：// hostname：port的完整LDAP URI。|
|*Port*|LDAP服务器的端口。默认值为389。<br>对于安全LDAP连接，端口号通常为636。<br>使用完整LDAP URI时不使用。|
|*Base DN*|搜索帐户的基本路径：<br>ou =用户，ou =系统（对于OpenLDAP），<br>DC =公司，DC = com（对于Microsoft Active Directory）|
|*Search attribute*|用于搜索的LDAP帐户属性：<br>uid（对于OpenLDAP），<br>sAMAccountName（对于Microsoft Active Directory）|
|*Bind DN*|用于在LDAP服务器上进行绑定和搜索的LDAP帐户，例如：<br>uid = ldap\_search，ou = system（对于OpenLDAP），<br>CN = ldap\_search，OU = user\_group，DC = company，DC = com（对于Microsoft Active Directory）<br>匿名绑定也是支持的。|
|*Case-sensitive login*|取消选中该复选框可禁用用户名区分大小写的登录（默认情况下启用）。<br>例如，禁用区分大小写的登录并使用“ ADMIN”用户登录，即使Zabbix用户为“ Admin”。<br>请注意，如果区分大小写的登录禁用，则Zabbix数据库中存在多个具有相似别名（例如Admin，admin）的用户时，将拒绝登录。|
|*Bind password*|用于绑定和搜索LDAP服务器的帐户的LDAP密码。|
|*Test authentication*|测试部分的标题|
|*Login*|测试用户的名称（当前已在Zabbix前端中登录）。该用户名必须存在于LDAP服务器中。<br>如果Zabbix无法认证测试用户，则不会激活LDAP认证。|
|*User password*|测试用户的LDAP密码。|

<note Warning>
万一证书出现问题，为了使LDAP连接（ldaps）正常工作，您可能需要TLS\_REQCERT
allow在/etc/openldap/ldap.conf配置文件中添加一行。这可能会降低与LDAP目录连接的安全性。
:::

::: noteclassic
 建议创建一个单独的LDAP帐户（Bind
DN），以使用LDAP中的最小特权在LDAP服务器上执行绑定和搜索，而不要使用真实的用户帐户（用于登录Zabbix前端）。\
这样的方法提供了更高的安全性，并且在用户更改LDAP服务器中自己的密码时不需要更改“绑定”密码。\
在上表中是ldap\_search帐户名。
:::

[comment]: # ({/afa1fcf4-e31f6ce6})

[comment]: # ({d19fca79-5257d20b})
##### SAML身份验证

SAML
2.0身份验证可用于登录Zabbix。请注意，用户必须存在于Zabbix中，但是不会使用其Zabbix密码。如果身份验证成功，则Zabbix将匹配本地用户名（别名）与SAML返回的用户名属性。

::: noteclassic

如果启用了SAML身份验证，则用户将能够在本地登录或通过SAML单一登录之间进行选择。
:::

[comment]: # ({/d19fca79-5257d20b})

[comment]: # ({7b6119bc-6700a0b3})
##### 设置身份提供者

为了使用Zabbix，需要以以下方式配置SAML身份提供程序（[onelogin.com](https://onelogin.com)，[auth0.com](https://auth0.com)，[okta.com](https://okta.com)等）

-   断言使用者URL应设置为`<path_to_zabbix_ui>/index_sso.php?acs`
-   单一登出网址应设置为`<path_to_zabbix_ui>/index_sso.php?sls`

`<path_to_zabbix_ui>` 示例：

     https://example.com/zabbix/ui, http://another.example.com/zabbix, http://<任意公网IP地址>/zabbix

[comment]: # ({/7b6119bc-6700a0b3})

[comment]: # ({5b051f57-2d0217ea})
##### 设置ZABBIX

::: noteimportant

如果要在前端使用SAML身份验证，则需要安装php-openssl。
:::

要使用SAML身份验证，应按以下方式配置Zabbix：

1.除非[zabbix.conf.php](/zh/manual/web_interface/frontend_sections/administration/authentication#advanced_settings)中提供了自定义路径，否则私钥和证书应存储在ui/conf/certs/中。

默认情况下，Zabbix将在以下位置查找：

-   ui/conf/certs/sp.key-SP 私钥文件
-   ui/conf/certs/sp.crt-SP 证书文件
-   ui/conf/certs/idp.crt-IDP 证书文件

2.所有最重要的设置都可以在Zabbix前端中进行配置。但是，可以在[配置文件](/zh/manual/web_interface/frontend_sections/administration/authentication#advanced_settings)中指定其他设置。

![auth\_saml0.png](../../../../../assets/zh/manual/web_interface/frontend_sections/administration/auth_saml0.png)

在Zabbix前端中可用的配置参数：

|参数                           描|说明|
|------------------------------------|------|
|*Enable SAML authentication*|选中复选框以启用SAML身份验证。|
|*IDP entity ID*|SAML身份提供者的唯一标识符。|
|*SSO service URL*|登录时，URL用户将被重定向到.|
|*SLO Service URL*|注销时，URL用户将被重定向到。如果保留为空，将不使用SLO服务。|
|*Username attribute*|登录到Zabbix时用作用户名的SAML属性。<br>支持的值列表由身份提供商确定。<br><br>示例：<br>Examples:<br>uid<br>userprincipalname<br>samaccountname<br>username<br>userusername<br>urn:oid:0.9.2342.19200300.100.1.1<br>urn:oid:1.3.6.1.4.1.5923.1.1.1.13<br><urn:oid:0.9.2342.19200300.100.1.44>|
|*SP entity ID*|SAML服务提供者的唯一标识符。|
|*SP name ID format*|定义应使用的名称标识符格式。<br><br>示例：<br>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent<br>urn:oasis:names:tc:SAML:2.0:nameid-format:transient<br>urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos<br>urn:oasis:names:tc:SAML:2.0:nameid-format:entity<br>|
|*Sign*|标记复选框以选择应为其启用SAML签名的实体：<br>Messages（消息）<br>Assertions（断言）<br>AuthN requests（AuthN请求）<br>Logout requests（注销请求）<br>Logout responses（注销响应）|
|*Encrypt*|标记复选框以选择应为其启用SAML加密的实体：<br>Assertions（断言）<br>Name ID（名称ID）|
|*Case-sensitive login*|选中该复选框以启用区分大小写的登录名（默认情况下禁用）。<br>例如，禁用区分大小写的登录并使用“ ADMIN”用户登录，即使Zabbix用户为“ Admin”。<br>请注意，如果区分大小写的登录禁用，则Zabbix数据库中存在多个具有相似别名（例如Admin，admin）的用户时，将拒绝登录。|

[comment]: # ({/5b051f57-2d0217ea})

[comment]: # ({38b7f831-be372f8e})
##### 高级设置

可以在Zabbix前端配置文件（*zabbix.conf.php*）中配置其他SAML参数：

-   $ SSO \['SP\_KEY'\] ='<SP私钥文件的路径>';
-   $ SSO \['SP\_CERT'\] ='<SP证书文件的路径>';
-   $ SSO \['IDP\_CERT'\] ='<IDP证书文件的路径>';
-   $ SSO \['SETTINGS'\]

::: noteclassic
 Zabbix使用[OneLogin的SAML
PHP工具包](https://github.com/onelogin/php-saml/tree/3.4.1)库（版本3.4.1）。$
SSO
\['SETTINGS'\]部分的结构应类似于库使用的结构。有关配置选项的说明，请参见官方库[文档](https://github.com/onelogin/php-saml/tree/3.4.1/#user-content-settings)。
:::

只能将以下选项设置为$ SSO \['SETTINGS'\]的一部分：

-   strict（严格的）
-   compress（压缩）
-   contactPerson（联系人）
-   organization（组织）
-   sp（仅此列表中指定的选项）

```{=html}
<!-- -->
```
        * attributeConsumingService
        * x509certNew
      
    * idp（仅此列表中指定的选项）
      * singleLogoutService（仅一个选项）
        * responseUrl（响应Url）
       
      * certFingerprint（证书指纹）
      * certFingerprintAlgorithm（证书指纹算法）
      * x509certMulti

-   安全性（仅此列表中指定的选项）
    -   signMetadata（符号元数据）
    -   wantNameId（想要的名称标识）
    -   requestAuthnContext（请求认证上下文）
    -   requestAuthnContextComparison（请求认证上下文比较）
    -   wantXMLValidation（想要的XML验证）
    -   RelaxDestinationValidation（目的验证）
    -   destinationStrictlyMatches（严格匹配）
    -   rejectUnsolicitedResponsesWithInResponseTo（拒绝未经请求的响应）
    -   signatureAlgorithm（签名算法）
    -   digestAlgorithm（摘要算法）
    -   lowercaseUrlencoding

所有其他选项将从数据库中获取，并且不能被覆盖。在调试选项将被忽略。

**配置示例：**

    $SSO['SETTINGS'] = [
      'security' => [
          'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
          'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
          // ...
      ],
      // ...
    ];

[comment]: # ({/38b7f831-be372f8e})
