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

测试

描述

object userdirectory.test(array userDirectory)

此方法用于测试用户目录连接设置。

此方法还用于测试哪些配置的数据与用户配置的用户目录设置相匹配 (例如,什么用户角色、用户组、用户媒体将被分配给用户)。 对于该类型的测试,需由用户目录发出api请求,其provision_status需设置为enabled。

此方法仅适用于Super admin(超级管理员)类型的用户。

参数

(object) 用户目录属性。

由于userdirectory.get API不返回bind_password 字段,因此应提供 userdirectoryid 和/或 bind_password

除了标准用户目录属性之外,该方法还接受以下参数。

参数 类型 描述
test_username string 在用户目录中测试用户名。
test_password string 在用户目录中测试用户名的关联密码。

返回值

(bool) 成功时返回true。

示例

测试现有用户的用户目录

使用 "user1" 测试用户目录 "3"。

请求:

{
           "jsonrpc": "2.0",
           "method": "userdirectory.test",
           "params": {
               "userdirectoryid": "3",
               "host": "127.0.0.1",
               "port": "389",
               "base_dn": "ou=Users,dc=example,dc=org",
               "search_attribute": "uid",
               "bind_dn": "cn=ldap_search,dc=example,dc=org",
               "bind_password": "password",
               "test_username": "user1",
               "test_password": "password"
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": true,
           "id": 1
       }
测试非现有用户的用户目录

测试非现有用户 “user2” 的用户目录 "3"。

请求:

{
           "jsonrpc": "2.0",
           "method": "userdirectory.test",
           "params": {
               "userdirectoryid": "3",
               "host": "127.0.0.1",
               "port": "389",
               "base_dn": "ou=Users,dc=example,dc=org",
               "search_attribute": "uid",
               "bind_dn": "cn=ldap_search,dc=example,dc=org",
               "test_username": "user2",
               "test_password": "password"
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "error": {
               "code": -32500,
               "message": "Application error.",
               "data": "Incorrect user name or password or account is temporarily blocked."
           },
           "id": 1
       }
测试用户配置的用户目录

测试用户目录"3",了解配置的数据与 "user3" 设置的用户目录设置相匹配 (例如,什么用户角色、用户组、用户媒介将被分配给用户)。

请求:

{
           "jsonrpc": "2.0",
           "method": "userdirectory.test",
           "params": {
               "userdirectoryid": "2",
               "host": "host.example.com",
               "port": "389",
               "base_dn": "DC=zbx,DC=local",
               "search_attribute": "sAMAccountName",
               "bind_dn": "CN=Admin,OU=Users,OU=Zabbix,DC=zbx,DC=local",
               "test_username": "user3",
               "test_password": "password"
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "username": "user3",
               "name": "John",
               "surname": "Doe",
               "medias": [],
               "usrgrps": [
                   {
                       "usrgrpid": "8"
                   },
                   {
                       "usrgrpid": "7"
                   }
               ],
               "roleid": "2",
               "userdirectoryid": "2"
           },
           "id": 1
       }

来源

CUserDirectory::test() in ui/include/classes/api/services/CUserDirectory.php.